Sauvegarder userform [Résolu]

28Coco28 24 Messages postés mardi 31 août 2010Date d'inscription 17 mars 2011 Dernière intervention - 2 sept. 2010 à 11:35 - Dernière réponse : 28Coco28 24 Messages postés mardi 31 août 2010Date d'inscription 17 mars 2011 Dernière intervention
- 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 

5 réponses

Répondre au sujet
28Coco28 24 Messages postés mardi 31 août 2010Date d'inscription 17 mars 2011 Dernière intervention - 3 sept. 2010 à 14:19
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de 28Coco28
the_little_big_man 86 Messages postés lundi 22 janvier 2007Date d'inscription 14 février 2011 Dernière intervention - 2 sept. 2010 à 11:51
0
Utile
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
28Coco28 24 Messages postés mardi 31 août 2010Date d'inscription 17 mars 2011 Dernière intervention - 2 sept. 2010 à 13:40
0
Utile
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
the_little_big_man 86 Messages postés lundi 22 janvier 2007Date d'inscription 14 février 2011 Dernière intervention - 2 sept. 2010 à 14:24
0
Utile
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
28Coco28 24 Messages postés mardi 31 août 2010Date d'inscription 17 mars 2011 Dernière intervention - 2 sept. 2010 à 18:24
0
Utile
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.