Je voudrais créer une msgbox ou équivalent dans laquelle on puisse éditer une zone (zone = des cellules, un graphique, un graphe dynamique etc.) afin de pouvoir exporter en tant qu'image cette zone.
J'ai réussi à faire un truc avec une boite de dialogue dans lequel on rendre les cellules à exporter (ex: 'A1:M14'). Et ça marche. Mais grace à cela je ne peux pas, par exemple, sélectionner et donc exporter un graphe dynamique! Car il n'a pas d'adresse cellule.
En fait le mieux ce serait une boite de dialogue où l'on puisse changer de feuille et sélectionner les cellules ou le graphe avec la souris comme pour les zones de données d'un graphique. Je n'arrive pas à trouver commment faire. Est-ce que quelqu'un sait?
Dim Plage_Ref As Range
Set Plage_Ref = Application.InputBox(prompt:='Sélectionnez la plage', Title:='Choix de la plage', Default:=Selection.Address, Type:=8)
MsgBox Plage_Ref.Address
Dim Plage_Ref As Range
Set Plage_Ref = Application.InputBox(prompt:='Sélectionnez la plage', Title:='Choix de la plage', Default:=Selection.Address, Type:=8)
MsgBox Plage_Ref.Address
J'ai une erreur : 'Variable objet ou variable bloc With non définie (erreur 91)'
Est ce que tu sais ce que ça veut dire?
J'avais quasiment la même instruction. Moi c'était :
Set Plage = Application.InputBox(prompt:='Sélectionner votre zone: ', Title:='Sélection de zone ', Default:='$A$1', Type:=8)
Mais il fallait entrer l'adresse, on ne pouvait pas simplement sélectionner avec la souris les cellules. En tout cas cette instruction marchait.
Oui en fait celà ne résolue absolument mon problème, l'instruction que tu m'as donné marche en faisant:
PlageSelection = Selection.Address
Set Plage = Application.InputBox(prompt:='Sélectionnez la plage', Title:='Choix de la plage', Default:=PlageSelection, Type:=8)
MsgBox Plage.Address
Mais elle ne me permet pas de sélectionner un graphe! :sick:
Elle me permet de sélectionner des cellules
si tu sélectionnes la plage de cellules contenant entièrement ton graphe (pour un graphe intégré à une feuille) celui ci sera copié avec la plage lors d'une instruction Plage_Ref.copy
il te restera à coller ou tu veux.
Oki mais pour un graphe dynamique? Enfin lorsque j'ai une feuille où il n'y a qu'un graphe et pas de cellules. Dans ce cas là je n'arrive pas à faire marcher cette méthode. Ca semble logique le graphe n'a pas d'adresse.
TypeSelection = TypeName(Selection)
Permet de savoir de quel type est la sélection (Range, ChartArea), ensuite j'ai fait un case et ça marche parfait!!