Aide pour Commande VBA Excel
Résolu/Fermé
voulka
Messages postés
15
Date d'inscription
jeudi 26 juillet 2012
Statut
Membre
Dernière intervention
27 juillet 2012
-
26 juil. 2012 à 14:15
Morgothal Messages postés 1236 Date d'inscription jeudi 22 avril 2010 Statut Membre Dernière intervention 19 mai 2015 - 27 juil. 2012 à 11:30
Morgothal Messages postés 1236 Date d'inscription jeudi 22 avril 2010 Statut Membre Dernière intervention 19 mai 2015 - 27 juil. 2012 à 11:30
A voir également:
- Aide pour Commande VBA Excel
- Invite de commande - Guide
- Liste déroulante excel - Guide
- Formule excel - Guide
- Commande terminal mac - Guide
- Si et excel - Guide
16 réponses
Morgothal
Messages postés
1236
Date d'inscription
jeudi 22 avril 2010
Statut
Membre
Dernière intervention
19 mai 2015
183
Modifié par Morgothal le 27/07/2012 à 11:11
Modifié par Morgothal le 27/07/2012 à 11:11
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
voulka
Messages postés
15
Date d'inscription
jeudi 26 juillet 2012
Statut
Membre
Dernière intervention
27 juillet 2012
26 juil. 2012 à 15:01
26 juil. 2012 à 15:01
Up ?
Morgothal
Messages postés
1236
Date d'inscription
jeudi 22 avril 2010
Statut
Membre
Dernière intervention
19 mai 2015
183
26 juil. 2012 à 15:30
26 juil. 2012 à 15:30
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 ...
voulka
Messages postés
15
Date d'inscription
jeudi 26 juillet 2012
Statut
Membre
Dernière intervention
27 juillet 2012
26 juil. 2012 à 15:47
26 juil. 2012 à 15:47
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
Morgothal
Messages postés
1236
Date d'inscription
jeudi 22 avril 2010
Statut
Membre
Dernière intervention
19 mai 2015
183
26 juil. 2012 à 15:55
26 juil. 2012 à 15:55
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...
voulka
Messages postés
15
Date d'inscription
jeudi 26 juillet 2012
Statut
Membre
Dernière intervention
27 juillet 2012
26 juil. 2012 à 15:57
26 juil. 2012 à 15:57
Merci encore, je test tout sa tout de suite.
Encore merci.
Encore merci.
voulka
Messages postés
15
Date d'inscription
jeudi 26 juillet 2012
Statut
Membre
Dernière intervention
27 juillet 2012
26 juil. 2012 à 16:23
26 juil. 2012 à 16:23
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 ?
Morgothal
Messages postés
1236
Date d'inscription
jeudi 22 avril 2010
Statut
Membre
Dernière intervention
19 mai 2015
183
26 juil. 2012 à 16:25
26 juil. 2012 à 16:25
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
voulka
Messages postés
15
Date d'inscription
jeudi 26 juillet 2012
Statut
Membre
Dernière intervention
27 juillet 2012
26 juil. 2012 à 16:33
26 juil. 2012 à 16:33
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
Morgothal
Messages postés
1236
Date d'inscription
jeudi 22 avril 2010
Statut
Membre
Dernière intervention
19 mai 2015
183
26 juil. 2012 à 16:56
26 juil. 2012 à 16:56
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
voulka
Messages postés
15
Date d'inscription
jeudi 26 juillet 2012
Statut
Membre
Dernière intervention
27 juillet 2012
27 juil. 2012 à 08:40
27 juil. 2012 à 08:40
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 .?
Morgothal
Messages postés
1236
Date d'inscription
jeudi 22 avril 2010
Statut
Membre
Dernière intervention
19 mai 2015
183
27 juil. 2012 à 08:57
27 juil. 2012 à 08:57
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.
voulka
Messages postés
15
Date d'inscription
jeudi 26 juillet 2012
Statut
Membre
Dernière intervention
27 juillet 2012
27 juil. 2012 à 09:04
27 juil. 2012 à 09:04
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
Morgothal
Messages postés
1236
Date d'inscription
jeudi 22 avril 2010
Statut
Membre
Dernière intervention
19 mai 2015
183
27 juil. 2012 à 09:06
27 juil. 2012 à 09:06
Quelle est l'erreur ? La même ? L'indice n'appartient toujours pas à la sélection ?
voulka
Messages postés
15
Date d'inscription
jeudi 26 juillet 2012
Statut
Membre
Dernière intervention
27 juillet 2012
27 juil. 2012 à 09:06
27 juil. 2012 à 09:06
oui
voulka
Messages postés
15
Date d'inscription
jeudi 26 juillet 2012
Statut
Membre
Dernière intervention
27 juillet 2012
27 juil. 2012 à 09:08
27 juil. 2012 à 09:08
et pourtant c'est sur et certain que dans ma feuil6 (j'ai pas précisé mais je l'ai renommé) j'ai bien dans ma cellule E4 ce que je veut rechercher dans mon word ( la valeur : 15209297)
Morgothal
Messages postés
1236
Date d'inscription
jeudi 22 avril 2010
Statut
Membre
Dernière intervention
19 mai 2015
183
27 juil. 2012 à 09:17
27 juil. 2012 à 09:17
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 ...
voulka
Messages postés
15
Date d'inscription
jeudi 26 juillet 2012
Statut
Membre
Dernière intervention
27 juillet 2012
27 juil. 2012 à 09:36
27 juil. 2012 à 09:36
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
Morgothal
Messages postés
1236
Date d'inscription
jeudi 22 avril 2010
Statut
Membre
Dernière intervention
19 mai 2015
183
27 juil. 2012 à 09:53
27 juil. 2012 à 09:53
Il ne faut pas enlever ces lignes !
Il faut permettre au VBA Excel d'utiliser des objets VBA Word. Pour cela : Dans l'éditeur VBA, menu Outils>Références et cocher "Microsoft Word 12.0 Object Library"
Il faut permettre au VBA Excel d'utiliser des objets VBA Word. Pour cela : Dans l'éditeur VBA, menu Outils>Références et cocher "Microsoft Word 12.0 Object Library"
voulka
Messages postés
15
Date d'inscription
jeudi 26 juillet 2012
Statut
Membre
Dernière intervention
27 juillet 2012
27 juil. 2012 à 09:57
27 juil. 2012 à 09:57
wouhou ^^ sa marche
bon j'avou j'ai merdouillé grave
mais y'aurai pas une case a cocher alors dans le VBA word ?
bon j'avou j'ai merdouillé grave
mais y'aurai pas une case a cocher alors dans le VBA word ?
Morgothal
Messages postés
1236
Date d'inscription
jeudi 22 avril 2010
Statut
Membre
Dernière intervention
19 mai 2015
183
27 juil. 2012 à 09:58
27 juil. 2012 à 09:58
Une case à cocher ?
Je pensais qu'il fallait un bouton Excel, qui ouvre un Word et cherche automatiquement dans ce Word une valeur d'une cellule Excel...
Pourquoi une case à cocher ?
Je pensais qu'il fallait un bouton Excel, qui ouvre un Word et cherche automatiquement dans ce Word une valeur d'une cellule Excel...
Pourquoi une case à cocher ?
voulka
Messages postés
15
Date d'inscription
jeudi 26 juillet 2012
Statut
Membre
Dernière intervention
27 juillet 2012
27 juil. 2012 à 10:02
27 juil. 2012 à 10:02
ah nn nn ^^ ne t'en fait pas tu pense bien ^^
je parle d'une case a cocher dans le menu référence pour plus avoir l'autre erreur
je parle d'une case a cocher dans le menu référence pour plus avoir l'autre erreur
Morgothal
Messages postés
1236
Date d'inscription
jeudi 22 avril 2010
Statut
Membre
Dernière intervention
19 mai 2015
183
27 juil. 2012 à 10:03
27 juil. 2012 à 10:03
Aaah oui pardon je ne l'ai pas précisé, dans le VBE Word, même menu, "Microsoft Excel 12.0 Object Library" à cocher...
voulka
Messages postés
15
Date d'inscription
jeudi 26 juillet 2012
Statut
Membre
Dernière intervention
27 juillet 2012
Modifié par voulka le 27/07/2012 à 11:22
Modifié par voulka le 27/07/2012 à 11:22
tonnerre de Zeus, je vais pas te mentir mais je commencer a désépéré, mais là non di diou comment je suis content, excuse moi mais je te tutoye, mais tu est génial, t'es un pro ! merci merci merci c'est vraiment nickel.
merci infiniment.
merci infiniment.
Morgothal
Messages postés
1236
Date d'inscription
jeudi 22 avril 2010
Statut
Membre
Dernière intervention
19 mai 2015
183
27 juil. 2012 à 11:30
27 juil. 2012 à 11:30
Je t'excuses, je t'ai tutoyé tout le long aussi ;) Pis je suis pas très vieux alors permets-toi donc