Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Word Discussion :

Création d'une macro sur Word 2016


Sujet :

VBA Word

  1. #1
    Candidat au Club
    Création d'une macro sur Word 2016
    Bonjour,

    Je cherche a créer une macro qui me permette de mettre en forme un tableau en définissant le retrait par rapport à la marge de gauche et la taille des deux colonnes.
    J'ai essayé d'enregistrer une macro, mais lorsque je la lance j'ai comme résultat :
    Erreur d'exécution '4605':
    La méthode ou propriété SelectColumn n'est pas disponible à cause de tous ou certain objets ne font pas référence à un tableau.
    Alors que si je fais la même chose manuellement, ça fonctionne.

    Je colle le code VBA de ma macro une fois enregistrée:

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Sub Macro2Nico()
    '
    ' Macro2Nico Macro
    '
    '
        Selection.Columns.PreferredWidthType = wdPreferredWidthPoints
        Selection.Columns.PreferredWidth = CentimetersToPoints(1)
        Selection.Move Unit:=wdColumn, Count:=1
        Selection.SelectColumn (l'erreur semble être ici)
        Selection.Columns.PreferredWidthType = wdPreferredWidthPoints
        Selection.Columns.PreferredWidth = CentimetersToPoints(1.5)
        Selection.Move Unit:=wdColumn, Count:=1
        Selection.SelectColumn
        Selection.Tables(1).Rows.LeftIndent = CentimetersToPoints(2.75)
        Selection.Columns.PreferredWidthType = wdPreferredWidthPoints
        Selection.Columns.PreferredWidth = CentimetersToPoints(11)
    End Sub


    J'ai près de 500 tableaux à mettre en forme de la sorte, il s'agit d'une mise en forme des exemple que ma femme utilise pour les exemples de sa thèse.

    D'avance merci pour votre écoute et aide...

  2. #2
    Expert éminent sénior
    Citation Envoyé par Nanoc1313 Voir le message

    Bonjour,

    Est-ce que les réponses de cette discussion (Clément MARCOTTE et moi-même), traitant du formatage de l'ensemble des tableaux d'un document, pourraient être adaptées à votre cas ? formatage-tableau
    Eric KERGRESSE
    https://sites.google.com/site/erickergresseeirl/
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter

  3. #3
    Candidat au Club
    Bonjour, et merci pour votre réponse.

    Si je comprends la macro que vous me soumettez, il s'agit de prendre tous les tableaux du document et de les transformer (formater) afin qu'ils aient tous la même forme ?

    je pense que cela peut être une solution.

    J'ai essayé de transposer la macro telle quelle à mon document mais cela ne fonctionne pas, je ne fais certainement pas ce qu'il faut, mon niveau en VBA est tellement insignifiant...

    J'imagine qu'il me faut transformer le programme pour lui dire deux colonne, la premiere de telle dimension, la seconde etc...?

    Merci d'avance

  4. #4
    Expert éminent sénior
    Citation Envoyé par Nanoc1313 Voir le message

    Il vous faudrait mettre un exemple "Avant" "Après" dans un fichier.
    Eric KERGRESSE
    https://sites.google.com/site/erickergresseeirl/
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter

  5. #5
    Candidat au Club
    Merci Eric pour votre réponse.

    J'ai trouvé une solution à mon problème en décomposant les opérations.

    J'ai utilisé 4 macros que j'ai regroupées en une seule et j'ai réussi en partant de mon premier tableau.


    Il y a certainement plus simple ou plus précis mais je suis satisfait de mon résultat.

    Pour info voici les commandes que ça donne:
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    Sub Macro1()
    '
    ' Macro1 Macro
    '
    '
        Selection.Tables(1).PreferredWidthType = wdPreferredWidthPoints
        Selection.Tables(1).PreferredWidth = CentimetersToPoints(12.5)
    End Sub
     
    Sub Macro3()
    '
    ' Macro3 Macro
    '
    '
        Selection.Collapse Direction:=wdCollapseStart
        Selection.Move Unit:=wdColumn, Count:=-1
        Selection.SelectColumn
        Selection.Collapse Direction:=wdCollapseStart
        Selection.Move Unit:=wdColumn, Count:=-1
        Selection.SelectColumn
        Selection.Collapse Direction:=wdCollapseStart
        Selection.Move Unit:=wdColumn, Count:=-1
        Selection.SelectColumn
        Selection.Collapse Direction:=wdCollapseStart
        Selection.Move Unit:=wdColumn, Count:=-1
        Selection.SelectColumn
        Selection.Collapse Direction:=wdCollapseStart
        Selection.Move Unit:=wdColumn, Count:=-1
        Selection.SelectColumn
        Selection.Collapse Direction:=wdCollapseStart
        Selection.Move Unit:=wdColumn, Count:=-1
        Selection.SelectColumn
        Selection.Collapse Direction:=wdCollapseStart
        Selection.Move Unit:=wdColumn, Count:=-1
        Selection.SelectColumn
        Selection.Collapse Direction:=wdCollapseStart
        Selection.Move Unit:=wdColumn, Count:=-1
        Selection.SelectColumn
        Selection.Collapse Direction:=wdCollapseStart
        Selection.Move Unit:=wdColumn, Count:=-1
        Selection.SelectColumn
        Selection.Collapse Direction:=wdCollapseStart
        Selection.Move Unit:=wdColumn, Count:=-1
        Selection.SelectColumn
        Selection.Move Unit:=wdColumn, Count:=1
        Selection.SelectColumn
        Selection.Columns.PreferredWidthType = wdPreferredWidthPoints
        Selection.Columns.PreferredWidth = CentimetersToPoints(11)
        Selection.Collapse Direction:=wdCollapseStart
        Selection.Move Unit:=wdColumn, Count:=-1
        Selection.SelectColumn
        Selection.Move Unit:=wdColumn, Count:=1
        Selection.SelectColumn
    End Sub
    Sub Macro2()
    '
    ' Macro2 Macro
    '
    '
        Selection.Collapse Direction:=wdCollapseStart
        Selection.Move Unit:=wdColumn, Count:=-1
        Selection.SelectColumn
        Selection.Collapse Direction:=wdCollapseStart
        Selection.Move Unit:=wdColumn, Count:=-1
        Selection.SelectColumn
        Selection.Collapse Direction:=wdCollapseStart
        Selection.Move Unit:=wdColumn, Count:=-1
        Selection.SelectColumn
        Selection.Collapse Direction:=wdCollapseStart
        Selection.Move Unit:=wdColumn, Count:=-1
        Selection.SelectColumn
        Selection.Collapse Direction:=wdCollapseStart
        Selection.Move Unit:=wdColumn, Count:=-1
        Selection.SelectColumn
        Selection.Collapse Direction:=wdCollapseStart
        Selection.Move Unit:=wdColumn, Count:=-1
        Selection.SelectColumn
        Selection.Collapse Direction:=wdCollapseStart
        Selection.Move Unit:=wdColumn, Count:=-1
        Selection.SelectColumn
        Selection.Collapse Direction:=wdCollapseStart
        Selection.Move Unit:=wdColumn, Count:=-1
        Selection.SelectColumn
        Selection.Collapse Direction:=wdCollapseStart
        Selection.Move Unit:=wdColumn, Count:=-1
        Selection.SelectColumn
        Selection.Collapse Direction:=wdCollapseStart
        Selection.Move Unit:=wdColumn, Count:=-1
        Selection.SelectColumn
        Selection.Columns.PreferredWidthType = wdPreferredWidthPoints
        Selection.Columns.PreferredWidth = CentimetersToPoints(1.5)
        Selection.Collapse Direction:=wdCollapseStart
        Selection.Move Unit:=wdColumn, Count:=-1
        Selection.SelectColumn
        Selection.Move Unit:=wdColumn, Count:=1
        Selection.SelectColumn
    End Sub
    Sub Macro4()
    '
    ' Macro4 Macro
    '
    '
        Selection.Tables(1).Rows.LeftIndent = CentimetersToPoints(2.75)
    End Sub
    Sub Macro5()
    '
    ' Macro5 Macro
    '
    '
        Selection.GoTo What:=wdGoToTable, Which:=wdGoToNext, Count:=1, Name:=""
        Selection.Find.ClearFormatting
        With Selection.Find
            .Text = "99c.- I know her. - I supposed Ø you wouldn't."
            .Replacement.Text = ""
            .Forward = True
            .Wrap = wdFindAsk
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
        Application.Run MacroName:="Normal.NewMacros.Macro4"
        Application.Run MacroName:="Normal.NewMacros.Macro1"
        Application.Run MacroName:="Normal.NewMacros.Macro2"
        Application.Run MacroName:="Normal.NewMacros.Macro3"
    End Sub

  6. #6
    Expert éminent sénior
    Citation Envoyé par Nanoc1313 Voir le message

    L'important, c'est toujours d'être fier de ce qu'on fait et que ça marche.
    Eric KERGRESSE
    https://sites.google.com/site/erickergresseeirl/
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter

###raw>template_hook.ano_emploi###