Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1120to1124
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

If Not Selection.Copy Then ???

If Not Selection.Copy Then ?
Karsten
Hallo,
ich möchte, dass wenn ich kopiert habe und auf eine andere Zelle wechsele, Target.WrapText = True übersprungen wird.
Da meine Codekonstruktion noch nicht stimmt, wird immer die Zelle in die ich wechsele, im Kopiermodus angezeigt. Kann mir jemand helfen?
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Selection.Copy Then
Target.WrapText = True
Else
End If
End Sub
Gruß
Karsten

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Ohne genau zu wissen, was DEIN "Target"...
02.12.2009 01:41:36
Luc:-?
...ist, Karsten,
ist es natürlich etwas schwierig, das einzuordnen und dann die richtige Wahl zu treffen... ;-)
Deshalb hier mal nur ein Versuch...
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Static AltZiel As Range
If Not AltZiel Is Nothing Then
Target.WrapText = Not AltZiel.WrapText
Else: Target.WrapText = True
End If
If Target.WrapText Then Set AltZiel = Target
End Sub

Jetzt sollte Folgendes passieren...
Wenn du das 1.Mal auf dem Blatt eine Zelle auswählst, wird diese im Kopiermodus angezeigt. Wählst du die nächste aus, wird diese nicht im Kopiermodus angezeigt, weil die andere noch im Kopiermodus angezeigt wird. Das bleibt auch bei jeder weiteren Zelle so, denn ich gehe davon aus, dass dann ggf hierhin kopiert wdn soll. Erst, wenn du die neue Zelle kopierst, wird der Kopiermodus umgeschaltet. Du musst sie dann wohl ein 2.Mal auswählen, wenn diese jetzt als AltZiel dienen soll...
Naja, irgendwie kommt mir das alles doch recht merkwürdig vor; sehe keinen rechten Sinn darin. Wahrscheinlich brauchst du was ganz Anderes! Was ist denn, wenn du dich schon auf einen bestimmten Lösungsweg für dein eigentl Problem versteift hast, hier jetzt nach Lösungsdetails fragst ohne das eigentl Problem zu nennen (oder gar zu kennen - glaub mir, das ist nicht gerade selten, ganze Coaching-Firmen leb[t]en davon!) — du bekommst, wenn überhpt, Details gelöst, die letztendlich doch nur zu einer suboptimalen oder keiner echten Gesamtlösung führen!
Wenn du wirklich feststellen willst, ob kopiert wurde, wirst du wohl den Inhalt der Zwischenablage mit AltZiel vgl müssen oder in 1er Change-EventProc 'ne Bool'sche Globalvariable True setzen müssen...
Trotzdem viel Erfolg, was immer du auch vor haben zu müssen glaubst... ;-)
Gruß Luc :-?
Anzeige
AW: Ohne genau zu wissen, was DEIN "Target"...
02.12.2009 08:54:56
Karsten
Hallo Luc:-?,
Danke. Aber irgendetwas stimmt da nicht.
Wenn du das 1.Mal auf dem Blatt eine Zelle auswählst, wird diese im Kopiermodus angezeigt.

...macht sie nicht. Nun ist es zugegebenermaßen so, dass die Vorgänge im Code mit meinen Horizont übersteigen, deshalb frage ich mal:
Was bedeutet Static?
Bedeutet If Not AltZiel Is Nothing Then, dass, wenn ich mich auf der alten Zelle befinde, es mit Target.WrapText = Not AltZiel.WrapText weitergeht? Aber, wenn ich mich auf der alten Zelle befinde, gibt es doch kein SelectionChange und damit kein Makrodurchlauf.
Da ich glaube, dass du noch nicht weißt, was ich vorhabe, stelle ich die Frage noch mal etwas anders:
Wenn ich etwas kopiert habe (also es in der Zwischenablage und noch nicht eingefügt ist), und ich z.B. Format – Zellen formatieren anwähle, dann löscht sich mit diesem Klick die Zwischenablage. Excel ist nun mal so konzipiert. Dasselbe passiert im Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Target.WrapText = True
End Sub
Wenn ich etwas kopiert habe (also es in der Zwischenablage und noch nicht eingefügt ist), soll Target.WrapText = True übersprungen werden, um den exceleigenen Alzheimereffekt zu übergehen. Mein Code war da offensichtlich nicht geeignet. Mit deiner Möglichkeit komme ich bis jetzt auch nicht weiter.
Gruß
Karsten
Anzeige
Es gäbe ja auch noch die Möglichkeit,...
03.12.2009 03:54:45
Luc:-?
...Karsten,
mit SendKeys ein [ESC] an xl zu senden, dann wäre der Kopiermodus auch aufgehoben. Ansonsten muss ich mir das noch mal genauer ansehen, falls ich dazu komme... ;-)
Gruß Luc :-?
AW: Es gäbe ja auch noch die Möglichkeit,...
03.12.2009 07:18:51
Karsten
Hallo Luc:-?,
der Kopiermodus soll nicht aufgehoben werden. Target.WrapText = True soll übersprungen werden, um den [ESC] zu übergehen.
Gruß
Karsten
AW: Es gäbe ja auch noch die Möglichkeit,...
05.12.2009 19:22:15
fcs
Hallo Karsten,
du kannst den Kopierstatus direkt abfragen und dann die gwünschte Aktion ausführen.
Gruß
Franz
Beispiel:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Application.CutCopyMode = xlCopy Or Application.CutCopyMode = xlCut Then
Exit Sub
Else
'wird nur ausgeführt, wenn der Kopiermodus inaktiv ist
Target.WrapText = True
End If
End Sub

Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige