Aide pour Commande VBA Excel
Résolu
voulka
Messages postés
15
Date d'inscription
Statut
Membre
Dernière intervention
-
Morgothal Messages postés 1236 Date d'inscription Statut Membre Dernière intervention -
Morgothal Messages postés 1236 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
voila, étant plus que nul en VBA, mais sachant que c'est très utile, ma demande est :
quand je clique sur un bouton (que j'ai inséré au préalable)
il ouvre un fichier .Doc
recherche dans ce fichier doc, la même valeur que dans une cellule d'excel précise
et m'amene à cette endroit.
Merci beaucoup pour votre, dites moi si je n'ai pas été assez clair.
Cordialement.
voila, étant plus que nul en VBA, mais sachant que c'est très utile, ma demande est :
quand je clique sur un bouton (que j'ai inséré au préalable)
il ouvre un fichier .Doc
recherche dans ce fichier doc, la même valeur que dans une cellule d'excel précise
et m'amene à cette endroit.
Merci beaucoup pour votre, dites moi si je n'ai pas été assez clair.
Cordialement.
A voir également:
- Aide pour Commande VBA Excel
- Invite de commande - Guide
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Commande terminal mac - Guide
- Déplacer colonne excel - Guide
16 réponses
Boon j'ai fait moult recherches, moult tests, et définitivement, ça marche chez moi !
Alors on récapète encore une fois, depuis le début :
Dans Excel, on place ceci :
Dans Word on place ceci :
De cette manière, on peut ouvrir le Word sans forcément déclencher la recherche automatique à l'ouverture :)
On associe la macro Excel au bouton, et ça marche excellement bien chez moi :)
Je reste à dispo si tu as des problèmes ^^
-------------------
Cordialement,
Clément
Alors on récapète encore une fois, depuis le début :
Dans Excel, on place ceci :
Sub Main() valeur = CStr(ActiveWorkbook.ActiveSheet.Range("A1").Value) Dim oWdApp As Word.Application Set oWdApp = CreateObject("Word.Application") With oWdApp .Visible = True .Documents.Open ("C:\Documents and Settings\user\Bureau\TEST.doc") .Application.Run "recherche", valeur End With Set oWdApp = Nothing End Sub
Dans Word on place ceci :
Sub recherche(param As String) Selection.Find.ClearFormatting With Selection.Find .Text = param .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute End Sub
De cette manière, on peut ouvrir le Word sans forcément déclencher la recherche automatique à l'ouverture :)
On associe la macro Excel au bouton, et ça marche excellement bien chez moi :)
Je reste à dispo si tu as des problèmes ^^
-------------------
Cordialement,
Clément
Bonjour,
Pour ouvrir un fichier Word :
Ensuite pour effectuer une recherche directement, peut-être dans une macro qui s'exécute à l'ouverture, avec :
Et la recherche qui va avec :
Pour la recherche automatique, peut-être qu'en associant la valeur cherchée dans une variable globale sous Excel, on peut l'utiliser dans la macro de recherche Word, mais je ne connaît pas du tout les subtilités du VBA Word pour avancer plus loin ...
Pour ouvrir un fichier Word :
Sub ouvrir_word() Dim appWrd As Word.Application Dim DocWord As Word.Document Set appWrd = Nothing Set appWrd = CreateObject("Word.Application") appWrd.Visible = True appWrd.Documents.Open ("C:\Documents and Settings\user\Bureau\fichier.doc") Set appWrd = Nothing Set DocWord = Nothing End Sub
Ensuite pour effectuer une recherche directement, peut-être dans une macro qui s'exécute à l'ouverture, avec :
Private Sub Document_Open() 'la code de la recherche ici End Sub
Et la recherche qui va avec :
Selection.Find.ClearFormatting With Selection.Find .Text = "RECHERCHE ICI" .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute
Pour la recherche automatique, peut-être qu'en associant la valeur cherchée dans une variable globale sous Excel, on peut l'utiliser dans la macro de recherche Word, mais je ne connaît pas du tout les subtilités du VBA Word pour avancer plus loin ...
merci beaucoup de ta réponse ^^
mais comme je l'expliquer je ne suis pas très doué, et je voulais savoir si les 2 derniers morceaux de code je devais les mettre dans Word ou excel ?
merci encore
mais comme je l'expliquer je ne suis pas très doué, et je voulais savoir si les 2 derniers morceaux de code je devais les mettre dans Word ou excel ?
merci encore
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Les deux dernières parties de codes sont dans Word, mais je ne sais absolument pas si ça peut marcher ou comment est-ce que ça peut marcher :) c'est une idée pour te guider plus loin...
je n'arrive pas a faire en sorte que la macro démarre quand le doc s'ouvre
ou alors elle ne trouve rien ...
faudrai t'il mettre la valeur de ma cellule dans une variable word et lui faire chercher cette variable .?
si oui, comment la mettre en variable et comment et ou inscrire tout cela ?
ou alors elle ne trouve rien ...
faudrai t'il mettre la valeur de ma cellule dans une variable word et lui faire chercher cette variable .?
si oui, comment la mettre en variable et comment et ou inscrire tout cela ?
A l'ouverture d'un fichier Word, ce code fonctionne pourtant :
Il faut bien le placer dans:
Project (NOMDUDOC)>Microsoft Word Objects>ThisDocument
Private Sub Document_Open() MsgBox "test" End Sub
Il faut bien le placer dans:
Project (NOMDUDOC)>Microsoft Word Objects>ThisDocument
il y est bien, c'est qu'elle tourne dans le vide je crois bien.
.Text = "RECHERCHE ICI"
a la place de ce qu'il y a ci dessus j'ai "'C:\dossier\[classeur.xls]Feuil7'!$P$2"
et je pense qu'il va pas voir la valeur de la cellule mais qu'il recherche textuellement le texte...
comment faire .?
Merci
.Text = "RECHERCHE ICI"
a la place de ce qu'il y a ci dessus j'ai "'C:\dossier\[classeur.xls]Feuil7'!$P$2"
et je pense qu'il va pas voir la valeur de la cellule mais qu'il recherche textuellement le texte...
comment faire .?
Merci
Youhouu ça marche !
Ce code dans Word:
Ce code dans Word:
Private Sub Document_Open() Dim xlapp As Object, reponse As String Set xlapp = CreateObject("Excel.application") xlapp.Visible = False xlapp.Workbooks.Open "C:\Documents and Settings\user\Bureau\DocExcel.xls" reponse = xlapp.ActiveWorkbook.Sheets("Feuil1").Range("a1").Value xlapp.Visible = True xlapp.Quit Set xlapp = Nothing ' MsgBox reponse Selection.Find.ClearFormatting With Selection.Find .Text = reponse .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute End Sub
snif j'obtien une erreur moi, avec cette ligne :
reponse = xlapp.ActiveWorkbook.Sheets("Feuil1").Range("a1").Value
il me dit "erreur d'exécution '9': l'indice n'appartient pas à la sélection.
Mais quesque cela veut il bien vouloir dire .?
reponse = xlapp.ActiveWorkbook.Sheets("Feuil1").Range("a1").Value
il me dit "erreur d'exécution '9': l'indice n'appartient pas à la sélection.
Mais quesque cela veut il bien vouloir dire .?
Bonjour !
ça veut dire que l'indice spécifié en paramètre dans cette ligne n'existe pas dans ton classeur...
A priori ça doit être la "feuil1".
Cette ligne permet mettre dans la variable "reponse" la valeur que tu cherches dans le doc Word :
ça veut dire que l'indice spécifié en paramètre dans cette ligne n'existe pas dans ton classeur...
A priori ça doit être la "feuil1".
Cette ligne permet mettre dans la variable "reponse" la valeur que tu cherches dans le doc Word :
reponse = xlapp.ActiveWorkbook.Sheets("Feuil1").Range("a1").Value Ici la cellule A1 de la feuille Feuil1Il faut adapter cette ligne à ton classeur.
eh bien j'obtien cette erreur après l'avoir adapté
reponse = xlapp.ActiveWorkbook.Sheets("Feuil6").Range("E4").Value
je sais vraiment pas comment corrigé se truc ...
merci beaucoup de ton aide
reponse = xlapp.ActiveWorkbook.Sheets("Feuil6").Range("E4").Value
je sais vraiment pas comment corrigé se truc ...
merci beaucoup de ton aide
Si on récapète :
Dans Excel, tu as inséré ce code, associé à un bouton :
Puis dans Word, dans la feuille "ThisDocument" :
Les deux fichiers Excel et Word étant sur le bureau, tu peux changer le chemin d'accès sur ces lignes :
Fais moi savoir si tu as encore la même erreur après avoir vérifé tout ça ...
Dans Excel, tu as inséré ce code, associé à un bouton :
Sub ouvrir_word() Dim appWrd As Word.Application Dim DocWord As Word.Document Set appWrd = Nothing Set appWrd = CreateObject("Word.Application") appWrd.Visible = True appWrd.Documents.Open ("C:\Documents and Settings\user\Bureau\fichier.doc") Set appWrd = Nothing Set DocWord = Nothing End Sub
Puis dans Word, dans la feuille "ThisDocument" :
Private Sub Document_Open() Dim xlapp As Object, reponse As String Set xlapp = CreateObject("Excel.application") xlapp.Visible = False xlapp.Workbooks.Open ("C:\Documents and Settings\user\Bureau\DocExcel.xls") reponse = xlapp.ActiveWorkbook.Sheets("Feuil1").Range("a1").Value xlapp.Visible = True xlapp.Quit Set xlapp = Nothing Selection.Find.ClearFormatting With Selection.Find .Text = reponse .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute End Sub
Les deux fichiers Excel et Word étant sur le bureau, tu peux changer le chemin d'accès sur ces lignes :
appWrd.Documents.Open ("C:\Documents and Settings\user\Bureau\fichier.doc") xlapp.Workbooks.Open "(C:\Documents and Settings\user\Bureau\DocExcel.xls")
Fais moi savoir si tu as encore la même erreur après avoir vérifé tout ça ...
eh bien enfaite ... dans le 1° morceau de code, celui pour Excel, j'ai une erreur, il me dit : "Erreur de compilation : Type défini par l'utilisateur non défini"
donc ... j'ai enlevé ces 2 lignes et sa fonctionne
Dim appWrd As Word.Application
Dim DocWord As Word.Document
et pour conclure, toujours la meme erreur sur cette ligne
reponse = xlapp.ActiveWorkbook.Sheets("Feuil6").Range("e4").Value
donc ... j'ai enlevé ces 2 lignes et sa fonctionne
Dim appWrd As Word.Application
Dim DocWord As Word.Document
et pour conclure, toujours la meme erreur sur cette ligne
reponse = xlapp.ActiveWorkbook.Sheets("Feuil6").Range("e4").Value