Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

[Excel] Userform zerstört Makro
#1
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


Angehängte Dateien
.xlsm   Lagenbild-Ind.B.xlsm (Größe: 277,55 KB / Downloads: 6)
Antworten Top
#2
Hallöchen,

Ich habe Deine Frage mal ins Excel-Forum geschoben. Du hast sie in unserem Beispielbereich gepostet Sad
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • Marko120586
Antworten Top
#3
Hallo, 19

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

Die zwei Fragezeichen...
________
Servus
Case
[-] Folgende(r) 1 Nutzer sagt Danke an Case für diesen Beitrag:
  • Kuwer
Antworten Top
#4
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
Antworten Top
#5
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.
Antworten Top
#6
Hallöchen,

ja, da gibt es was zu tun Sad

windows-api-deklaration-vba-64-bit
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • Marko120586
Antworten Top
#7
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.
Antworten Top
#8
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)
Antworten Top
#9
Schau mal: Excel-VBA für Dummies: Amazon.de: Walkenbach, John, Haselier, Rainer G.: Bücher
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#10
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
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste