Bonjour bonjour !
Voilà mon objectif :
- Ouvrir un Userform normalement
- Lorsque je clique sur mon Commandbutton1, je souhaite qu'excel ouvre un second userform plus propre par dessus (ce qu'il fait très bien), le snapshot, puis le ferme.
Or, jusqu'ici, ma fonction qui snapshot l'userform récupère l'image du premier userform et non celle de l'userform qui s'ouvre par dessus 🙁
Chose curieuse : la prise d'écran se fait même quand le premier userform est en vbModeless, mais si les deux sont vbModeless aucune prise d'écran n'est faite et la macro plante...
Je soupçonne le code de ne pas "sélectionner" le second usf comme fenêtre active lors de la prise d'écran, mais aucune idée de comment régler ça.
Autre contrainte : le Unload du second userform ne fonctionne que si celui ci est en vbModeless, sinon je suis obligé de le fermer à la main pour que la procédure continue...
Voilà mon code :
Sur le premier Userform :
	
	
	
	
	
		
Sur le module1 :
	
	
	
	
	
		
Merci beaucoup pour votre aide !!
	
		
			
		
		
	
				
			Voilà mon objectif :
- Ouvrir un Userform normalement
- Lorsque je clique sur mon Commandbutton1, je souhaite qu'excel ouvre un second userform plus propre par dessus (ce qu'il fait très bien), le snapshot, puis le ferme.
Or, jusqu'ici, ma fonction qui snapshot l'userform récupère l'image du premier userform et non celle de l'userform qui s'ouvre par dessus 🙁
Chose curieuse : la prise d'écran se fait même quand le premier userform est en vbModeless, mais si les deux sont vbModeless aucune prise d'écran n'est faite et la macro plante...
Je soupçonne le code de ne pas "sélectionner" le second usf comme fenêtre active lors de la prise d'écran, mais aucune idée de comment régler ça.
Autre contrainte : le Unload du second userform ne fonctionne que si celui ci est en vbModeless, sinon je suis obligé de le fermer à la main pour que la procédure continue...
Voilà mon code :
Sur le premier Userform :
		VB:
	
	
	Private Sub CommandButton1_Click()
    ApercuDoss.Show
    Call Export_dossier_trspt
    Unload ApercuDoss
    MsgBox "Dossier envoyé avec succès", vbInformation, "Succès"
End Sub
	Sur le module1 :
		Code:
	
	
	Sub Export_dossier_trspt()
Dim Ws As Worksheet
   
    Application.ScreenUpdating = False
    PrintScreen
    DoEvents
   
    On Error Resume Next
       Application.DisplayAlerts = False
       Sheets("impression").Delete
       Application.DisplayAlerts = True
    On Error GoTo 0
   
    'Ajoute une feuille pour coller l'image du formulaire
    Set Ws = Sheets.Add
   
    'renomme la feuille
    ActiveSheet.Name = "impression"
        Sheets("impression").Paste
        Sheets("impression").PageSetup.Orientation = xlLandscape
        Selection.ShapeRange.LockAspectRatio = msoTrue
        'Selection.ShapeRange.Height = Range("A1:N44").Height
        Selection.ShapeRange.Width = Range("A1:N44").Width
       
        'impression centrée dans la page
        With Sheets("impression").PageSetup
            .CenterHorizontally = True
            .CenterVertically = True
            .PrintArea = "A1:N44"
            .LeftMargin = Application.InchesToPoints(0)
            .RightMargin = Application.InchesToPoints(0)
            .TopMargin = Application.InchesToPoints(0)
            .BottomMargin = Application.InchesToPoints(0)
            .Zoom = False
        End With
    ActiveSheet.ExportAsFixedFormat _
            Type:=xlTypePDF, _
            Filename:=ThisWorkbook.Path & "\" & "Formulaire" & ".pdf", _
            Quality:=xlQualityStandard, _
            IncludeDocProperties:=True, _
            IgnorePrintAreas:=False, _
            OpenAfterPublish:=False
       
        'enléve les messages d'alerte
        Application.DisplayAlerts = False
        ActiveSheet.Delete
        'remet les messages d'alerte
        Application.DisplayAlerts = True
        'réactive le rafraichissement de l'écran
        Application.ScreenUpdating = True
       
...ETC...
End Sub
Sub PrintScreen()
     keybd_event VK_MENU, 0, 0, 0
     keybd_event VK_SNAPSHOT, 0, 0, 0
     keybd_event VK_SNAPSHOT, 0, KEYEVENTF_KEYUP, 0
     keybd_event VK_MENU, 0, KEYEVENTF_KEYUP, 0
End Sub
	Merci beaucoup pour votre aide !!