Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
316to320
316to320
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zwischenablage leeren

Zwischenablage leeren
01.10.2003 20:48:32
Boris
Hi Leute,

Wie kann ich per VBA die gesamte Zwischenablage leeren?
Reinpacken kann ich ja alles mit der "PutInClipboard-Methode" - aber wie kann ich das Clipboard wieder komplett leeren?

Grüße Boris

24
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Ja - super! Und noch eine kleine Nachfrage:
01.10.2003 21:05:19
Boris
Hi Holger,

das ist perfekt! Und somit hab ich jetzt auch die Geschichte mit der Gültigkeit wasserdicht (Du erinnerst dich? Killerbefehle Kopieren und ausschneiden?)

Werde jetzt immer diesen Code als Worksheet_Selection_Change einsetzen:


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim oData As DataObject
Set oData = New DataObject
oData.SetText ""
oData.PutInClipboard
End Sub


Stellt sich zum Schluss nur noch ein Frage:
Da ja der Verweis auf die "Microsoft Forms 2.0 Object Library" gesetzt sein muss:
Wie kann ich diesen Verweis beim Öffnen der Mappe automatisch setzen? Oder werden die aktivierten Verweise automatisch "mitgespeichert", so dass man sich das Aktivieren beim Öffnen sparen kann?

Grüße Boris
Anzeige
Ich und VBA *grinz*
01.10.2003 21:12:16
Panicman
Hallo Boris,

du weißt doch, das ich kein VBA kann (nur mit Recorder)
das war nur logisches Überlegen.
keine Ahnung ob sich der Verweis automatisch setzt.
können wir ja ausprobieren. Schick mir doch die Datei.
Bei mir wird bis jetzt "Dim oData As DataObject" nicht anerkannt.

Gruß
Holger
Du hast Post oT
01.10.2003 21:16:01
Boris
Das Funzt !!!!
01.10.2003 21:19:13
Panicman
Hallo Boris

ich kann überhaupt nichts mehr in der Kopieren
Bessergesagt kopieren schon, aber sobald ich die Zelle verlasse ist es weg.

Gruß
Holger
Gültigkeit - Kopieren und Ausschneiden verhindern
01.10.2003 21:27:24
Boris
Hi Holger, hi alle anderen,

hab dem Posting nochmal ne aussagefähige Überschrift verliehen - des Archives wegen.

Mein "Dauerproblem":
Ich arbeite gerne mit Daten-Gültigkeit. Zudem erstelle ich Mappen, die von vielen unerfahrenen Excel-Usern genutzt werden.
Der Tod einer jeden Gültigkeit sind bekanntlich die Befehle "Kopieren" und "Ausschneiden" - gerade von den sogenannten "DAUs" immerwieder gerne benutzt.
Also möchte ich dies grundsätzlich unterbinden.
Bisher hatte ich es immer mit


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Application.CutCopyMode Then Application.CutCopyMode = False
End Sub


zum Großteil unterbunden. Hatte aber den Nachteil, dass z.B. aus der Bearbeitungsleiste heaus kopiert und die auch wieder eingefügt werden konnte.
Also suchte ich nach der Möglichkeit, die gesamte Zwischenablage zu leeren - auch im Selection_Change_Ereignis.

Und das funktioniert prächtig mit


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim oData As DataObject
Set oData = New DataObject
oData.SetText ""
oData.PutInClipboard
End Sub


Es muss dazu der Verweis auf die "Microsoft Forms 2.0 Object Library" gesetzt werden.
Und zum Schluss haben wir jetzt festgestellt, dass die Verweise mitgespeichert werden - somit kann man die erstellte Mappe allen zur Verfügung stellen, ohne dass noch manuell irgendwelche Verweise gesetzt werden müssen.

Grüße Boris
Anzeige
AW: Gültigkeit - Kopieren und Ausschneiden verhindern
02.10.2003 08:44:33
Franz W.
Hi Boris,

klingt interessant. Danke für die nochmalige Zusammenfassung hier oben - jetzt hab sogar ich kapiert, worum's genau geht :-))).

Aber eine Frage hätte ich noch:

"Es muss dazu der Verweis auf die "Microsoft Forms 2.0 Object Library" gesetzt werden."
Wie geht das bitte? Kann ich da bitte noch einen Tipp bekommen?

Danke schon mal und Grüße
Franz
AW: Gültigkeit - Kopieren und Ausschneiden verhindern
02.10.2003 09:08:09
Boris
Hi Franz,

im VBA-Editor findest du unter dem Menuüpunkt "Extras" auch "Verweise" - dort musst du dann den Haken vor die Bibliothek setzen.

Grüße Boris
AW: Gültigkeit - Kopieren und Ausschneiden verhindern
02.10.2003 13:44:00
Franz W.
Hi Boris,

sorry, hab keine Mail-Nachricht bekommen und hab erst jetzt Deine Antwort gesehen. Vielen Dank dafür. Aber gibt' das erst ab xl10.0? Oder bin ich zu dusslig, die Verweise in meinem xl9.0 zu finden?

Grüße
Franz
Anzeige
Gibt´s auch bei xl97
02.10.2003 14:40:29
Boris
Hi Franz,

im VBA-EDITOR unter Extras gibt´s auch VERWEISE...
Ansonsten hat sie dir jemand geklaut...;-))

Grüße Boris
Nicht geklaut ....... *schäm*
02.10.2003 15:12:47
Franz W.
Hi Boris,

nicht geklaut, nur ich viel Trottel, hab in Excel gesucht statt in VBA!!!!!! Und der entsprchende Verweis war sogar gesetzt (nicht von mir, sondern wohl von der Installation :-))).

Aber trotzdem krieg ich jetzt noch bei dem Code von Dir eine Fehlermeldung:

"Fehler beim Kompilieren: Benutzerdefinierter Typ nicht definiert."
Und markiert ist in der DIM-Zeile: " oData As DataObject "

Hab ich noch nie gehört. Wo muss ich denn da jetzt noch was definieren.

Grüße
Franz
Anzeige
Doch geklaut!!
02.10.2003 15:19:25
Franz W.
Hi Boris,

hab grade den Verweis gefunden, hab dazu in einer von mir bereits geöffneten Mappe nach dem Verweis gesucht. Jetzt habe ich eine neue Mappe aufgemacht, um Deinen code zu testen, und da war der Verweis plötzlich nicht gesetzt. Und die entspr. Library was an ganz anderer stelle. Hab ich jetzt auch angekreuzt, und jetzt gibts keine Fehlermeldung mehr.

Wodurch wird dieser Verweis denn gesetzt? Wenn er mal da ist und mal nicht? Ich habe ihn auf jeden Fall noch nie gesetzt, bei meiner vorigen Mappe war er aber da.

Kann ich da ein bisschen Hintergrundinfo kriegen, bitte?

Danke schon mal und Grüße
Franz
Anzeige
Hintergrundinfo - muss ich leider passen...
03.10.2003 16:49:33
Boris
Hi Franz,

ich kenn mich mit so nem Zeugs nun überhaupt nicht aus, wieso, weshalb und warum Verweise da sind, dann wieder nicht, warum sie eigentlich nicht von vornherein einfach alle gesetzt sind etc. etc..

Da müssen mal die Cracks wie K.Rola oder Ramses etc... antworten - nur werden die hier nicht mehr vorbeischauen...;-))

Starte einfach einen neuen Thread.

Grüße Boris
Ok, mach ich. Trotzdem vielen Dank!! o.T.
03.10.2003 17:04:58
Franz W.
AW: Ja - super! Und noch eine kleine Nachfrage:
01.10.2003 21:16:58
PeterW
Hallo Boris,

kenne das Problem zwar nicht aber vielleicht solltest du Workbook_SheetSelectionChange (DieseArbeitsmappe) benutzen.

Gruß
Peter
Konntest du auch nicht kennen...
01.10.2003 21:28:19
Boris
Hi Peter,

...danke auch Dir - ich hab der Antwort von Holger ne ausführliche Beschreibung angehängt.

Grüße Boris
Anzeige
AW: Konntest du auch nicht kennen...
01.10.2003 21:46:15
PeterW
Hallo Boris,

aus einer anderen Tabelle lässt sich aber ohne Probleme noch etwas einfügen und damit die Gültigkeit umgehen.

Gruß
Peter
Ja, da hast du Recht, aber...
01.10.2003 22:45:41
Boris
Hi Peter,

...hättest du auch ein Lösung für diese "Lücke"? Das übersteigt meine VBA-Kenntnisse denn nun deutlich...

Grüße Boris
AW: Ja, da hast du Recht, aber...
01.10.2003 22:52:14
PeterW
Hallo Boris

bin ja nun auch nicht der VBA-Fachmann aber ich würde den gleichen Code noch einmal in das Workbook_SheetActivate-Ereignis (DieseArbeitsmappe) schreiben.

Gruß
Peter
Gute Idee - funktioniert aber leider nicht...
01.10.2003 23:00:37
Boris
Hi Peter,

danke für deinen Hinweis - aber leider greift das Ereignis nicht, wenn mehrere Applikationen geöffnet sind.
Allerdings glaube ich auch, das´s meine "DAUs" nicht die ganz harten DAUs sind, um auf solche Ideen zu kommen...;-))

Grüße Boris
Anzeige
AW: Gute Idee - funktioniert aber leider nicht...
01.10.2003 23:12:53
PeterW
Hallo Boris,

bis eine bessere Lösung kommt biete ich an, den Code auch noch in Workbook_Activate zu schreiben.

Wie D deine DAUs sind lasse ich mal offen.

Gruß
Peter
AW: Gute Idee - funktioniert aber leider nicht...
01.10.2003 23:19:41
K.Rola
Hallo,

simulier doch in Worksheet_Activate ein Selection_Change für den Fall,
dass Zellen mit Gültigkeit vorhanden sind.
Noch ne Falle, du musst die Datenmaske wegbeamen, weil die die
Gültigkeit auch aushebelt.
Insgesamt vielleicht besser, die Eingaben gleich über einen Dialog
zu machen.

Gruß K.Rola
AW: Zwischenablage leeren
01.10.2003 20:57:04
Reinhard
Hallo Boris,
nimm
Application.CutCopyMode = false
Gruß
Reinhard
Anzeige
Danke auch Dir - das hat einen kleinen Haken:
01.10.2003 21:07:09
Boris
Hi Reinhard,

...so habe ich es bisher auch immer gemacht - allerdings lässt sich dann immer noch alles aus der Bearbeitungsleiste herauskopieren, denn das wird von Application.CutCopyMode nicht erfasst.

Grüße Boris

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige