Bonjour a tous
je travaille sur la capture en image de tout ce qui peut se passer a l'ecran avec ou sans api histoire de remettre au gout du jour tout mes petites bonbinettes de macro
je suis actuellement sur la capture d'une plage copiée sur un graphique (ca pas de soucis c'est vieux comme le monde)
mais j'ai eu une envie de proposer a l'utilisateur un dialog enregistrer sous
alors a ma connaissance seule la fenetre dialog excel existe
j'ai eu donc l'idée de la détourner pour proposer a l'utilisateur le choix d'enregistrer sa capture par la boite de dialog saveas
ma question est donc y a t il un moyen plus propre c'est a dire un dialog qui me permettrait de recupérer le nom tapé dans le dialog
je sais c'est tordu mais c'est moi et c'est comme ca
demo
fonction de la boite de dialog détournée
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Sub enregistrer_capture_sous() Dim plage, graf, choix As Integer, chemin As String, Ext Ext = "jpg" With ActiveSheet Set plage = .Range("a1:D7") plage.CopyPicture xlScreen, xlPicture Set graf = .ChartObjects.Add(plage.Left, plage.Top, plage.Width, plage.Height) graf.Chart.Paste chemin = enregistrer_sous("jpg") If chemin <> "" Then graf.Chart.Export Filename:=chemin, FilterName:=Ext graf.Delete End With End Sub
merci pour vos retour
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Function enregistrer_sous(Ext) As String Dim choix enregistrer_sous = "" choix = Application.FileDialog(msoFileDialogSaveAs).Show 'afficher la boite de dialogue "enregistrer sous" de excel 'la fonction retourne le resultat If choix <> 0 Then enregistrer_sous = Split(Application.FileDialog(msoFileDialogSaveAs).SelectedItems(1), ".")(0) & "." & Ext End Function
Partager