ich habe für unser unternehmen eine Excel-Datei erstellt, welche zur erleichterten Bedienung mit Makros und Userform ausgestattet sind. Im Anhang sende ich euch einmal die Datei.
Hiebei habe ich folgendes Problem. Ich habe ein Macro Integriert, welches einen Zellwert (Ergebnis einer Fomrel) in die Zwischenlage Kopiert (Soll als Detainame gelten) - Range F1:I1. Dieses funktioniert soweit auch tadellos. Wenn ich nun aber die Userformen Anwähle (z.b. "Prüfprotokoll Drucken") und ausführe oder abbreche funktioniert im Anschluss das oben beschriebene Macro nicht mehr. Es scheint zwar wie Ausgeführt, Jedoch ist die Zwischenlage leer oder im Word werden 2 ?? ausgegeben beim einfügen. Ich bin nicht so fit mit den Userformen (alles bei Youtube angeschaut). Könnt Ihr mir helfen und evtl den Fehler finden?
06.01.2021, 11:31 (Dieser Beitrag wurde zuletzt bearbeitet: 06.01.2021, 11:37 von Marko120586.)
Hallo,
vielen Dank für die Antwort, Das habe ich auch schon gemerkt. Mal geht es und mal geht es nicht. Es hat sich aber abgezeichnet das es immer wenn es nicht geht immer dann passiert wenn ich die Userform angewendet habe.
ABer dein Link mit den zwei Fragezeichen hat es gebracht. Jetzt geht es auch bei mir. Was eine Scheiße...
vorab nochmal Danke für die Hilfe. Jedoch ist die Lösung mit dem "Exporler schließen" irgendwie ..ich nenn es mal.. Suboptimal. Ich habe bei weiteren Suchen folgenden Code gefunden.
Code:
Option Explicit
Private Declare Function OpenClipboard Lib "user32.dll" ( _ ByVal hWnd As Long) As Long Private Declare Function CloseClipboard Lib "user32.dll" () As Long Private Declare Function EmptyClipboard Lib "user32.dll" () As Long Private Declare Function SetClipboardData Lib "user32.dll" ( _ ByVal wFormat As Long, _ ByVal hMem As Long) As Long Private Declare Function GlobalAlloc Lib "kernel32.dll" ( _ ByVal wFlags As Long, _ ByVal dwBytes As Long) As Long Private Declare Function GlobalLock Lib "kernel32.dll" ( _ ByVal hMem As Long) As Long Private Declare Function GlobalUnlock Lib "kernel32.dll" ( _ ByVal hMem As Long) As Long Private Declare Function GlobalFree Lib "kernel32.dll" ( _ ByVal hMem As Long) As Long Private Declare Function lstrcpy Lib "kernel32.dll" ( _ ByVal lpStr1 As Any, _ ByVal lpStr2 As Any) As Long
Private Const CF_TEXT As Long = 1& Private Const GMEM_MOVEABLE As Long = 2&
Sub copy_to_CB3()
Dim objClip As New DataObject Dim strTmp As String
With Worksheets("POG_UI") .Range("B100").value = .Range("B35").value strTmp = .Cells(100, 2).value End With
Call StringToClipboard(strTmp)
End Sub
Private Sub StringToClipboard(strText As String)
Dim lngIdentifier As Long, lngPointer As Long lngIdentifier = GlobalAlloc(GMEM_MOVEABLE, Len(strText) + 1) lngPointer = GlobalLock(lngIdentifier) Call lstrcpy(ByVal lngPointer, strText) Call GlobalUnlock(lngIdentifier) Call OpenClipboard(0&) Call EmptyClipboard Call SetClipboardData(CF_TEXT, lngIdentifier) Call CloseClipboard Call GlobalFree(lngIdentifier)
End Sub
Mein Ihr dies könnte der Schlüssel zur Lösung sein? Problem bei mir ist eben nur, das mein VAB die Meldung bringt, dass das Projekt auf die 64-Bit version aktualisiert werden muss.
Moin! Vorab sorry für die harschen Worte: Du entwickelst Produktivdateien für euer Unternehmen und kannst mit dem Link nix anfangen? Finde ich mutig! (oder sollte ich besser unverantwortlich schreiben?)
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)