begin process at 2012 02 13 11:52:58
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Langages dérivés

 > 

VBA

 > 

Recherche a partir d'Excel dans Word


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Recherche a partir d'Excel dans Word

mardi 29 mai 2007 à 04:17:14 | Recherche a partir d'Excel dans Word

marcdid



Messieurs,
 
Je lutte un peu pour écrire une macro excel pour traiter un fichier word. Je souhaiterais qu'elle:
 
- ouvre le fichier word en question
- parcourt le fichier word a la recherche d'un certain mot
- à chaque fois qu'elle trouve le mot, copier un certain nombre de caractères qui suivent ce mot dans la cellule A1 du fichier excel
- continuer ceci jusqu'a la fin du fichier word en copiant à chaque fois dans le fichier excel les caractères  dans les cellules suivantes A2,A3....
 
Voila mon code, le pb est que il s'arrète à la première occurence trouvée...
 
Sub Extraction()
 
    Dim appWD As New Word.Application
    Dim DocWD As New Word.Document
    Set DocWD = appWD.Documents.Open("C:\test.txt" )
     
    appWD.Visible = True
    appWD.Selection.Find.ClearFormatting
     
    With appWD.Selection.Find
        .Text = "numéro:"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
   
     
    Do While appWD.Selection.Find.Execute("numéro:" ) = True
        appWD.Selection.MoveRight Unit:=wdCharacter, Count:=1
        appWD.Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend
        appWD.Selection.Copy
        Range("A1" ).Select
        ActiveSheet.Paste
        ActiveCell.Offset(1, 0).Select
    Loop
     
DocWD.Close True
appWD.Quit
Set DocWD = Nothing
Set appWD = Nothing
 
End Sub



Un grand merci pour votre aide!
 
Paul
mardi 29 mai 2007 à 09:02:39 | Re : Recherche a partir d'Excel dans Word

Nicko11

Salut, en effet, je cherches mais je vois pas pourquoi. Tu as pourtant un exemple tres proche de celui de l'aide.

J'ai remplacé Selection par ActiveDocument.Content mais rien n'y change.
mardi 29 mai 2007 à 09:13:09 | Re : Recherche a partir d'Excel dans Word

Nicko11

Tu vas pas le croire je viens de trouvé. Ouvre ton fichier Txt avec word et regarde comment c'est écrit "numéro".

Ca doit venir du codage du fichier texte.

Donc c'est normal que tu ne trouve pas le mot en question puisque word ecrit différemment.

