![]() |
| Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé. | |||||||
|
|||||||
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) |
|
Invité de passage
![]() Date d'inscription: juin 2008
Localisation: Paris
Âge: 35
Messages: 6
|
Bonjour,
Je suis nouveau sur le forum , j'espère que je m'y prends correctement. Voilà , je vous expose mon problème: J'ai crée une petite macro sous powerpoint (version 2000) qui utilise la fonction "With Application.FileSearch". Malheureusement , cette macro ne fonctionne plus sous la version 2007 de powerpoint. La raison est que la fonction filesearch n'existe plus. J'ai bien essayé de trouver une solution avec ClasseFileSearch qu'on utilise sous excel 2007 mais je n'arrive pas à la faire fonctionner correctement sous powerpoint (sans doute que cette fonction supplémentaire n'est pas disponible sous powerpoint 2007). Cette macro a pour but d'importer toutes les images au format jpeg dans la présentation powerpoint contenant la macro. Elle va chercher les images dans le dossier en cours grâce à une fonction que j'appelle "chemin_courant". Je vous livre le code ci-dessous. Quelqu'un peut-il m'aider ? Cordialement Yann Code :
*************************************************** Sub import () 'Cette macro a pour but d'importer toutes les images au format jpeg dans la présentation powerpoint contenant la macro. Elle va chercher les images dans le dossier en cours grâce à une fonction que j'appelle "chemin_courant" test = ActivePresentation.Slides.Count If test = 0 Then ActiveWindow.View.GotoSlide Index:=ActivePresentation.Slides.Add(SlideIndex + 1, Layout:=ppLayoutBlank).SlideIndex Dim fichier_courant As Presentation Dim sheetact As Slides Set fichier_courant = ActivePresentation Set sheetact = ActivePresentation.Slides With Application.FileSearch .NewSearch .LookIn = (chemin_courant) .SearchSubFolders = False .FileName = "*.jpg" .MatchTextExactly = True If .Execute() > 0 Then For i = 1 To .FoundFiles.Count ActiveWindow.Selection.SlideRange.Shapes.AddPicture(FileName:=.FoundFiles(i), LinkToFile:=msoFalse, SaveWithDocument:=msoTrue, Left:=72, Top:=54, Width:=576, Height:=432).Select ActiveWindow.View.GotoSlide Index:=ActivePresentation.Slides.Add(SlideIndex + 1, Layout:=ppLayoutBlank).SlideIndex Next End If End With End Sub **************************************************** Function chemin_courant() As String 'fonction pour chercher le dossier en cours Dim fichier As Presentation Set fichier = ActivePresentation ChDir (fichier.Path) chemin_courant = fichier.Path End Function Dernière modification par Philippe JOCHMANS ; 01/06/2008 à 04h42 Motif: Ajout des balises codes (Sélection du code + #), ce n'est pas facultatif |
|
|
|
|
|
#2 (permalink) | |
![]() |
Bonjour
Citation:
Le code ne fonctionne pas et pourquoi ? Bug ? Message d'erreur ? Sur quelle ligne ? Starec |
|
|
|
|
|
|
#3 (permalink) |
|
Invité de passage
![]() Date d'inscription: juin 2008
Localisation: Paris
Âge: 35
Messages: 6
|
Bonjour,
En fait comme je le disais dans mon post original , une boite de dialogue avec un message d'erreur apparaît quand j'execute ma macro avec la version 2007 de powerpoint. La boite de dialogue avec le message d'erreur s'affiche une fois l'instruction suivante atteinte : With Application.FileSearch Ci-dessous une copie d'écran : Voilà j'espère que c'est plus clair , et que quelqu'un peut m'aider. Selon moi , c'est la fonction fonction filesearch qui n'existe plus sous powerpoint 2007. J'ai bien essayé de trouver une solution avec ClasseFileSearch qu'on utilise sous excel 2007 mais je n'arrive pas à la faire fonctionner correctement sous powerpoint (sans doute que cette fonction supplémentaire n'est pas disponible sous powerpoint 2007) ?? Merci pour votre aide |
|
|
|
|
|
#5 (permalink) |
![]() Date d'inscription: février 2006
Localisation: Morlanwelz (Carnières)
Âge: 44
Messages: 10 014
|
FileShearch ne fonctionne plus sur Office 2007.
Si tu vas dans l'explorateur d'objets, tu va le trouver dans les membres cachés, mais c'est tout. Le problème a été remonté chez MS, mais calme plat, pas de réponse.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ? Ne posez pas de question par MP, c'est inutile. Les rubriques Office recrutent. Ma page d'accueil Consultez nos FAQ !! Word ; Access ; Outlook ; Excel ; PowerPoint ; SharePoint Si vous pensez que certains sujets manquent dans la FAQ, aidez nous ! Des images |
|
|
|
|
|
#6 (permalink) |
|
Invité de passage
![]() Date d'inscription: juin 2008
Localisation: Paris
Âge: 35
Messages: 6
|
merci pour ta réponse Heureux-oli.
Cependant, comme je le disais dans mon post , j'avais déjà lu sur le forum que la fonction "FileShearch" n'était plus disponible sous office 2007. Ceci étant , connait tu quelqu'un sur le forum qui pourrait m'aider pour convertir mon petit programme afin de le faire fonctionner sous powerpoint 2007 ? Est ce qu'une solution avec ClasseFileSearch qu'on utilise sous excel 2007 est possible ? NB: Le fait de trouver cette fonction dans les membres cachés ne permet pas de l'utiliser à nouveau je suppose ? merci pour ton aide. |
|
|
|
|
|
#7 (permalink) |
![]() Date d'inscription: février 2006
Localisation: Morlanwelz (Carnières)
Âge: 44
Messages: 10 014
|
Si j'ai bien compris, tu veux pourvoir choisir dans le répertoire où se trouve la présentation une ou plusisuers images.
Le remplacement de la fonction FileSearch ne posera pas de problème. Code :
Dim stPath As String Set dlg = Application.FileDialog(msoFileDialogFilePicker) stPath = ActivePresentation.Path With dlg .InitialFileName = stPath .Filters.Add "Images", "*.jpg; *.png", 1 .InitialView = msoFileDialogViewThumbnail .AllowMultiSelect = False .Show End With ActiveWindow.Selection.SlideRange.Shapes.AddPicture(FileName:=dlg.SelectedItems(1), LinkToFile:=msoFalse, SaveWithDocument:=msoTrue, Left:=72, Top:=54, Width:=576, Height:=432).Select OIErr: Debug.Print Err.Number End Sub
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ? Ne posez pas de question par MP, c'est inutile. Les rubriques Office recrutent. Ma page d'accueil Consultez nos FAQ !! Word ; Access ; Outlook ; Excel ; PowerPoint ; SharePoint Si vous pensez que certains sujets manquent dans la FAQ, aidez nous ! Des images |
|
|
|
|
|
#8 (permalink) |
|
Invité de passage
![]() Date d'inscription: juin 2008
Localisation: Paris
Âge: 35
Messages: 6
|
Je te remercie pour cette réponse Heureux-oli
Néanmoins , je ne cherche pas à importer mes images une par une via une boite de dialogue. Mon besoin est le suivant , je souhaite : 1) Compter toutes les images au format jpeg présentes dans le dossier où se trouve ma présentation powerpoint (avec mon code). 2) Créer une boucle pour importer les unes après les autres l'ensemble des images trouvées dans ma présentation powerpoint. Pour voir le résultat attendu , il suffit de faire tourner mon code dans powerpoint version 2000 ou 2003 (avec le code présent dans mon post original). Encore merci pour ton aide , et si tu arrives à adapter mon code initial pour le faire tourner sous powerpoint 2007 sans passer par une boite de dialogue ce serait super Amicalement Yann |
|
|
|
|
|
#9 (permalink) |
![]() Date d'inscription: février 2006
Localisation: Morlanwelz (Carnières)
Âge: 44
Messages: 10 014
|
Essaie ceci :
Code :
Sub AjouterImages() Dim oFSO As Object Dim oFold As Object Dim oFl As Object Dim myS As Slide Dim stPath As String stPath = ActivePresentation.Path Set oFSO = CreateObject("Scripting.FileSystemObject") Set oFold = oFSO.GetFolder(stPath) For Each oFl In oFold.Files If UCase(Right(oFl.Name, 3)) = "JPG" Then ActivePresentation.Slides.Add ActivePresentation.Slides.Count + 1, ppLayoutBlank Set myS = ActivePresentation.Slides(ActivePresentation.Slides.Count) myS.Shapes.AddPicture FileName:=oFl.Name, _ LinkToFile:=msoFalse, SaveWithDocument:=msoTrue, _ Left:=72, Top:=54, Width:=576, Height:=432 End If Next oFl Set oFold = Nothing Set oFSO = Nothing Set myS = Nothing End Sub
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ? Ne posez pas de question par MP, c'est inutile. Les rubriques Office recrutent. Ma page d'accueil Consultez nos FAQ !! Word ; Access ; Outlook ; Excel ; PowerPoint ; SharePoint Si vous pensez que certains sujets manquent dans la FAQ, aidez nous ! Des images |
|
|
|
|
|
#10 (permalink) |
|
Invité de passage
![]() Date d'inscription: juin 2008
Localisation: Paris
Âge: 35
Messages: 6
|
Merci beaucoup Heureux-oli
C'est exactement ce que je voulais reproduire en mieux et sous powerpoint 2007 ![]() Pour la petite histoire , j'avais modifié ton code précédent afin de pouvoir sélectionner plusieurs photos depuis la boite de dialogue en cliquant sur la touche contrôle puis sur la (ou les) photos à importer. Si cela peut être utile à quelqu'un , je poste mon code (qui n'est pas optimisé mais qui fonctionne sous powerpoint 2007). Le principal interêt est de pouvoir avoir le choix de la selection des photos à importer via la boite de dialogue: Code :
Sub import2007() Dim stPath As String Dim vrtSelectedItem As Variant Set dlg = Application.FileDialog(msoFileDialogFilePicker) stPath = ActivePresentation.Path With dlg .InitialFileName = stPath .Filters.Add "Images", "*.jpg", 1 .AllowMultiSelect = True If .Show = -1 Then lLastSlide = ActivePresentation.Slides.Count If lLastSlide = 0 Then ActivePresentation.Slides.Add lLastSlide + 1, ppLayoutBlank For i = 1 To .SelectedItems.Count ActiveWindow.Selection.SlideRange.Shapes.AddPicture(FileName:=dlg.SelectedItems(i), LinkToFile:=msoFalse, SaveWithDocument:=msoTrue, Left:=72, Top:=54, Width:=576, Height:=432).Select ActiveWindow.View.GotoSlide Index:=ActivePresentation.Slides.Add(SlideIndex + 1, Layout:=ppLayoutBlank).SlideIndex Next Else End If End With lLastSlide = ActivePresentation.Slides.Count If lLastSlide > 0 Then GoTo ian Set dlg = Nothing OIErr: Debug.Print Err.Number Exit Sub ian: ActivePresentation.Slides(1).Select ActivePresentation.Slides(1).Delete End Sub |
|
|
|
|
|
#11 (permalink) |
![]() Date d'inscription: février 2006
Localisation: Morlanwelz (Carnières)
Âge: 44
Messages: 10 014
|
Un petit
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ? Ne posez pas de question par MP, c'est inutile. Les rubriques Office recrutent. Ma page d'accueil Consultez nos FAQ !! Word ; Access ; Outlook ; Excel ; PowerPoint ; SharePoint Si vous pensez que certains sujets manquent dans la FAQ, aidez nous ! Des images |
|
|
|
![]() |
![]() |
||
Fonction File Search avec PowerPoint 2007
|
||
| Outils de la discussion | |
|
|