Impression Userform PtrSafe

Bonjour à tous,

J'essai d'imprimer correctement un userform comportant 7 onglets. mais j'ai un pb avec la fonction DECLARE:

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

En effet, Excel me demande de mettre à jour mon code pour pouvoir être utilisé en 64 bits. et me demande de les marquer avec l'attribut PtrSafe.

N'ayant pas trouvé dans les forums, je me permets de poser la question ici. Avez-vous une idée?

Ci-dessous le code dans son intégralité:

merci de votre aide!!

Option Explicit

Private Declare Sub keybd_event Lib "user32" ( _
ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Sub btImprimer_Click()
Dim objFeuilPass As Worksheet

MultiPage1.Value = 0
UFSaisie.Repaint
keybd_event vbKeySnapshot, 1, 0&, 0&
DoEvents
Sheets.Add.Name = "PassImp"
Set objFeuilPass = Sheets("PassImp")
objFeuilPass.Paste
With objFeuilPass.Shapes(1)
    .Top = 3
    .Left = 40
    .Height = 390
    .Width = 448
End With
MultiPage1.Value = 1
UFSaisie.Repaint
keybd_event vbKeySnapshot, 1, 0&, 0&
DoEvents
objFeuilPass.Paste
With objFeuilPass.Shapes(2)
    .Top = 250
    .Left = 40
    .Height = 390
    .Width = 448
End With
MultiPage1.Value = 2
UFSaisie.Repaint
keybd_event vbKeySnapshot, 1, 0&, 0&
DoEvents
objFeuilPass.Paste
With objFeuilPass.Shapes(3)
    .Top = 717
    .Left = 40
    .Height = 390
    .Width = 448
End With
With objFeuilPass.PageSetup
        .LeftMargin = Application.InchesToPoints(0.25)
        .RightMargin = Application.InchesToPoints(0.25)
        .TopMargin = Application.InchesToPoints(0.75)
        .BottomMargin = Application.InchesToPoints(0.53)
        .HeaderMargin = Application.InchesToPoints(0.32)
        .FooterMargin = Application.InchesToPoints(0.39)
        .LeftHeader = "Post Mortem d'arrêt machine"
        .CenterHeader = " "
        .RightHeader = "Équipement #" & cbxEquipement
        .LeftFooter = " "
        .CenterFooter = "&D" & ""
        .RightFooter = "page " & "&P" & " sur " & "&N"
        .PrintErrors = 0
End With

objFeuilPass.PrintOut
Application.DisplayAlerts = False
objFeuilPass.Delete
Application.DisplayAlerts = True
Set objFeuilPass = Nothing
MultiPage1.Value = 0

End Sub

Bonsoir,

pour Excel 64 bits

Private Declare PtrSafe Sub keybd_event Lib "user32" ( _
ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As LongPtr, ByVal dwExtraInfo As LongPtr)
Rechercher des sujets similaires à "impression userform ptrsafe"