Essaies en remplacant les "numéro" par "numero" (c a d sans l'accent) et moi ca a fonctionné directe.
mardi 29 mai 2007 à 09:26:58 | Re : Recherche a partir d'Excel dans Word

Nicko11

voila, c'est bon j'ai la solution,

modifie la méthode open comme ceci:


    Set DocWD = appWD.Documents.Open("C:\Documents and Settings\BorelNi\Bureau\test.txt", Encoding:=msoEncodingWestern)

et tu verras que word affiche bien et que par consequent, le nom est bien trouvé. Dis moi si ca resoud ton pb.

A+
mardi 29 mai 2007 à 14:32:32 | Re : Recherche a partir d'Excel dans Word

marcdid


Salut Nicko,

Tout d'abord merci pour ton aide!! J'ai modifié le script comme tu me le conseilles mais la boucle Do while ne marche toujours pas. En fait il copie colle bien la première occurence mais ensuite il s'arrête et donc ne copie colle pas les autres présentes dans le fichier! Le test Do While appWD.Selection.Find.Execute("numéro:" ) = True  est-il bon dans la boucle?

Encore merci!
mardi 29 mai 2007 à 15:43:12 | Re : Recherche a partir d'Excel dans Word

Nicko11

Je te mets le code que j'ai modifié (et qui marche nickel):

et OUI ton test est bon.

Le truc, c'est que je viens de trouvé un bug. Quand j'execute et que je remet au premier plan le fichier text a chaque occurence ca marche.
J'essaies de trouver d'ou cela viens (essaies aussi de voir ca).

mardi 29 mai 2007 à 15:48:46 | Re : Recherche a partir d'Excel dans Word

Nicko11

Public Sub Extraction()
 
    Dim appWD As New Word.Application
    Dim DocWD As New Word.Document
    Set DocWD = appWD.Documents.Open("C:\Documents and Settings\BorelNi\Bureau\Test_Module\test.txt", Encoding:=msoEncodingWestern)
    
    appWD.Visible = True
    
    With appWD.Selection.Find
        .ClearFormatting
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
   
    
    Do While appWD.Selection.Find.Execute("numero:") = True
        appWD.Selection.MoveRight Unit:=wdCharacter, Count:=1
        appWD.Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend
        appWD.Selection.Copy
        Range("A1").Select
        ActiveSheet.Paste
        ActiveCell.Offset(1, 0).Select
    Loop
    
DocWD.Close True
appWD.Quit
Set DocWD = Nothing
Set appWD = Nothing

End Sub

mardi 29 mai 2007 à 16:28:27 | Re : Recherche a partir d'Excel dans Word

marcdid

Je viens de trouver, voici le code qui marche! (j'ai mis en gras les 2 modifs). En fait il me sélectionnait tout le document et s'arrêtait.
Merci pour ton aide Nicko!
+

Sub Extraction()
 
    Dim appWD As New Word.Application
    Dim DocWD As New Word.Document
    Set DocWD = appWD.Documents.Open("C:\test.txt" )
     
    appWD.Visible = True
    appWD.Selection.Find.ClearFormatting
     
    With appWD.Selection.Find
        .Text = "numéro:"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
   
   Range("A1" ).Select
    
    Do While appWD.Selection.Find.Execute("numéro:" ) = True
        appWD.Selection.MoveRight Unit:=wdCharacter, Count:=1
        appWD.Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend
        appWD.Selection.Copy
        appWD.Selection.MoveRight Unit:=wdCharacter, Count:=1
        ActiveSheet.Paste
        ActiveCell.Offset(1, 0).Select
    Loop
     
DocWD.Close True
appWD.Quit
Set DocWD = Nothing
Set appWD = Nothing
 
End Sub


Cette discussion est classée dans : fichier, word, selection, false, appwd


Répondre à ce message

Sujets en rapport avec ce message

Recherche d'un texte word à partir d'excel [ par Bullrot94 ] Bonjour à tous,   <p class="MsoNor Position Curseur avec VBA sous Word [ par Xaviou ] Salut.J'ai une Macro qui scanne un fichier Word, mais je n'ai pas trouvé comment l'arrêter quant elle arrive à la fin du fichier.En fait, la seule sol Prob de placement dans WORD par VB [ par Seifer1 ] Slt tlm,voilà je fais un prog permettant de modifier du texte dans un doc word a partir de vb,voilà mon code :Private Sub Command2_Click()Dim Apw As O Probleme de remplacement de mots dans Word avec VB [ par Sebastien12 ] Bonjour,J'ai écrit un progrmme permettant de faire plusieurs remplacement de texte sous Word.Mais quand j'execute le programme il ne fait rien.Si quel Selection d'un chapitre dans un fichier Word [ par ouan ] Bonjour a tousJ'aurai besoin de sélectionner un chapitre dans un document word pour pouvoir le copier dans une feuille excell.Comment faire pour sélec VBA word compter le nombre de fois remplacer par [ par ManuAntibes ] Salut J'ai créé une macro dans word, ou je lui fais recherché et remplacer des mots.Je voudrais recuperer dans une variable le nombre de fois qu'il a piloter word depuis excel [ par darib52 ] bonsoir à tous, je viens avec une question sans réponse à ce jour.j'importe des données issues de word dans excel. j'ai une macro qui fonctionne. just Recherche de Texte dans un doc de type Word avec une vue Internet Explorerþ [ par Bullrot94 ] Bonjour à tous, voici mon problème : Dans mon entreprise il existe un Système de Référence où sont recensés plusieurs documents (de type Word avec Transformer donnees dans un ficheir .txt [ par julienLDN ] Bonjour, J essaie de construire une macro me permettant d exporter certaines donnees dans un nouveau fichier, de le sauvegarder en .CSV, et ensuite [déplacé VB6 -> VBA] Modifier données dans fichier .txt [ par julienLDN ] Bonjour, J essaie de construire une macro me permettant d exporter certaines donnees dans un nouveau fichier, de le sauvegarder en .CSV, et ensuite


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,123 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales