Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1668to1672
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anpassung Code auf 64 Bit PC
22.01.2019 12:01:22
biwi
Hallo zusammen,
ich habe folgendes Problem: In meinem Excel-Tool habe ich ein User-Form welches weitere Vertragsdetails von einem ausgewählten Vertrag dynamisch einblendet.
Über einen Button in der UserForm wird ein screenshot der Userform erstellt und dann einer Email angehängt. Soweit funktioniert das alles auch ganz gut. Jetzt habe ich aber einen Kollegen mit einem 64 bit Computer bei dem der Code nicht funktioniert und wollte den Code dahingehend anpassen dass er auf beiden Systemen läuft. Dazu habe ich online folgende Lösung gefunden:

#If Win64 Then
Declare PtrSafe Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal  _
dwFlags As LongLong, ByVal dwExtraInfo As LongPtr)
#Else
Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags  _
As Long, ByVal dwExtraInfo As Long)
#End If
Private Const VK_SNAPSHOT = &H2C
Sub CommandButton1_Click()
keybd_event VK_SNAPSHOT, 1, 0, 0
Call Email
End Sub
Wenn ich jetzt aber einen Vertrag auswähle also eine Zelle im Excelblatt anwähle wird mir die erste Zeile (also die Kopfzeile) meines Codes für die Befüllung der Userform gelb markiert.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.EnableEvents = False
Application.ScreenUpdating = False
If Intersect(Target, Range("A8:L20000")) Is Nothing Then Exit Sub
Range("B3").Value = Cells(Target.Row, 1).Value
'Vertragsnummer & Kunde
UserForm1.Label1.Caption = "  " & Worksheets("Vertragsdetails").Range("B9")
'Vertragsdetails
UserForm1.Label2.Caption = "  " & Worksheets("Vertragsdetails").Range("D9")
UserForm1.Label5.Caption = "  " & Worksheets("Vertragsdetails").Range("D12")
UserForm1.Label9.Caption = "  " & Worksheets("Vertragsdetails").Range("D13")
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub

Und es erscheint die Fehlermeldung Fehler beim Kompilieren:
Konstanten, Zeichenfolgen fester Länge ... sind als Public-Elemente von Objektmodulen nicht zugelassen
Außerdem wird mir die Zeile "Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)" markiert.
Kann mir jemand helfen?
Vielen lieben Dank im Voraus

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Anpassung Code auf 64 Bit PC
22.01.2019 13:00:57
Nepumuk
Hallo,
so:
Private Declare …
Gruß
Nepumuk
AW: Anpassung Code auf 64 Bit PC
22.01.2019 13:28:30
biwi
Ach Gott so einfach,perfekt!
Vielen lieben Dank
Anzeige

58 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige