Recherche macro VBA PowerPoint

Fermé
tom_the_cat - 27 juin 2009 à 20:12
m@rina Messages postés 20169 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 6 mai 2024 - 29 juin 2009 à 23:46
Bonjour,

Je cherche à faire un bouton dans une présentation powerpoint pour pouvoir ouvrir la boite de dialogue de recherche. Autrement dit, pendant ma présentation, je veux pouvoir cliquer sur un bouton, que ca ouvre un champ de recherche dans lequel je puisse taper un mot qu'il va chercher dans toute la présentation.


J'ai trouvé sur ce forum cette solution ici : http://www.commentcamarche.net/forum/affich 3983418 recherche ctrl f a partir d une macro


Sub boiteIntégrée()
Application.Dialogs(xlDialogFormulaFind).Show
End Sub


Mais quand je le met dans ma macro, ca ne fonctionne pas. Rien ne se passe et le code de ma macro se remplace automatiquement par ca:


Sub boiteIntégrée()
Application.Dialogs(xlDialogFormulaFind).Show
End Sub

----------------------------------------------------------------

Private Sub CommandButton1_Click()

End Sub


Donc j'ai essayé en faisant ceci:


Private Sub CommandButton1_Click()
Application.Dialogs(xlDialogFormulaFind).Show
End Sub


Mais à ce moment la, j'ai un message d'erreur qui me dit:


Membre de méthode ou de données introuvable


Je ne connais pas VBA donc j'improvise un peu et la je bloque. Quelqu'un peut m'aider à trouver le bon code svp?

Merci beaucoup.
A voir également:

16 réponses

eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 216
27 juin 2009 à 21:43
Bonjour,

est-ce vraiment utile de faire une macro pour une recherche que tu peux très bien appeler par son raccourci ctrl+F ?
D'autant plus qu'il faudra que tu mettes un bouton par diapo...

eric
0
tom_the_cat
27 juin 2009 à 22:13
Oui c'est vraiment utile car quand on est en mode présentation, on ne peut pas utiliser le raccourcis CTRL + F et comme le fichier que je suis en train de faire est destiné à être en .pps, il n'y aura pas la possibilité d'utiliser le raccourcis.

Je n'ai pas besoin de coller le bouton de macro sur toutes les pages, je veux juste le mettre sur la première page pour pouvoir directement accéder aux pages concernées par les mots clés.

Bref, oui c'est vraiment important. Si quelqu'un a une solution, ca me rendrait vraiment un grand service.

Merci beaucoup.
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 216
27 juin 2009 à 23:36
Re,

J'ai regardé de plus près et powerpoint n'a pas prévu l'affichage de cette boite de dialogue.
Une simple recherche n'est pas enregistrée par l'enregistreur de macro non plus...
Ca me parait compromis et je ne peux t'aider plus, désolé.
eric
0
tom_the_cat
28 juin 2009 à 04:09
Merci pour ta réponse Eric. Il me semblait aussi en effet que ce projet soit compromis dès le départ mais je garde une mini fibre d'espoir pour trouver une solution donc je vais continuer mes recherches pour tenter l'impossible. Apparemment quelqu'un a réussi a trouver la solution sur ce forum donc je vais essayer de voir si la solution peut encore fonctionner et si quelqu'un peut m'aider a la mettre en place.

Comme c'est un projet que je construis pour le boulot, c'est quand même assez important. Donc je ne vais pas lâcher prise de si tôt.

Merci Eric d'avoir tenté le coup, d'autres peuvent jeter un oeil sur ce problème?

Merci d'avance.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 216
28 juin 2009 à 11:27
Re,

donne le lien de la discussion, on verra...
eric
0
m@rina Messages postés 20169 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 6 mai 2024 11 278
28 juin 2009 à 11:31
Bonjour,

Tu donnes un exemple Excel, avec une boîte de dialogue de recherche de formule... Ça ne risque pas de marcher pour PowerPoint qui n'utilise pas de formule à ce que je sache...

Et de toutes manière, comme l'a dit Eriic, la collection Dialogs n'existe pas en VBA PowerPoint. Donc cette piste est mauvaise. Vu que les dev d'Office ont du mal à travailler ensemble (c'est ce qu'on constate régulièrement), le VBA des différentes applications n'a pas toujours les mêmes termes, et les mêmes possibilités.

Pour ton problème, tu pourrais peut-être passer par une InputBox, puis utiliser le résultat de l'Inputbox pour atteindre la diapo qui contient le mot.
Mais ce n'est pas forcément simple à gérer...

Où se trouvent les mots à trouver ? Dans une zone de texte ? Dans une zone réservée ??
Doit-on s'arrêter sur le premier mot, ou faut-il continuer à chercher ???
Et si le mot à trouver n'existe pas ? il faut gérer ça aussi.

Ne serait-ce pas plus simple de faire des propositions de mots clés dans une combobox plutôt que de laisser l'utilisateur choisir n'importe quoi au risque de ne rien trouver ? J'avoue ne pas comprendre cette démarche de faire chercher l'utilisateur dans un contexte connu. Ta présentation n'est quand même pas aussi vaste qu'internet !! :))))

