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
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
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
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
merci pour vos retour