Userform à partir d'une forme
Bonjour à tous.
j'ai deux questions.
1-
J' ai déjà codé des Userform divers qui s'activent à partir d'une cellule etc.. généralement on l'active en utilisant quelque chose du genre:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("G6:G6")) Is Nothing Then UserForm1.Show.
Cependant j'aimerai que le Userform apparaisse lorsque l'on click sur une forme. Quand je dis forme j'entend dans excel; insertion; formes. n'importe laquelle, par exemple un rectangle. comment fait on ?
2-
La deuxième chose que je voudrais mettre en place dans ce Userform. C'est une combobox dans laquelle on trouve une liste d'éléments qui lorsqu'ils sont selectionnés ouvrent un fichier ppt dans un dossier.
Comment demande t on d'ouvrir une adresse de fichier ?
par ex:
'C:\Users\yo\Desktop\excel\blabla.ppt\.open
merci d'avance,
Cordialement
bonjour,
1 - Clic droit sur la forme + Affecter une macro + Nouvelle
Userform1.Show2 - Pour un ppt je ferai un truc du genre :
Sub Macro1()
Dim NomEtChemin$
NomEtChemin = "D:\Présentation.pptx"
Application.DisplayAlerts = False
ActiveSheet.Hyperlinks.Add Anchor:=Range("A1"), Address:=NomEtChemin, TextToDisplay:="tmp"
Range("A1").Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
Range("A1").ClearContents
End Sub... Mais il y a sans doute une manière de faire plus générique du type
Application.DDEExecute??
A+
Bonjour à tous,
Pour la question 2], on peut utiliser une référence à PowerPoint ainsi :
' On déclare une variable de type Application PowerPoint
Dim ppt As PowerPoint.Application
Set ppt = CreateObject("PowerPoint.Application")
ppt.Visible = True ' Indispensable, sinon il ne peut pas ouvrir de fichier (Erreur)
' On crée maintenant un objet Presentation
Dim Pres As PowerPoint.Presentation
' On pointe vers la présentation :
Set Pres = ppt.Presentations.Open(Filename:="C:\_divers_XLSM\essai.ppt")Dès que tu as terminé avec ce fichier, il faut fermer Powerpoint et libérer la mémoire ainsi :
ppt.Quit
Set ppt = NothingPour que cela fonctionne, il faut ajouter une référence à l'Editeur VB ainsi :
L'avantage de cette méthode c'est que tu peux "piloter" PowerPoint, par exemple il est possible de copier le "Graphique 1" du classeur Excel pour le coller dans la première diapositive de PowerPoint ainsi :
' On active, sélectionne et copie le Graphique "Graphique 1" de Excel :
ActiveSheet.ChartObjects("Graphique 1").Activate
ActiveChart.ChartArea.Select
ActiveChart.ChartArea.Copy
' Et on le colle dans la première diapositive de la présentation :
Pres.Slides(1).Shapes.Paste
' On enregistre la présentation PowerPoint :
Pres.Save