Juste pour Eriic : si on veut mettre un bouton accessible depuis toutes les diapos, il suffit de le mettre dans le masque... Donc un seul bouton suffit ;)

m@rina
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 216
28 juin 2009 à 11:46
hé bé, elle connait même powerpoint, elle est formidable cette m@rina !! ;-)
Merci pour l'info du masque
eric
0
tom_the_cat
28 juin 2009 à 11:53
Le lien vers le sujet est la : http://www.commentcamarche.net/forum/affich 3983418 recherche ctrl f a partir d une macro


Merci m@rina pour toutes ces remarques constructives. Je ne savais pas que les macros étaient différentes entre plusieurs produits Office. Je croyais que VBA c'était VBA et que c'était un standard. Tu m'as appris quelque chose.

En réalité m@rina, ce n'est pas vraiment une présentation que je souhaite faire. C'est un peu compliqué à expliquer mais en gros, je veux construire un guide pour les personnes qui rentrent dans la société dans laquelle je travaille. Ce guide sera interactif et distribué sur différents PC dont aucun n'a de droits d'administrateur. Donc je ne peux pas faire un vrai programme mais je pense que je peux quand même réussir avec PowerPoint à faire un truc correct.

La finalité serait un truc avec des boutons qui permettent d'accéder aux informations. Du genre tu ouvres le .pps et tu tombes sur une page d'accueil qui te demande quelles informations tu veux trouver. Des informations concernant: "Clients" , "Fournisseurs" , "Comptabilité"...

Ensuite disons que tu cliques sur "Clients" Tu as de nouveaux des boutons: "Prospection" , "Partenariats", ...

Donc ca va me prendre du temps de faire un truc comme ca parce qu'il va y avoir beaucoup d'informations dedans dans plein de domaines différents. Voilà pourquoi cette idée du champs de recherche me semble être utile.

Mes textes explicatifs seront directement sur les dia dans des zones de textes. J'aimerais par exemple pouvoir taper dans mon champs de recherche "TVA" et que ca amène ainsi directement à la page qui explique comment on doit traiter la TVA.

Est ce qu'il y aune infime chance pour que je trouve une solution à mon problème?
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 216
28 juin 2009 à 13:20
Je me demandais si qcq'un avait trouvé une astuce pour utiliser les boites de dialogue d'excel à partir d'une autre appli d'office mais non, le lien que tu as donné n'apporte rien.

En m'inspirant de l'aide powerpoint sur .find voici un début : recherche.ppt
C'est juste un test de faisabilité, il faudrait faire plus propre et remplacer le msgbox par un userform entre autre...

Je pense quand même qu'une diapo avec une liste de mots clés serait plus adaptée.
En la faisant style 'nuage de mots' (taille des mots différents et dans un dégradé de bleu, grands et foncés pour les concepts, plus petits et plus clairs pour les détails où le mot est juste cité) ça peut faire joli et pro en plus...

eric

PS : juste 2 mots à rechercher : tva et prospection)
0
m@rina Messages postés 20169 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 6 mai 2024 11 278
28 juin 2009 à 14:03
Hello Eriic,

Ouppss !!

J'ai répondu sans voir que tu avais déjà répondu toi même. De plus ta macro est plus élaboré, car tu y as mis un bouton Suivant, cfe qui manque à la mienne.

Désolée ! ;)

m@rina
0
m@rina Messages postés 20169 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 6 mai 2024 11 278
28 juin 2009 à 14:00
Rebnonjour,

Sans beaucoup réfléchir (ben oui, c'est dimanche et il fait trop chaud...), et donc à première vue, je dirais que c'est une mauvaise idée...

PowerPoint est un logiciel de PréO, je pense qu'il faut lui laisser ses fonctions propres sans lui faire faire les pieds au mur... Je sais que PowerPoint a le vent en poupe en ce moment, et je vois vraiment toutes sortes de choses qui peu cohérentes...

Je viens néanmoins de tenter de faire cette macro, mais il faut faire une différence entre les macros qui fonctionne pendant un diaporama et hors diaporama. Cette macro reste totalement à améliorer.

Sub cherche()
Dim Message, titre, réponse
Message = "Que voulez vous chercher ?"
Title = "Recherche"
réponse = InputBox(Message, titre)
For Each diapo In Application.ActivePresentation.Slides
    For Each forme In diapo.Shapes
        If forme.HasTextFrame Then
            Set txtRng = forme.TextFrame.TextRange
            Set trouvé = txtRng.Find(FindWhat:=réponse)
            
            Do While Not (trouvé Is Nothing)
            SlideShowWindows(1).View.GotoSlide diapo.SlideNumber
            Exit Do
                
            Loop
            
        End If
    Next
Next

End Sub


Personnellement, j'opterais pour un document Word avec un plan détaillé fait correctement avec les styles de titre, et je convertirais le tout en PDF avec l'onglet signets à gauche pour pouvoir cliquer depuis n'importe quel endroit sur le chapitre qui intéresse. Par ailleurs, en PDF, on peut facilement faire des recherches sur des mots.

Dans le PowerPoint, si la personne recherche Partenariats au lieu de partenariat par exemple, elle risque de ne pas trouver.... Je pense qu'un sommaire détaillé est beaucoup plus intéressant.

m@rina

Clin d'oeil pour Eriic :
https://www.amazon.fr/s/ref=nb_ss_w?__mk_fr_FR=%C5M%C5Z%D5%D1&url=search-alias%3Dstripbooks&field-keywords=powerpoint+mathias

0
euh... si j'ai bien lu, il est question que la présentation soit un PPS, donc ,je suppose, utilisé avec une visionneuse, non ? si tel est le cas il me semble que les macros ne sont pas exécutées, non ?
0
tom_the_cat
28 juin 2009 à 14:19
Merci pour votre aide à tous les deux et pour vos réflexions. J'ai quand même envie de tester mon idée de base et si je vois que ce n'est pas idéale comme solution, j'opterai pour une de vos idées (.pdf ou nuage de mots clefs).

Par contre, j'ai essayé vos deux codes et rien ne se passe quand je les colle dans mon éditeur VBA. Je dois faire un truc spécial avant de pouvoir utiliser les codes VBA (genre signature électronique ou je sais plus trop quoi de ce genre que j'avais déjà croisé dans ma petite vie)?

