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 [WD-2016]


Sujet :

VBA Word

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    septembre 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : septembre 2019
    Messages : 3
    Points : 3
    Points
    3
    Par défaut 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

    Homme Profil pro
    Développeur Vba Excel
    Inscrit en
    avril 2013
    Messages
    4 174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Vba Excel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2013
    Messages : 4 174
    Points : 10 659
    Points
    10 659
    Billets dans le blog
    28
    Par défaut
    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
    Homme Profil pro
    Étudiant
    Inscrit en
    septembre 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : septembre 2019
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    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

    Homme Profil pro
    Développeur Vba Excel
    Inscrit en
    avril 2013
    Messages
    4 174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Vba Excel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2013
    Messages : 4 174
    Points : 10 659
    Points
    10 659
    Billets dans le blog
    28
    Par défaut
    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
    Homme Profil pro
    Étudiant
    Inscrit en
    septembre 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : septembre 2019
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    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

    Homme Profil pro
    Développeur Vba Excel
    Inscrit en
    avril 2013
    Messages
    4 174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Vba Excel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2013
    Messages : 4 174
    Points : 10 659
    Points
    10 659
    Billets dans le blog
    28
    Par défaut
    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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. VBA : Appel d'une macro excel à partir d'une macro sur word
    Par GaspardBarrier dans le forum VBA Word
    Réponses: 2
    Dernier message: 25/01/2018, 15h02
  2. [XL-2013] Difficultés pour la création d'une macro sur deux colonnes de nombres
    Par mr_hodor dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 08/07/2014, 12h49
  3. Réponses: 1
    Dernier message: 01/04/2010, 22h23
  4. création d'une macro en word et excel
    Par trabin dans le forum VBA Word
    Réponses: 10
    Dernier message: 04/04/2008, 19h37
  5. Création d'une macro sur bouton
    Par guenfood dans le forum IHM
    Réponses: 1
    Dernier message: 13/12/2007, 17h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo