Sauvegarder userform [Résolu]

Messages postés
24
Date d'inscription
mardi 31 août 2010
Dernière intervention
17 mars 2011
- - Dernière réponse : 28Coco28
Messages postés
24
Date d'inscription
mardi 31 août 2010
Dernière intervention
17 mars 2011
- 3 sept. 2010 à 14:19
Bonjour,
Je suis en train de dévelloper une application sur Excel (VBA) dans laquel je travail avec des userform.
Je n'arrive pas à trouver un code pour enregistrer l'userform3 avec tous sont contenu (tels un imprime écran) en .jpg ou .pdf (sur mon bureau afin de pouvoir l'envoyer par mail par la suite. J'ai déjà la partie qui envoie le mail mais je n'arrive pas à enregistrer le userform.
Es-ce que quelqu'un peux m'aider?
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Messages postés
24
Date d'inscription
mardi 31 août 2010
Dernière intervention
17 mars 2011
3
Merci
J'ai trouvé!

voici le code que j'utiliserai si quelqu'un est intéressé

'jai mis ça dans un module

Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, _
    ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

Public Const VK_SNAPSHOT = &H2C
'Public Const KEYEVENTF_KEYUP = H2C
Public Const VK_MENU = &H12
Public Const VK_TAB = &H9
Public Const VK_V = &H56
Public Const VK_CONTROL = &HA2

'Puis ça dans le bouton à programmer

Dim logiciel

keybd_event VK_SNAPSHOT, 1, 0, 0

logiciel = Shell("C:\WINNT\system32\mspaint.exe", vbNormalFocus)
Application.Wait Now + TimeValue("00:00:02")
    
SendKeys "^v"
SendKeys "^s"
SendKeys "usf3"
Application.Wait Now + TimeValue("00:00:01")
SendKeys ("{ENTER}")
SendKeys "%{F4}"



Merci de votre aide

Merci 28Coco28 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de 28Coco28
Messages postés
86
Date d'inscription
lundi 22 janvier 2007
Dernière intervention
14 février 2011
0
Merci
tiens ce code te permet de faire un imprime ecran de ton userform et de l'imprimer. à toi d'adapter


'tu met ca dans un module
Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, _
    ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

Public Const VK_SNAPSHOT = &H2C

'et la dans un bouton de ton userfomr que tu vx imprimer
Private Sub CommandButton2_Click()

    keybd_event VK_SNAPSHOT, 0, 0, 0
    Workbooks.Add
    Application.Wait Now + TimeValue("00:00:01")
    ActiveSheet.PasteSpecial Format:="Bitmap", Link:=False, DisplayAsIcon:=False
    ActiveSheet.Range("A1").Select
    ActiveSheet.PageSetup.Orientation = xlLandscape
    
    ActiveWindow.SelectedSheets.PrintOut Copies:=1
    ActiveWorkbook.Close False

End Sub


A good excercise for the Heart is to bend down and help another up...
Commenter la réponse de the_little_big_man
Messages postés
24
Date d'inscription
mardi 31 août 2010
Dernière intervention
17 mars 2011
0
Merci
Je viens d'essayer ton programme, il permet bien d'imprimer l'imprime écran, mais je travail aussi souvent sur 1 que sur 2 écran (écran étendu) est du coup il ne capte pas la userform active.
N'y a t'il pas possibilité de copier juste la userform active sous paint par exemple?
Commenter la réponse de 28Coco28
Messages postés
86
Date d'inscription
lundi 22 janvier 2007
Dernière intervention
14 février 2011
0
Merci
si tu as pdfcreator par exempe tu px faire comme ceci :
tu sauvegarde ton imprimante par defaut, tu definit pdfcreator comme imprimante par defaut, tu imprime et tu restaure.

Sub Imprimer()
Dim stPrinter As String
 
stPrinter = Application.ActivePrinter
Application.ActivePrinter = "PDFCreator"
UserForm1.PrintForm
Application.ActivePrinter = stPrinter
End Sub




A good excercise for the Heart is to bend down and help another up...
Commenter la réponse de the_little_big_man
Messages postés
24
Date d'inscription
mardi 31 août 2010
Dernière intervention
17 mars 2011
0
Merci
j'ai essayer le code que tu m'a donné ci dessus; Ne parvenant pas à le faire marcher, j'ai trouver ce code qui correspond bien à ce que je veux faire mais il est imcomplet.
je fais un imprime écran de ma userform
je colle dans paint et je l'enregistre sur le bureau
le problème est qu'il m'enregistre un doc vide (je pense).
Comme s'il ne prenait pas en compte l'application mspaint.
voici le code. voie tu le problème?

'dans un module

Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, _
    ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

Public Const VK_SNAPSHOT = &H2C
'Public Const KEYEVENTF_KEYUP = H2C
Public Const VK_MENU = &H12
Public Const VK_TAB = &H9
Public Const VK_V = &H56
Public Const VK_CONTROL = &HA2




'dans la programmation du bouton
Private Sub CommandButton4_Click()


keybd_event VK_SNAPSHOT, 1, 0, 0
logiciel = Shell("C:\WINNT\system32\mspaint.exe", vbNormalFocus)
Application.Wait Now + TimeValue("00:00:02")
    
SendKeys "^v"

Application.Save "C:\Documents and Settings\jrv327\Bureau\usf3.jpg"
  
   
End Sub
Commenter la réponse de 28Coco28

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.