Sauvegarder userform

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

5 réponses

28Coco28 Messages postés 24 Date d'inscription mardi 31 août 2010 Statut Membre Dernière intervention 17 mars 2011 1
3 sept. 2010 à 14:19
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
1
the_little_big_man Messages postés 86 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 14 février 2011
2 sept. 2010 à 11:51
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...
0
28Coco28 Messages postés 24 Date d'inscription mardi 31 août 2010 Statut Membre Dernière intervention 17 mars 2011 1
2 sept. 2010 à 13:40
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?
0
the_little_big_man Messages postés 86 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 14 février 2011
2 sept. 2010 à 14:24
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...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
28Coco28 Messages postés 24 Date d'inscription mardi 31 août 2010 Statut Membre Dernière intervention 17 mars 2011 1
2 sept. 2010 à 18:24
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
0
Rejoignez-nous