J'ai essayé ca pour celui de marina:

Private Sub CommandButton1_Click()

Dim Message, titre, réponse
Message = "Que voulez vous chercher ?"
Title = "Recherche"
réponse = InputBox(Message, titre)
For Each diapo In Application.ActivePresentation.Slides
For Each forme In diapo.Shapes
If forme.HasTextFrame Then
Set txtRng = forme.TextFrame.TextRange
Set trouvé = txtRng.Find(FindWhat:=réponse)

Do While Not (trouvé Is Nothing)
SlideShowWindows(1).View.GotoSlide diapo.SlideNumber
Exit Do

Loop

End If
Next
Next

End Sub


Et ca pour celui d'Eric:

Private Sub CommandButton1_Click()
mot = InputBox("Mot recherché")
For Each sld In Application.ActivePresentation.Slides
For Each shp In sld.Shapes
If shp.HasTextFrame Then
Set txtRng = shp.TextFrame.TextRange
Set foundText = txtRng.Find(FindWhat:=mot)
Do While Not (foundText Is Nothing)
With foundText
.Font.Bold = True
Set foundText = _
txtRng.Find(FindWhat:="CompanyX", _
After:=.Start + .Length - 1)
End With
SlideShowWindows(1).View.GotoSlide (sld.SlideIndex)
r = MsgBox("Suivant", vbOKCancel)
If r = vbCancel Then Exit For
Loop
End If
Next
If r = vbCancel Then Exit For
Next
End Sub


Les codes ne me donnent pas de messages d'erreur mais par contre rien ne se passer quand je clique sur le bouton. Je suis désolé d'être aussi boulet et de vous embêter avec ca un dimanche après midi mais votre aide m'est vraiment très précieuse, d'autant plus que je n'avais jamais ouvert un éditeur VBA avant hier.

Je comprends les lignes de code que vous avez fait pour moi (merci mille fois) mais ca ne marche quand même pas. Je pense que c'est moi qui fait une connerie qq part...
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 216
28 juin 2009 à 14:45
re, re,

@ katimini : c'est vrai que je n'avais pas testé ça, je viens de le faire. C'est ok également pour un .pps

@ m@rina : ah ben oui, tu as bien plusieurs cordes à ton arc ;-) Mais je ne pense pas me spécialiser dans les macro sous powerpoint.
C'est plus par curiosité et que tom a l'air de s'investir de son coté que j'essaie avec mes moyens de le débloquer un peu :-)
Vais plutôt investir dans word 2007 pour les filles (mais je suis bien un garçon qui se sent profondément hétérosexuel, c'est pour offrir) :-)

@ tom : si rien ne se passe avec le fichier que j'ai mis en ligne c'est que ta sécurité est trop élevée.
menu 'outils / options...' , onglet 'sécurité' bouton 'sécurité des macros...' choisir 'moyen'. Ouvrir ensuite le fichier.

eric
0
tom_the_cat
28 juin 2009 à 15:01
Ah oui voila, il me semblait bien qu'il y avait un truc de ce genre.

C'est parfait, je me débrouillé avec ca. Merci beaucoup pour votre aide, je vais tenter dans cette direction pour voir si ca peut donner qqch.

Merci à tous!
0
eriic, ça fonctionne AVEC PowerPoint que ce soit en PPS ou PPT, mais les macros ne fonctionnent pas avec la visionneuse seule !
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 216
29 juin 2009 à 23:22
Bonsoir,

Ah ça c'est bien, possible...
Ne pouvant tester je fais confiance à tes souvenirs ;-)
eric
0
m@rina Messages postés 20169 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 6 mai 2024 11 278
29 juin 2009 à 23:46
Bonsoir,

Ah oui, y aura fallu préciser que c'était une utilisation avec visionneuse, car, effectivement, les macros ne fonctionnent pas avec la visionneuse.

m@rina
0