Supportnet Computer
Planet of Tech

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

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

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

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

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

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

Antwort 7 von Elhamplo

Hallo,

Danke, Danke , Danke!!!! Super .... Sache!!!

Code funst super!!!!!!!

Vielen Dank für Deine Hilfe!!!

Gruß

Elhamplo

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: