Supportnet / Forum / Tabellenkalkulation
Hilfe zum Code für Cursorsprung
Frage
Hallo,
ich brauch Eure Hilfe!!
Hab folgenden Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
If Range("D3").Select Then
With Selection.Interior
.ColorIndex = 3
.Pattern = xlSolid
End With
Range("D5").Select
End If
End Sub
Leider funst das ganze nicht so richtig. Ich möchter wenn die Zelle D3 rot wird das der Cursor in die Zelle D5 springt. Wenn eine Andere Farbe gewählt wird dann soll nichts passieren. Leider bekomme ich das nicht hin.
Vielen Dank für Eure Mühe!!!
Gruß
Elhamplo
Antwort 1 von Ahnan
Hallo Elhamplo,
Bei SelectionChange braucht es ein auslösendes Ereignis. Allein die Farbe ROT in "Farbenleiste" auswählen, löst kein Ereignis aus. Du müsstest dies vielleicht über eine Frage stellen lösen, wenn man die Zelle D3 anklickt. Anschließend dann Application.Dialogs(xlDialogPatterns).Show
erscheinen lassen. Wenn man nun eine Farbe auswählt, z.B. ROT u. auf OK drückt, wird ein Ereignis ausgelöst.
Ein Problem bleibt: Wähle ich anstatt ROT eine andere Farbe, dann bleibt der Cursor in D3. Ich müsste aber erst D3 verlassen, damit SelectionChange wiederum auslöst.
Habs mal so probiert:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim erg%
If Target.Address = "$D$3" Then
erg = MsgBox("Möchten Sie die Farbe ändern ?", vbQuestion + vbYesNo, "Farbe ändern ?")
If erg = vbYes Then
Application.Dialogs(xlDialogPatterns).Show
If Target.Interior.ColorIndex = 3 Then
Range("D5").Select
Else
Exit Sub
End If
Else
If Target.Interior.ColorIndex = 3 Then
Range("D5").Select
End If
End If
End If
End Sub
Vielleicht hilfts
Gruss
Bei SelectionChange braucht es ein auslösendes Ereignis. Allein die Farbe ROT in "Farbenleiste" auswählen, löst kein Ereignis aus. Du müsstest dies vielleicht über eine Frage stellen lösen, wenn man die Zelle D3 anklickt. Anschließend dann Application.Dialogs(xlDialogPatterns).Show
erscheinen lassen. Wenn man nun eine Farbe auswählt, z.B. ROT u. auf OK drückt, wird ein Ereignis ausgelöst.
Ein Problem bleibt: Wähle ich anstatt ROT eine andere Farbe, dann bleibt der Cursor in D3. Ich müsste aber erst D3 verlassen, damit SelectionChange wiederum auslöst.
Habs mal so probiert:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim erg%
If Target.Address = "$D$3" Then
erg = MsgBox("Möchten Sie die Farbe ändern ?", vbQuestion + vbYesNo, "Farbe ändern ?")
If erg = vbYes Then
Application.Dialogs(xlDialogPatterns).Show
If Target.Interior.ColorIndex = 3 Then
Range("D5").Select
Else
Exit Sub
End If
Else
If Target.Interior.ColorIndex = 3 Then
Range("D5").Select
End If
End If
End If
End Sub
Vielleicht hilfts
Gruss
Antwort 2 von nighty
hi all :))
wie gewünscht :)
gruss nighty
Private Sub worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Cells(Target.Row, Target.Column).Interior.ColorIndex = 3 Then Range("A5").Select
Application.EnableEvents = True
End Sub
wie gewünscht :)
gruss nighty
Private Sub worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Cells(Target.Row, Target.Column).Interior.ColorIndex = 3 Then Range("A5").Select
Application.EnableEvents = True
End Sub
Antwort 3 von Elhamplo
Hallo,
Sorry, das ich mich erst jetzt melde.
Ich danke Euch für Eure Hilfe, funst einwandfrei!!!!
Jetzt hab eich noch eine Frage: Wie muss ich den Code umstellen, wennich einen Cursorsprung erreichen möchte wenn die Zelle D3 größer A1 ist. Wenn D3 größer A1 dann springe in Zelle D5.
Ich danke Euch für Eure Hilfe
Gruß
Elhamplo
Sorry, das ich mich erst jetzt melde.
Ich danke Euch für Eure Hilfe, funst einwandfrei!!!!
Jetzt hab eich noch eine Frage: Wie muss ich den Code umstellen, wennich einen Cursorsprung erreichen möchte wenn die Zelle D3 größer A1 ist. Wenn D3 größer A1 dann springe in Zelle D5.
Ich danke Euch für Eure Hilfe
Gruß
Elhamplo
Antwort 4 von Ahnan
Hallo,
was ist mit der roten Zellfarbe ?
Lautet die Bedingung jetzt: Wenn D3 gleich rot u. D3 grösser als A1, oder einfach nur ob D3 grösser ist als A1 (ohne die rote Farbbedingung !) ?
Gruss
was ist mit der roten Zellfarbe ?
Lautet die Bedingung jetzt: Wenn D3 gleich rot u. D3 grösser als A1, oder einfach nur ob D3 grösser ist als A1 (ohne die rote Farbbedingung !) ?
Gruss
Antwort 5 von Elhamplo
Hallo,
danke für die schnelle Antwort!!!
Nein, das mit der roten Farbe ist immer noch aktuell. Das gleiche brauche ich in einer anderen Tabelle nur mit dem Unterschied, das sich die Bedingung geändert hat, jetzt mit D3 größer als A1.
Ich danke Euch für Deine Hilfe
Gruß
Elhamplo
danke für die schnelle Antwort!!!
Nein, das mit der roten Farbe ist immer noch aktuell. Das gleiche brauche ich in einer anderen Tabelle nur mit dem Unterschied, das sich die Bedingung geändert hat, jetzt mit D3 größer als A1.
Ich danke Euch für Deine Hilfe
Gruß
Elhamplo
Antwort 6 von Ahnan
Hallo,
also in dem Fall ohne Farbe, oder ?!
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$3" And Target.Value > [A1] Then
Range("D5").Select
End If
End Sub
Gruss
also in dem Fall ohne Farbe, oder ?!
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$3" And Target.Value > [A1] Then
Range("D5").Select
End If
End Sub
Gruss
Antwort 7 von Elhamplo
Hallo,
Danke, Danke , Danke!!!! Super .... Sache!!!
Code funst super!!!!!!!
Vielen Dank für Deine Hilfe!!!
Gruß
Elhamplo
Danke, Danke , Danke!!!! Super .... Sache!!!
Code funst super!!!!!!!
Vielen Dank für Deine Hilfe!!!
Gruß
Elhamplo