Rechercher le contenu d'une combobox ActiveX sur Word2007
-
mercredi 21 décembre 2011 10:02
Bonjour à toutes et tous,
J'ai inséré des combobox (Zone de liste déroulante) ActiveX dans un document Word (2007 SP3), et je voudrais pouvoir faire une recherche Ctrl-F sur la valeur des combobox. Pour l'instant, j'ai constaté que seul le contenu des combobox "Formulaires hérités" peut être recherché. Quid des composants ActiveX ?
L'idée in fine est de pouvoir faire une recherche sur le contenu de ces composants directement à partir de l'explorateur Windows (7).
Merci de votre aide.
Nicolas
Toutes les réponses
-
jeudi 22 décembre 2011 01:16bonjour Nicolas,MsgBox Me.ComboBox1.Valuene foctionne pas ?http://msdn.microsoft.com/en-us/library/bb221252(v=office.12).aspx--isabelleLe 2011-12-21 05:02, Nickoo a écrit :> Bonjour à toutes et tous,>> J'ai inséré des combobox (Zone de liste déroulante) ActiveX dans un document Word (2007 SP3), et je voudrais pouvoir faire une recherche Ctrl-F sur la valeur des combobox. Pour l'instant, j'ai constaté que seul le contenu des combobox "Formulaires hérités" peut être recherché. Quid des composants ActiveX ?>> L'idée in fine est de pouvoir faire une recherche sur le contenu de ces composants directement à partir de l'explorateur Windows (7).>> Merci de votre aide.>> Nicolas>
-
jeudi 22 décembre 2011 02:00
-
jeudi 22 décembre 2011 09:27
Bonjour Isabelle,
Merci pour tes réponses. Tout d'abord, les sécurités concernant les composants ActiveX sont au minimum, l'emplacement dans lequel je place mon fichier fait partie de mes "emplacements approuvés".
Je vais apporter quelques précisions sur le but de la manœuvre :
J'ai placé un certains nombre de combobox dans un document, les items des combobox étant dépendantes des valeurs d'autres. J'utilise donc Me.ComboBox1.Value dans mon code, et l'afficher sous forme de MessageBox fonctionne, mais ce n'est pas ce que je cherche à faire.
Une fois que j'ai sélectionné des items dans mes combobox, je voudrais effectuer une recherche dans le document via Accueil/Rechercher (Ctrl-F) et que cette recherche s'effectue aussi sur la valeur des combobox. Si j'ai mis la valeur "Item1" dans des combobox, je veux que la recherche Word trouve ces champs. Or pour l'instant, il me dit que l'objet de la recherche n'a pas pu être trouvé, même si je l'ai sous les yeux (et qu'il correspond bien à Me.ComboBox1.Value).
Y-a-t-il un moyen de rendre "visible" la valeur des combobox ActiveX par l'outil de recherche de Word (ou de l'explorateur Windows)? Merci.
Nicolas
-
jeudi 22 décembre 2011 16:01je ne crois pas que l'on puisse faire la recherche sur les controls activex via Accueil/Recherchermais voici un exemple pour une recherche perso:'___copier ce code sur la page ThisDocument______________________________________________________________Dim TextRechercherSub MaRecherche()Dim p1 As String, p2 As String, n As BooleanDim Style, Title, Response1, Response2Style = vbYesNo + vbCritical + vbDefaultButton2Title = "RECHERCHE"TextRechercher = InputBox("Écrire le texte recherché", Title)p1 = Selection.Information(wdActiveEndPageNumber) & "-" & _Selection.Information(wdHorizontalPositionRelativeToPage) & "-" & _Selection.Information(wdVerticalPositionRelativeToPage)début:With Selection.Find.Forward = True.ClearFormatting.MatchWholeWord = True.MatchCase = False.Wrap = wdFindContinue.Execute FindText:=TextRechercherEnd Withp2 = Selection.Information(wdActiveEndPageNumber) & "-" & _Selection.Information(wdHorizontalPositionRelativeToPage) & "-" & _Selection.Information(wdVerticalPositionRelativeToPage)If n = False And p1 = p2 ThenResponse2 = MsgBox("aucune valeur trouvée, voulez-vous continuer la recherche sur les ActiveX ?", Style, Title)If Response2 = vbNo ThenExit SubElseCall RechecheActiveXExit SubEnd IfElseIf n = False Then p1 = p2If n = True And p1 = p2 ThenResponse2 = MsgBox("fin du document, voulez-vous continuer la recherche sur les ActiveX ?", Style, Title)If Response2 = vbNo ThenExit SubElseCall RechecheActiveXExit SubEnd IfElseResponse1 = MsgBox("une valeur trouvée, voulez-vous continuer ?", Style, Title)If Response1 = vbNo ThenExit SubElsen = TrueGoTo débutEnd IfEnd IfEnd IfEnd SubSub RechecheActiveX()Dim oCtl As InlineShapeDim oTB, n As BooleanFor Each oCtl In ActiveDocument.InlineShapesIf oCtl.OLEFormat.ProgID = "Forms.ComboBox.1" ThenSet oTB = oCtl.OLEFormat.ObjectIf TextRechercher = oTB.Text Thenn = TrueoCtl.ActivateMsgBox "le texte est trouvée sur le control " & oTB.NameExit SubEnd IfEnd IfNextIf n = False Then MsgBox "le texte n'a pas été trouvé"End Sub'______________________________________________________________________________--isabelleLe 2011-12-22 04:27, Nickoo a écrit :> Bonjour Isabelle,>> Merci pour tes réponses. Tout d'abord, les sécurités concernant les composants ActiveX sont au minimum, l'emplacement dans lequel je place mon fichier fait partie de mes "emplacements approuvés".>> Je vais apporter quelques précisions sur le but de la manœuvre :>> J'ai placé un certains nombre de combobox dans un document, les items des combobox étant dépendantes des valeurs d'autres. J'utilise donc Me.ComboBox1.Value dans mon code, et l'afficher sous forme de MessageBox fonctionne, mais ce n'est pas ce que je cherche à faire.>> Une fois que j'ai sélectionné des items dans mes combobox, je voudrais effectuer une recherche dans le document via Accueil/Rechercher (Ctrl-F) et que cette recherche s'effectue aussi sur la valeur des combobox. Si j'ai mis la valeur "Item1" dans des combobox, je veux que la recherche Word trouve ces champs. Or pour l'instant, il me dit que l'objet de la recherche n'a pas pu être trouvé, même si je l'ai sous les yeux (et qu'il correspond bien à Me.ComboBox1.Value).>> Y-a-t-il un moyen de rendre "visible" la valeur des combobox ActiveX par l'outil de recherche de Word (ou de l'explorateur Windows)? Merci.>> Nicolas>
- Proposé comme réponse Ciprian DuduialaOwner vendredi 23 décembre 2011 16:37
- Marqué comme réponse Ciprian DuduialaOwner vendredi 30 décembre 2011 20:36
- Non marqué comme réponse Nickoo lundi 2 janvier 2012 08:19
- Non proposé comme réponse Nickoo lundi 2 janvier 2012 08:19
-
lundi 2 janvier 2012 08:19
Bonjour, et bonne année à tous !
Merci beaucoup pour ce code Isabelle, mais faire une boucle sur les Combobox pour tester leur valeur ne constitue pas en soit une réponse à ma question. (Je retire donc le "marqué comme réponse")
C'est cette partie de ta réponse qui m'intéresse le plus : "je ne crois pas que l'on puisse faire la recherche sur les controls activex via Accueil/Rechercher". Je voudrais avoir une confirmation du "je ne crois pas que l'on puisse" ! Parce que si effectivement on ne peut pas faire de recherche via Accueil/Recherche, il faut que je change toute la structure de mon document et je ne pourrai plus utiliser de code VBA pour afficher le contenu de mes combobox de manière conditionnelle... Si par contre, il y a un moyen d'activer la recherche sur la valeur des Combobox, alors j'aimerais le connaître, et je ne sais pas auprès de qui à part vous chercher la réponse.
Merci.
Nicolas
-
jeudi 5 janvier 2012 10:20Propriétaire
J’ai marqué la réponse d’Isabelle parce que vous n’êtes pas revenu avec feedback pour plus de 7 jours. D’autre côté, je ne comprends pas pourquoi la boucle sur les Combobox n’est pas une solution pour vous. Selon vos explications, le code d’Isabelle fait exactement ce que vous voulez faire. Merci d’avance !
Cordialement,
Cipri
Ciprian DUDUIALA, MSFT  
•Nous vous prions de considérer que dans le cadre de ce forum on n’offre pas de support technique et aucune garantie de la part de Microsoft ne peut être offerte.
-
jeudi 5 janvier 2012 12:42
Bonjour Ciprian,
Le but ultime est d'utiliser l'outil Recherche de l'explorateur des dossiers de Windows 7 pour trouver des renseignements inclus dans des documents Word, de la manière d'un formulaire de base de donnée. Je disposerai par exemple d'un fichier Word par Client, avec ses coordonnées et son historique d'achats. J'utilise dans chaque document Word des combobox liées entre elles, c'est-à-dire que le contenu d'une combobox peut être conditionnée par la valeur choisie dans une autre, par VBA. Pour ce faire, j'ai du utiliser des combobox de type ActiveX.
Mon problème est décrit sur l'image jointe : si je fais une recherche de texte affiché dans ce type de combobox via l'outil Rechercher de Word (idem avec l'outil Recherche de l'explorateur des dossiers de Windows 7), rien ne sort... Par contre (et ce qui me fait penser que c'est un problème d'élément ActiveX), si j'utilise une combobox de type classique, la recherche est fructueuse.
Donc ma question est : comment rendre les composants ActiveX visibles par l'outil de recherche de Word? Dès lors, je pense que la recherche par l'explorateur des dossiers de W7 ne posera pas de souci...
J'espère que c'est clair cette fois... En tous cas, je compte beaucoup sur vous... Si vous pensez que je dois me renseigner ailleurs, j'espère que vous pourrez m'indiquer où.
Merci, et à bientôt j'espère ;-)
Nicolas
-
samedi 7 janvier 2012 03:07
bonjour Nicolas,je confirme que ce n'est pas possible de faire ce travail par l'outil Recherche de l'explorateur des dossiers de Windows 7,et non plus par une recherche de texte directement dans un document Word,la seule possibilité que j'entrevois est d'écrire un code (VB, VBA ou autre) pour faire ce travail.--isabelleLe 2012-01-05 07:42, Nickoo a écrit :> Bonjour Ciprian,>> Le but ultime est d'utiliser l'outil Recherche de l'explorateur des dossiers de Windows 7 pour trouver des renseignements inclus dans des documents Word, de la manière d'un formulaire de base de donnée. Je disposerai par exemple d'un fichier Word par Client, avec ses coordonnées et son historique d'achats. J'utilise dans chaque document Word des combobox liées entre elles, c'est-à-dire que le contenu d'une combobox peut être conditionnée par la valeur choisie dans une autre, par VBA. Pour ce> faire, j'ai du utiliser des combobox de type ActiveX.>> Mon problème est décrit sur l'image jointe : si je fais une recherche de texte affiché dans ce type de combobox via l'outil Rechercher de Word (idem avec l'outil Recherche de l'explorateur des dossiers de Windows 7), rien ne sort... Par contre (et ce qui me fait penser que c'est un problème d'élément ActiveX), si j'utilise une combobox de type classique, la recherche est fructueuse.>> Donc ma question est : comment rendre les composants ActiveX visibles par l'outil de recherche de Word? Dès lors, je pense que la recherche par l'explorateur des dossiers de W7 ne posera pas de souci...>> J'espère que c'est clair cette fois... En tous cas, je compte beaucoup sur vous... Si vous pensez que je dois me renseigner ailleurs, j'espère que vous pourrez m'indiquer où.>> Merci, et à bientôt j'espère ;-)>> Nicolas>- Marqué comme réponse Ciprian DuduialaOwner lundi 9 janvier 2012 07:26
-
lundi 9 janvier 2012 08:11
Merci pour vos réponses. Je vais m'y prendre autrement alors...
A bientôt.
Nicolas

