Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
280to284
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
280to284
280to284
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Parameterübergabe bei OnUndo-Ereignis

Parameterübergabe bei OnUndo-Ereignis
18.07.2003 07:54:00
Galenzo
Hallo,
über Application.OnUndo kann ich eine Prozedur starten, deren Name ja als String übergeben wird.
Meine Frage: Wie kann ich Parameter ( in meinem Fall eine Range) an diese Prozedur übergeben.
(Ich möchte so einen vorher umgefärbten Bereich wieder auf die Ursprungsfarbe zurücksetzen. Mein bisheriger Ansatz über "for each rng in selection.." geht eben nur, wenn die Zellen noch ausgewählt sind.)
Ich freue mich über Tips. mfg

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Parameterübergabe bei OnUndo-Ereignis
18.07.2003 09:53:24
ANdreas
Hallo galenzo,
wie gesagt, wenn Du die Farbe änderst, kennst Du doch den Range. Diesen Range musst Du Dir nur noch "merken".
Hier mal ein Beispiel, wobei sobald 10 Zellen markiert sind, deren Farbe auf grün gesetzt wird. Bei Rückgängig wird die Farbe wieder auf xlNone zurückgesetzt.
Wenn die Zellen auch irhe ursprüngliche Farbe zurückbekommen sollen, musst Du die auch noch mit merken.
'Modul des Worksheets

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count = 10 Then
MerkeRange Target
Selection.Interior.ColorIndex = 4
Application.OnUndo "Rückgängig Hintergrundfarbe", "ResetColor"
End If
End Sub

'Standardmodul
Public Function MerkeRange(Optional rParam As Range) As Range
Static rAkku As Range
If Not rParam Is Nothing Then Set rAkku = rParam
Set MerkeRange = rAkku
End Function

Sub ResetColor()
Dim r As Range
Set r = MerkeRange
If Not r Is Nothing Then r.Interior.ColorIndex = xlNone
End Sub

Hoffe das hilft weiter,
Andreas

Anzeige
Danke
18.07.2003 09:59:47
Galenzo
Prima - und wieder was dazugelernt! DANKE!!

AW: Parameterübergabe bei OnUndo-Ereignis
18.07.2003 09:12:26
ANdreas
Hallo galenzo,
wenn Du den Range übergeben willst, dann musst Du ihn ja auch kennen.
Warum dann nicht einfach z.B. Range("A1:B20").Interior.Colorindex = 1???
Wenn nicht, dann musst Du ausführlicher beschreiben, wie genau sich der Range ermitteln soll...
Vielleicht sagst Du auch noch etwas dazu (ist noch weiter unten im Forum):
https://www.herber.de/forum/archiv/280to284/t281522.htm
Viel Spaß,
Andreas

AW: Parameterübergabe bei OnUndo-Ereignis
18.07.2003 09:34:38
Galenzo
Hallo Andreas,
in meiner Sub Worksheet_SelectionChange(ByVal Target As Range)
färbe ich den gewählten Bereich um. Und genau diese Umfärbung möchte ich mit einem Undo wieder rückgängig machen. Da ich aber an die mit Application.OnUndo gestartete "Zurückfärbe-Prozedur" bisher keine Parameter übergeben kann, funktioniert es über "for each rng in selection" eben nur, wenn der Bereich noch markiert ist.
Mein derzeitiger Ansatz ist, den Range über eine globale Variable an die Undo-Pozedur weiterzugeben.
PS: Leider bin ich noch nicht dazu gekommen, deinen Vorschlag bezüglich t281522 zu testen, aber trotzdem bedanke ich mich für deine Bemühungen.
mfg

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige