Clever-Excel-Forum

Normale Version: [Excel] Userform zerstört Makro
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

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?

Betsen Dank im Voraus
Hallöchen,

Ich habe Deine Frage mal ins Excel-Forum geschoben. Du hast sie in unserem Beispielbereich gepostet Sad
Hallo, 19

es klingt verrückt, aber es klappt bei mir und wohl auch Anderen: 21

Die zwei Fragezeichen...
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...

Danke euch
Liebe Kollegen,

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.
Hallöchen,

ja, da gibt es was zu tun Sad

windows-api-deklaration-vba-64-bit
Danke für die Antowrt.

Kann das jemand von euch? Bringt das überhaupt etwas?
Ich versteh da leider nur Bahnhof. Ich bin für jede Hilfe dankbar.
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
Hallo Makro,

wofür ist denn die Kopiererei des Dateinamens gut?  Was willste denn damit machen?  Man kann von Excel auch auf Word zugreifen.



gruß 

rb