Zellen markieren mit Makro

22/11/2008 - 16:25 von Fabian | Report spam
Hallo

Habe filgende Tabelle gemacht:
Die 1. Blattzeile hat die Zellinhalte Äpfe; Birnen; Aprikosen.
Die 2. Blattzeile hat die Zellinhalte Bohnen; Rüben; Kohl.

Wenn ich z.B. auf die Zelle Äpfel klicke soll diese Zelle rot
eingefàhrbt werden. Wenn ich aber doch lieber Aprokosen möchte, soll
automatisch bei Äpfel rot geslöscht werden und Aprokosen soll rot
werden.
Pro Blattzeile ist immer nur eine Auswahl erlaupt.

Aus weiter führenden Gründen möchte ich das mit einem Makro machen.
Will nicht bei jeder Zelle das Makro hinterlegen müssen, da her habe
ich es mit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
probiert.

Wenn ich jedoch nach den Äpfeln zur Aprokose gewechselt habe, geht ja
der Fokus zur Zelle Äpfel um dort rot zu entfernen. Dies bewirkt den
erneuten Aufruf der Prozedur. Es entsteht eine Endloschleife, weil
danach die Aprokosen den Fokus erhalten und wieder die Prozedur
aufgerufen wird u.s.w.
Wie kann ich dieses Problem lösen?

Dank und Gruss Fabian
 

Lesen sie die antworten

#1 Dietmar Vollmeier
22/11/2008 - 16:46 | Warnen spam
Servus Fabian!

*Fabian* schrieb am 22.11.2008 um 16:25 Uhr...

Habe filgende Tabelle gemacht:
Die 1. Blattzeile hat die Zellinhalte Äpfe; Birnen; Aprikosen.
Die 2. Blattzeile hat die Zellinhalte Bohnen; Rüben; Kohl.

Wenn ich z.B. auf die Zelle Äpfel klicke soll diese Zelle rot
eingefàhrbt werden. Wenn ich aber doch lieber Aprokosen möchte, soll
automatisch bei Äpfel rot geslöscht werden und Aprokosen soll rot
werden.

Pro Blattzeile ist immer nur eine Auswahl erlaupt.

Aus weiter führenden Gründen möchte ich das mit einem Makro machen.
[...]
Wie kann ich dieses Problem lösen?



Teste mal damit:

8<--[ Code ]>8
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Bereich As String

' Bereich bitte an deine Tabelle anpassen
Bereich = "A1:C2"

If Application.Intersect(Target, Range(Bereich)) Is Nothing Then Exit Sub
If Target.Columns.Count > 1 Or Target.Rows.Count > 1 Then Exit Sub

Range(Cells(Target.Row, Range(Bereich).Column), Cells(Target.Row, Range(Bereich).Columns.Count)).Interior.ColorIndex = xlNone
ActiveCell.Interior.ColorIndex = 3
End Sub
8<->8

Falls du mit der Einbindung des Codes Probleme haben solltest, melde
dich einfach.

HTH und tschüss,
Didi
########################################
# This signature is under construction #
########################################

Ähnliche fragen