Búsqueda de macro VBA para PowerPoint
tom_the_cat
-
m@rina Mensajes publicados 27551 Fecha de registro Estado Moderador Última intervención -
m@rina Mensajes publicados 27551 Fecha de registro Estado Moderador Última intervención -
Hola,
Estoy buscando hacer un botón en una presentación de PowerPoint para poder abrir el cuadro de diálogo de búsqueda. Es decir, durante mi presentación, quiero poder hacer clic en un botón, que se abra un campo de búsqueda en el que pueda escribir una palabra y que busque en toda la presentación.
Encontré en este foro esta solución aquí : 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
Pero cuando lo pongo en mi macro, no funciona. No pasa nada y el código de mi macro se reemplaza automáticamente por eso:
Sub boiteIntégrée()
Application.Dialogs(xlDialogFormulaFind).Show
End Sub
----------------------------------------------------------------
Private Sub CommandButton1_Click()
End Sub
Entonces intenté haciendo esto:
Private Sub CommandButton1_Click()
Application.Dialogs(xlDialogFormulaFind).Show
End Sub
Pero en ese momento, me sale un mensaje de error que dice:
Membre de méthode ou de données introuvable
No conozco VBA, así que voy improvisando un poco y aquí me bloquea. ¿Alguien puede ayudarme a encontrar el código correcto por favor?
Gracias mucho.
Estoy buscando hacer un botón en una presentación de PowerPoint para poder abrir el cuadro de diálogo de búsqueda. Es decir, durante mi presentación, quiero poder hacer clic en un botón, que se abra un campo de búsqueda en el que pueda escribir una palabra y que busque en toda la presentación.
Encontré en este foro esta solución aquí : 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
Pero cuando lo pongo en mi macro, no funciona. No pasa nada y el código de mi macro se reemplaza automáticamente por eso:
Sub boiteIntégrée()
Application.Dialogs(xlDialogFormulaFind).Show
End Sub
----------------------------------------------------------------
Private Sub CommandButton1_Click()
End Sub
Entonces intenté haciendo esto:
Private Sub CommandButton1_Click()
Application.Dialogs(xlDialogFormulaFind).Show
End Sub
Pero en ese momento, me sale un mensaje de error que dice:
Membre de méthode ou de données introuvable
No conozco VBA, así que voy improvisando un poco y aquí me bloquea. ¿Alguien puede ayudarme a encontrar el código correcto por favor?
Gracias mucho.
Configuración: Windows XP Firefox 3.0.11
16 respuestas
-
Hola,
¿realmente sirve de algo hacer una macro para una búsqueda que puedes llamar muy bien con su atajo Ctrl+F?
Además, tendrás que poner un botón por diapositiva...
eric -
Sí, es realmente útil porque cuando estamos en modo de presentación no se puede usar el atajo CTRL + F y como el archivo que estoy creando está destinado a estar en .pps, no habrá posibilidad de usar el atajo.
No necesito pegar el botón de macro en todas las páginas, solo quiero ponerlo en la primera página para poder acceder directamente a las páginas relacionadas con las palabras clave.
En fin, sí, es realmente importante. Si alguien tiene una solución, me sería de gran ayuda.
Muchas gracias. -
Hola,
He mirado más de cerca y PowerPoint no prevé la visualización de este cuadro de diálogo.
Una simple búsqueda tampoco queda registrada por el grabador de macros...
Me parece comprometido y no puedo ayudarte más, lo siento.
eric -
Gracias por tu respuesta, Eric. Me parecía también que este proyecto estaba comprometido desde el inicio, pero conservo una pequeña chispa de esperanza de encontrar una solución, así que seguiré investigando para intentar lo imposible. Aparentemente alguien consiguió encontrar la solución en este foro, así que voy a intentar ver si la solución todavía puede funcionar y si alguien puede ayudarme a implementarla.
Como es un proyecto que estoy haciendo para el trabajo, es bastante importante. Así que no voy a rendirme tan pronto.
Gracias, Eric, por haberlo intentado; ¿otros pueden echar un vistazo a este problema?
Gracias de antemano. -
Hola,
da el enlace de la discusión, ya veremos...
eric -
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
--
- "Sur le forum bureautique, on pose des questions concernant la bureautique..."
- "Ah bon ???" -
vaya, ¡ella incluso conoce PowerPoint, es maravillosa esta m@rina!! ;-)
Gracias por la info de la máscara
eric -
El enlace al tema es este: 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? -
Me preguntaba si alguien había encontrado un truco para usar los cuadros de diálogo de Excel desde otra aplicación de Office, pero no, el enlace que diste no aporta nada.
Tomando como referencia la ayuda de PowerPoint sobre .find, aquí va un comienzo: recherche.ppt
Es solo una prueba de viabilidad, haría falta hacerlo más limpio y sustituir el msgbox por un userform, entre otras cosas...
Creo que, aun así, una diapositiva con una lista de palabras clave sería más adecuada.
Haciéndolo al estilo 'nube de palabras' (tamaño de las palabras diferente y en un degradado de azul, grandes y oscuros para los conceptos, más pequeños y más claros para los detalles donde la palabra solo se cita) podría quedar bonito y profesional además...
eric
PD: solo 2 palabras a buscar: TVA y prospección) -
Buenas tardes,
Sin pensar mucho (sí, es domingo y hace demasiado calor...), y por lo tanto a primera vista diría que es una mala idea...
PowerPoint es un software de PreO, creo que hay que dejarle sus funciones propias sin hacerle hacer de todo... Sé que PowerPoint va viento en popa en este momento, y veo realmente todo tipo de cosas poco coherentes...
Sin embargo, acabo de intentar hacer esta macro, pero hay que hacer una diferencia entre las macros que funcionan durante una diapositiva y fuera de la diapositiva. Esta macro aún tiene mucho que mejorar.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
Personnalment, j’opterais pour un document Word avec un plan détaillé correctement fait avec les styles de titre, et je le convertirais 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 effectuer des recherches sur des mots.
Dans 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 bien plus intéressant.
m@rina
Clin d’œil 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
--
- "Sur le forum bureautique, on pose des questions concernant la bureautique..."
- "Ah bon ???" -
eh... si he leído bien, se trata de que la presentación sea un PPS, por lo tanto, supongo, utilizada con un visor, ¿no? si es así me parece que las macros no se ejecutan, ¿cierto?
-
Gracias por vuestra ayuda a ambos y por vuestras reflexiones. Aun así tengo ganas de probar mi idea de base y si veo que no es la solución ideal, optaré por una de vuestras ideas (.pdf o nube de palabras clave).
Sin embargo, he probado vuestros dos códigos y no pasa nada cuando los pego en mi editor VBA. ¿Tengo que hacer algo especial antes de poder usar los códigos VBA (tipo firma electrónica o no sé qué más de ese tipo que había visto en mi corta vida)?
He probado esto para el de Marina:
Private Sub CommandButton1_Click()
Dim Message, titre, réponse
Message = "¿Qué quieres buscar?"
Title = "Búsqueda"
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
Y esto para el de Eric:
Private Sub CommandButton1_Click()
mot = InputBox("Motrecherché")
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
Los códigos no me dan mensajes de error pero en cambio no pasa nada cuando hago clic en el botón. Siento ser tan torpe y molestaros con esto un domingo por la tarde pero vuestra ayuda me es realmente muy valiosa, especialmente porque no había abierto un editor VBA hasta anteayer.
Entiendo las líneas de código que hicisteis para mí (muchísimas gracias) pero no funciona de todas formas. Creo que soy yo quien está cometiendo algún error en algún sitio... -
re, re,
@ katimini : es verdad que no lo había probado, acabo de hacerlo. También está bien para un .pps
@ m@rina : ah pues sí, tienes varias cuerdas en tu arco ;-) Pero no creo que me especialice en las macros de PowerPoint.
Es más por curiosidad y porque Tom parece involucrarse de su lado que intento con mis medios desbloquearlo un poco :-)
Voy a invertir más bien en Word 2007 para las chicas (pero soy un chico que se siente profundamente heterosexual, es para regalar) :-)
@ tom : si nada pasa con el archivo que he subido es porque tu seguridad es demasiado alta.
menú 'herramientas / opciones...' , pestaña 'seguridad' botón 'seguridad de las macros...' elegir 'media'. Abrir luego el archivo.
eric -
Ah sí, ya veo, me parecía que había algo de ese tipo.
Es perfecto, me las apaño con eso. Muchas gracias por vuestra ayuda, voy a intentarlo en esa dirección para ver si sale algo.
¡Gracias a todos! -
Eric, funciona CON PowerPoint ya sea en PPS o PPT, pero las macros no funcionan con solo el visor.
-
Buenas noches,
Ah sí, hacía falta precisar que era un uso con visor, porque, de hecho, las macros no funcionan con el visor.
m@rina
--
- "En el foro de ofimática, se hacen preguntas sobre ofimática..."
- "¿Ah, sí???"