Microsoft Excel

Herbers Excel/VBA-Archiv

Kopieren nicht möglich

Betrifft: Kopieren nicht möglich von: Reaper
Geschrieben am: 30.08.2014 12:31:58

Hi,

Ich beziehe mich mal auf diesen Link: https://www.herber.de/forum/archiv/888to892/888024_Kopieren_und_runterziehen_verhindern.html

Ich habe diesbezüglich noch ein paar Fragen was das kopieren von bestimmten Daten in einen Blatt angeht, was über ein Modul gesteuert wird.

Ich finde das Makro gut, da andere User nicht ausversehen z.b. ein speziell formartierten Tabellenkopf überschreiben oder willkürlich umändern (wird durch ein anderes Makro gesperrt), aber durch die Drag&Drop Funktion kann man jedoch diese Sperre umgehen. Mein Problem ist, dass sich in einen bestimmten Blatt Daten befinden die in eine seperate Mappe per Modul kopiert werden sollen und diese Mappe dann auf den Desktop abgespeichert werden soll.

Das ganze funktioniert auch so, aber durch das Makro:




Private Sub Workbook_Deactivate()
Application.CellDragAndDrop = bolDRAGnDrop
End Sub

funktioniert das nicht. Wenn ich das rausnehme geht es, aber dann wirkt sich das auf andere Blätter die noch parralel offen sind aus. Dort wird dann das ziehen auch deaktiviert, was das eigentlich verhindern soll.

Ich hab auch schon diverse andere Variationen probiert, angefangen die einzelnen Sheets zu _
sperren und/oder entsperren. Es bleibt jedoch immer an dem Makro hängen (oder diesen)



Private Sub Workbook_Deactivate()
Application.CellDragAndDrop = True
End Sub

Gibt es ne Möglichkeit das zu umgehen???

Gruß

  

Betrifft: AW: Kopieren nicht möglich von: Robert
Geschrieben am: 05.09.2014 14:00:02

Hallo Reaper,

Ich glaube, das Problem liegt im dem Code, der Kopiert und dann in das Andere Blatt Einfügt.
Wenn dieser unglücklich programmiert ist (z.B. mit .Select oder .Activate gearbeitet wird), dann legt eben das Event Workbook_Deactivate() los.

Was ich nicht Verstehe:
Beim Zurückwechseln in die Mappe müsste Drag and Drop eingentlich wieder deaktiviert werden (per Workbook_Activate() Event)

Generell kann man mit Application.EnableEvents = True/False verhindern, dass Events ausgelöst werden. VORSICHT: Das ist ein Applicationweiter Toggle! Wenn du den Auf False setzt, werden Makros, die z.B. beim Klick oder Ähnliches ausgeführt werden nicht mehr möglich sein, bis du wieder .EnableEvents = True ausführst.

Viele Grüße
Robert


 

Beiträge aus den Excel-Beispielen zum Thema "Kopieren nicht möglich"