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 :

VBA Excel - Copier les tableaux tous les tableaux Word les uns après les autres dans Excel


Sujet :

VBA Word

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2021
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2021
    Messages : 5
    Points : 3
    Points
    3
    Par défaut VBA Excel - Copier les tableaux tous les tableaux Word les uns après les autres dans Excel
    Bonjour,
    comme vous allez le voir je débute ...
    Je suis en train de créer une macro dans EXCEL, qui va ouvrir un fichier PDF dans Word et copier les tableaux les uns après les autres dans l'onglet Excel, je pense ne pas être loin, mais je suis bloquée

    Merci beaucoup pour votre aide

    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
    Sub copier_tableaux_word()
    
    Dim WordApp As Word.Application
    Dim WordDoc As Word.Document
    Dim i As Integer
    
        Set WordApp = CreateObject("word.application")
        WordApp.Visible = False
        Set WordDoc = WordApp.Documents.Open("C:\Users\Desktop\Offre 0003977508 2Aff test.docx")    'ouvre le document Word
        
         i = 1
         Tableau = WordDoc.Tables
         Do While Tableau <> ""
         i = i + 1
         
                ActiveWorkbook.Sheets.Cells(1, 1) = Tableau 'il semblerait que l'erreur soit ici
            
        Tableau = WordDoc
        Loop
        WordDoc.Close
        WordApp.Quit
    
    End Sub
    Images attachées Images attachées
    Fichiers attachés Fichiers attachés

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par celine2391 Voir le message
    Bonjour,

    Je ne vois pas votre fichier Word en pièce jointe.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2021
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2021
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Justement, ce n'est pas un fichier word à l'origine mais un fichier PDF, en passant via Word, je peux le modifier et faire un copier coller des tableaux

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par celine2391 Voir le message
    Avez-vous référencé une DLL particulière ? Si oui laquelle ?

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2021
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2021
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Si j'ai bien compris DLL = un chemin spécifique pour recherche le fichier ?
    Non, elle sera variable malheureusement

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par celine2391 Voir le message
    C'est ce fichier que vous auriez dû mettre en ligne.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par celine2391 Voir le message
    Vos tableaux ont des cellules fusionnées :

    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
     
    Sub copier_ligne_word3()
     
    Dim WordApp As Word.Application
    Dim WordDoc As Word.Document
    Dim I As Integer, DerniereLigne As Integer
    Dim ShDoc  As Worksheet
     
     
        Set ShDoc = Sheets("Feuil1")
        With ShDoc
             DerniereLigne = .UsedRange.SpecialCells(xlCellTypeLastCell).Row
        End With
     
        Set WordApp = CreateObject("word.application")
        WordApp.Visible = True
        Set WordDoc = WordApp.Documents.Open("C:\Users\Desktop\Offre 0003977508 2Aff test.pdf")    'ouvre le document Word
     
        With WordDoc
            'Debug.Print .Tables.Count
            For I = 1 To .Tables.Count
                .Tables(I).Range.Copy
                With ShDoc
                     DerniereLigne = .UsedRange.SpecialCells(xlCellTypeLastCell).Row + 2
                     .Paste Destination:=.Cells(DerniereLigne, 1)
                End With
            Next I
     
        End With
     
        WordDoc.Close
        WordApp.Quit
     
        Set WordDoc = Nothing
        Set WordApp = Nothing
        Set ShDoc = Nothing
     
     
    End Sub

  8. #8
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2021
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2021
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Bonjour Eric,

    Le code semble top, mais elle bloque dès qu'il y a des cellules fusionnées, j'ai 2 questions :
    - savez-vous comment je peux contourner si la dernière ligne du tableau est fusionnée ? (fractionner me semble compliquer à définir, peut être devons nous enregistrer uniquement le n° de ligne?)
    - pouvez-vous m'expliquer cette ligne de code :".Paste Destination:=.Cells(DerniereLigne, 1) "?
    Merci

  9. #9
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par celine2391 Voir le message
    Le code semble top, mais elle bloque dès qu'il y a des cellules fusionnées
    Je n'ai pas de blocage chez moi.

    - savez-vous comment je peux contourner si la dernière ligne du tableau est fusionnée ? (fractionner me semble compliquer à définir, peut être devons nous enregistrer uniquement le n° de ligne?)
    De quelle ligne s'agit-il ? Capture d'écran.


    - pouvez-vous m'expliquer cette ligne de code :".Paste Destination:=.Cells(DerniereLigne, 1) "?
    Si vous ne décalez pas, les tableaux vont se superposer dans l'onglet.

  10. #10
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2021
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2021
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    C'est bon j'ai réessayé tout est ok ! au top merci Beaucoup Eric !
    Très bonne journée à vous

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

Discussions similaires

  1. [XL-2013] VBA - Croiser2 feuilles et copier les doublons dans une 3 feuille
    Par Nausicaa2 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/02/2019, 15h50
  2. Réponses: 5
    Dernier message: 21/02/2018, 09h36
  3. Réponses: 5
    Dernier message: 22/08/2014, 21h48
  4. Réponses: 9
    Dernier message: 04/04/2007, 12h01
  5. Réponses: 2
    Dernier message: 19/03/2007, 17h38

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