IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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 :

Erreur dans code VBA


Sujet :

VBA Word

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Juin 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Erreur dans code VBA
    Bonjour,

    Je suis débutante en VBA et je souhaite sélectionner tous les tableaux d'un document Word, pour leur appliquer une mise en forme similaire
    Il y en a plus de 200 donc je voudrais éviter de les faire un à un.
    Voici le code que j'ai tapé mais ce code ne sélectionne que le dernier tableau; Y a t'il une fonction qui permettrait de stocker la sélection ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub CommandButton1_Click()
    NomTableau = Array("", "Références1", "Références2", "Synthèse")
    NbreTableau = ActiveDocument.Tables.Count
    For i = 1 To NbreTableau
        With ActiveDocument.Tables(i)
        .Select
        End With
        Next
    End Sub
    Merci beaucoup pour votre aide!http://www.developpez.net/forums/ima...lies/ccool.gif

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Points : 42 925
    Points
    42 925
    Par défaut
    Salut,

    Je vais essayer de comprendre un peu ton code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NomTableau = Array("", "Références1", "Références2", "Synthèse")
    Je ne sais pas à quoi sert cette ligne.

    Dans ces lignes, c'est un peu surprenant, tu fais une boucle, mais rien dans la boucle ??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    NbreTableau = ActiveDocument.Tables.Count
    For i = 1 To NbreTableau
        With ActiveDocument.Tables(i)
        .Select
        End With
        Next
    Si on fait un peu de nettoyage, on peut faire une boucle de ce genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim i as integer
     
    For i = 1 To ActiveDocument.tables.count
    ActiveDocument.Tables(i).Select
    Next i
    Mis à part sélectionner les tables les unes après les autres ce code ne fait rien et lors de l'arrêt du code, c'est la dernière table qui est sélectionnée.


    Il y a un peu plus facile, un table est un objet Word et on peut faire une boucle sur les objets.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim oTbl As Table
     
    For Each oTbl in ActiveDocument.Tables
    oTbl.
    Next oTbl
    Mais tu dois aussi nous dire ce que tu veux faire avec la table !

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Juin 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    [QUOTE=Heureux-oli;5288738]

    Merci, je souhaite qu'à la fin de la boucle, tous les tableaux des documents soient sélectionnés, si c'est possible,

    Elsa

  4. #4
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Points : 42 925
    Points
    42 925
    Par défaut
    Salut,

    Non.
    Il ne peut y avoir qu'un seul objet selection.

    Tu vas devoir modifier tes tableaux un par un dans le code.

    Un solution, c'est d'utiliser l'enregistreur de macro sur un tableau.
    Utiliser ce bout de code dans la boucle pour le faire sur tous les tableaux, mais un par un.

  5. #5
    Expert éminent
    Avatar de Sepia
    Homme Profil pro
    Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Inscrit en
    Octobre 2007
    Messages
    3 117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3 117
    Points : 6 856
    Points
    6 856
    Par défaut
    Salut Elsa,

    Tu es sûre d'avoir besoin de faire du VBA ? Parce que dans ton cas, enfin dans ce que tu décris, il n'y a pas absolument pas besoin, Word (l'interface) fournit tout ce qu'il te faut.
    Citation Envoyé par Elsa742 Voir le message
    je souhaite sélectionner tous les tableaux d'un document Word, pour leur appliquer une mise en forme similaire
    Il y en a plus de 200 donc je voudrais éviter de les faire un à un.
    Maintenant comme tu dis être débutante, c'est peut-être un moyen d'apprendre
    Citation Envoyé par Elsa742 Voir le message
    Je suis débutante en VBA
    Dans ce cas, Heureux-Oli va te fournir l'aide dont tu as besoin sur la base de ce que tu as fait (comme il a déjà commencé)

    Y a t'il une fonction qui permettrait de stocker la sélection ?
    oui nativement par l'interface et en VBA, il y a des mécanismes qui te permettent de travailler sur tous les éléments d'un document comme les tableaux sans les sélectionner, ce qui est beaucoup plus rapide. Mais comme le dit Heureux-Oli, pas de multi-sélection en VBA (au sens où tu sembles l'entendre)

    Dis-nous si tu préfères le VBA ou Word seul

    @+

  6. #6
    Nouveau Candidat au Club
    Inscrit en
    Juin 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    C'est possible de sélectionner tous les tableaux en Word seul ?
    Je préférerais le faire sans VBA dans ce cas,
    Où se trouve cette fonctionnalité de Word ?

  7. #7
    Expert éminent
    Avatar de Sepia
    Homme Profil pro
    Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Inscrit en
    Octobre 2007
    Messages
    3 117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3 117
    Points : 6 856
    Points
    6 856
    Par défaut
    Salut Elsa742,

    Attention, j'ai dit travailler pas sélectionner
    Citation Envoyé par Sepia Voir le message
    oui nativement par l'interface et en VBA, il y a des mécanismes qui te permettent de travailler sur tous les éléments d'un document comme les tableaux sans les sélectionner, ce qui est beaucoup plus rapide.
    En VBA, pour travailler sur tous les tableaux d'un même document, utilise la collection que tu peux parcourir un à un, comme te l'a montré Heureux-Oli
    Dans l'interface, la fonction Rechercher/Remplacer permet d'effectuer des modifications sur tous les éléments en une seule commande que tu peux combiner avec des styles (y compris des styles de tableaux) via l'option "Remplacer tout".

    @+

Discussions similaires

  1. Erreur dans Code vba
    Par marg0t dans le forum Access
    Réponses: 5
    Dernier message: 28/06/2013, 15h10
  2. Erreur dans code VBA
    Par symphyle dans le forum VBA Access
    Réponses: 7
    Dernier message: 23/12/2008, 15h28
  3. erreur dans code vba
    Par Renardo dans le forum IHM
    Réponses: 2
    Dernier message: 15/12/2008, 16h35
  4. PW perdu dans code VBA sous Excel ?
    Par electrosat03 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/01/2007, 23h32
  5. [MySQL] Erreur dans code php
    Par Badr3am dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 31/01/2006, 23h16

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