Screenshot d'un userform + sauvegarder sous

Bonsoir à tous.

J'ai un Userform qui me donne un rapports d'erreur. J'aimerais ajouter un bouton qui permette de sauvgarder sous forme d'image ce userform et qui ouvre une fenetre de dialogue pour choisir le dossier de destination. Puis une fois validé on doit pouvoir à nouveau jouer avec le userform en question.

Note: Un seul Useform sera ouvert au moment de cette manipulation, si jamais cela peut simplifier la tâche.

Enfin, le ponpon si dans cette boite de dialogue le nom de la photo pouvais être préremplis selon des variables (mais modifiable si besoin par l'utilisateur) ce serait topiscime.

L'internet m'indique qu'une solution serait de faire un Sendkeys pour faire un 'imp écran' mais du coup je ne suis pas maitre du dossier de destination donc il faudrais importer cette photo dans excel pour la réenregistrer enfin.... j'espere trouver ici une solution plus simple !

Merci a vous

++

P.S: je ne joint pas de fichier car l'application est assez volumineuse, je ne pense pas que ce soit nécessaire.

Un sujet qui me permet d'avancer. Il vient completer celui ci.

https://forum.excel-pratique.com/excel/code-vba-pour-enregistre-un-userform-23286

J'ai réussis a faire fonctionner le code de Banzai64. Mais le résultat n'est pas parfait, la manipulation est longue en enregistrant la photo en format PDF via PDFcreator etc.

Si il était au minimum possible de copier la photo shapes(1) dans le presse papier pour ensuite pouvoir la coller dans un mail par exemple ou ailleur ce serait cool.

A+

Désolé DAN de la gêne occasionné avec l'ancien post merci d'avoir mit de l'ordre.

Bonjour Gabin,

Pas de souci pour le post dans l'ancien fil.

Le code de Banzai est en effet le code que TI (Thierry Pourtier) avait réalisé il y a des années. Banzai le mentionne d'ailleurs.

Et avec ce code ?

   Application.SendKeys "(%{1068})"
   DoEvents
   Sheets.Add After:=ActiveSheet
   ActiveSheet.Paste

Cordialement

Bonjour Dan,

Merci pour tas réponse cela fonctionne, je fais apparaitre l'image dans une feuille excel. mais je me retrouve bloqué lorsque je veux manipuler la capture d'écran.

J'ai essayé:

.Shapes(1).CopyPicture

jrv donc à copier la photo dans le presse papier mais je ne peux que la coller dans excel.. je ne peux pas la coller dans un dossier ou directement dans un mail par exemple.

J'aimerais vraiment pouvoir exporter mon userform de mon application vba en fait.

NOTE: Je suis sur un PC professionel je pense que à cause de mes autorisations restreintes je ne peux pas ajouter de nouvelles références qui me permtrais directement d'intéragir avec Outlook (bon dieu ce que ce serait bien.... :( )

je ne peux pas la coller dans un dossier ou directement dans un mail par exemple.

Dans un dossier non, il faut coller dans un soft genre Irfanview par exemple puis sauver dans un dossier. Là c'est peu compliqué je pense
Par contre via mail, peut être faire une macro excel pour envoyer un mail via outlook et dans le code puis mettez cette instruction

Application.SendKeys "(^v)"

Non malheuresement dan comme j'ai dit dans mon précédent message je ne peux pas modifier ou ajouter de références (il faut les droits d'administrateurs) donc je ne peux pas ou du moins je n'arrive pas à créer de nouveaux mail Outlook depuis Vba Excel.

Honnetement ce problème m'empeche d'automatiser de nombreuses tâches je crois que je vais essayer d'appeler le service informatique ! >:/

Et ceci cela ne fonctionne pas ?

Sub Mailimage()

Dim OutApp As Object
Dim OutMail As Object

'Shift-Print Screen
Application.SendKeys "(%{1068})"
DoEvents

On Error Resume Next
'Prepare le mail
Set OutApp = CreateObject("Outlook.Application")
OutApp.Session.Logon
Set OutMail = OutApp.CreateItem(0)

With OutMail
.To = "ton adresse mail"
.Subject = "Sujet"
.Display
Application.SendKeys "(^v)"
End With
On Error GoTo 0

OutApp.Session.Logoff
Set OutMail = Nothing
Set OutApp = Nothing

End Sub

Mais..........

ca fais des mois et des mois j'ai épluché tous les codes possibles de l'internet pour essayer de trouver une solution pour envoyer des mails depuis excel et la ton code fonctionne du premier coup ! je suis bluffé.

Merci infiniment dan j'ai rien à redire c'est parfaitement ce que je voulais.

A+

bonne fin de journée à toi

Parfait Gabin.

J'ai tout de même regardé ci et là pour voir si des solutions n'existaient pas

A bientôt sur d'autres fils peut être

Bonjour a tous

Pour se passer des références Microsoft (word outlook.... et probablement d'autres)

Il faut utiliser les déclarations tardives. Lorsque que l'on a des problèmes de droits comme dans le cas présent ou quand le fichier est utilisé avec plusieurs versions différentes d'office

https://docs.microsoft.com/fr-fr/dotnet/visual-basic/programming-guide/language-features/early-late-...

Fred

Rechercher des sujets similaires à "screenshot userform sauvegarder"