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

Macros et VBA Excel Discussion :

Copie d'information d'un .doc vers excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 24
    Par défaut Copie d'information d'un .doc vers excel
    Bonjour à tous

    Donc je me décide de poster ce message en dernier recours.

    Objectif de la macro:
    Un doc word contient des tableaux des images, shémas, graphiques. Je dois récupérer les lignes des tableaux dont la premiere colonne contient une réfèrence ( UI-xxxxx-xxxx)

    Ensuite exporter cela sous un document excel.
    Je me suis basé sur des codes trouvés sur le forum
    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
     
    Sub SRD_to_VTP()
    '
    '  Macro SRD_to_VTP
    ' Macro enregistrée le 09/03/2008 par GMAGNON
    '
    Dim WordDoc As Word.Document
    Dim WordApp As Word.Application
    Dim Wb, Wb2 As Workbook
    Dim j As Byte
    Dim tbl As Table
    Dim FirstCell As Variant
    Dim Result As Excel.Range
    Dim Search As String
     
        Search = "ACS"
        Set Wb = Workbooks.Add(1)
        Set WordApp = New Word.Application
        WordApp.Visible = False
        Set WordDoc = WordApp.Documents.Open("D:\Download\HXX_SRD_4.doc", ReadOnly:=True)
     
        For Each tbl In WordApp.ActiveDocument.Tables
            tbl.Select
            WordApp.Selection.Copy
        Next tbl
     
        Wb.ActiveSheet.Range("A1").Select
        Wb.ActiveSheet.Paste
     
     
        Set Rg = Wb.ActiveSheet.Cells.Find(What:=Search, LookIn:=xlFormulas, _
                       LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
                       MatchCase:=False)
        If Not (Rg Is Nothing) Then
            j = Rg.Row
            Wb.ActiveSheet.Rows(j).Copy
        End If
     
        'Recherche de tous les appels
        If Not Rg Is Nothing Then
            FirstCell = Rg.Address
            Do
                Set Rg = Wb.ActiveSheet.Cells.FindNext(Rg)
                If Not (Rg Is Nothing) Then
                    j = Rg.Row
                    Wb.ActiveSheet.Rows(j).Copy
                End If
            Loop While Not Rg Is Nothing And Rg.Address <> FirstCell
        End If
     
        Set Wb2 = Workbooks.Add(1)
        Wb2.ActiveSheet.Range("A1").Select
        Wb2.ActiveSheet.Paste
     
        WordApp.Application.Quit
        CutCopyMode = False
     
        Wb.SaveAs "D:\Download\ClasseurAll.xls"
        Wb2.SaveAs "D:\Download\ClasseurSearch.xls"
        'WordDoc.Close
        'WordApp.Quit
        Workbooks.Close
    End Sub
    Lorsque je lance la macro, il trouve une première ligne avec "ACS" ( recherche pour mes tests) dans la premiere colonne mais ne passe pas aux suivantes.

    Merci de votre aide

  2. #2
    Membre éclairé Avatar de zandru
    Homme Profil pro
    Ingénieur conception mécanique
    Inscrit en
    Mars 2008
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur conception mécanique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2008
    Messages : 507
    Par défaut
    Bonjour,
    si je comprend bien ce que tu veux faire, il faudrait coller chaque ligne que tu copie. A l'heure actuelle, tu colles uniquement après avoir copié toutes les lignes que tu veux ; donc tu ne colles que le dernier copié.

    essai ceci :
    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
        'Recherche de tous les appels
        Set Wb2 = Workbooks.Add(1)
        If Not Rg Is Nothing Then
            FirstCell = Rg.Address
            Dim ligne As Integer
            ligne = 1
            Do
                Set Rg = Wb.ActiveSheet.Cells.FindNext(Rg)
                If Not (Rg Is Nothing) Then
                    j = Rg.Row
                    Wb.ActiveSheet.Rows(j).Copy
                    Wb2.ActiveSheet.Range("A" & ligne).Select
                    Wb2.ActiveSheet.Paste
                    ligne = ligne + 1
                End If
            Loop While Not Rg Is Nothing And Rg.Address <> FirstCell
        End If
    qu'en pense tu ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 24
    Par défaut
    Avant toute chose merci de ta réponse Zandru.

    Le problème vient plutôt du findnext. Donc par exemple :

    col1 col2 colx ...
    ACS ref1
    ACS ref2
    ACS ref3


    Actuellement mon fichier ClasseurSearch ne contient que
    ACS ref1

    Lorsque j'exécute la macro "pas à pas", la boucle contenant le FindNext n'est exécutée qu'une seule fois... et ne passe donc pas aux lignes suivantes.

    J'espère avoir été plus clair sur mon problème.

    Merci

    Donc je suis toujours bloqué sur ce problème, si on pouvait m'assister pour poser la pierre suivante.

    Merci de votre aide

Discussions similaires

  1. [Macro] Copie de Word vers Excel : mise en formule
    Par ML0808 dans le forum Macros et VBA Excel
    Réponses: 31
    Dernier message: 06/03/2008, 11h07
  2. Réponses: 4
    Dernier message: 06/11/2007, 15h49
  3. Copie d'un graphique vers Excel/Word
    Par DieselBrother dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 31/07/2007, 08h53
  4. [Excel] Basuler les informations d'une listBox vers une feuille Excel
    Par Paloma dans le forum Macros et VBA Excel
    Réponses: 19
    Dernier message: 30/11/2006, 15h06
  5. Copie de Textbox vers Excel
    Par Flateric dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/05/2005, 10h50

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