Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Logik bei KLick in Zelle?
#11
Moin

ich habe dei Aufgabe durch eure Hilfe so gelöst
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Target.Address = "$C$21" Then
      Range("D13:K13").Interior.Color = vbYellow
  ElseIf Target.Address = "$D$21" Then
      Range("D13:K13").Interior.Color = vbYellow
  ElseIf Target.Address = "$E$21" Then
      Range("D13:K13").Interior.Color = vbYellow
  ElseIf Target.Address = "$F$21" Then
      Range("D13:K13").Interior.Color = vbYellow
  ElseIf Target.Address = "$G$21" Then
      Range("D13:K13").Interior.Color = vbYellow
  ElseIf Target.Address = "$H$21" Then
      Range("D13:K13").Interior.Color = vbYellow
  ElseIf Target.Address = "$C$28" Then
      Range("D13:K13").Interior.Color = vbYellow
  ElseIf Target.Address = "$D$28" Then
      Range("D13:K13").Interior.Color = vbYellow
  ElseIf Target.Address = "$E$28" Then
      Range("D13:K13").Interior.Color = vbYellow
  ElseIf Target.Address = "$F$28" Then
      Range("D13:K13").Interior.Color = vbYellow
  ElseIf Target.Address = "$G$28" Then
      Range("D13:K13").Interior.Color = vbYellow
  ElseIf Target.Address = "$H$28" Then
      Range("D13:K13").Interior.Color = vbYellow
     ElseIf Target.Address = "$C$35" Then
      Range("D13:K13").Interior.Color = vbYellow
  ElseIf Target.Address = "$D$35" Then
      Range("D13:K13").Interior.Color = vbYellow
  ElseIf Target.Address = "$E$35" Then
      Range("D13:K13").Interior.Color = vbYellow
  ElseIf Target.Address = "$F$35" Then
      Range("D13:K13").Interior.Color = vbYellow
  ElseIf Target.Address = "$G$35" Then
      Range("D13:K13").Interior.Color = vbYellow
  ElseIf Target.Address = "$H$35" Then
      Range("D13:K13").Interior.Color = vbYellow
  ElseIf Target.Address = "$C$20" Then
      Range("D12:K12").Interior.Color = vbRed
  ElseIf Target.Address = "$D$20" Then
      Range("D12:K12").Interior.Color = vbRed
  ElseIf Target.Address = "$E$20" Then
      Range("D12:K12").Interior.Color = vbRed
  ElseIf Target.Address = "$F$20" Then
      Range("D12:K12").Interior.Color = vbRed
  ElseIf Target.Address = "$G$20" Then
      Range("D12:K12").Interior.Color = vbRed
  ElseIf Target.Address = "$H$20" Then
      Range("D12:K12").Interior.Color = vbRed
  ElseIf Target.Address = "$C$27" Then
      Range("D12:K12").Interior.Color = vbRed
  ElseIf Target.Address = "$D$27" Then
      Range("D12:K12").Interior.Color = vbRed
  ElseIf Target.Address = "$E$27" Then
      Range("D12:K12").Interior.Color = vbRed
  ElseIf Target.Address = "$F$27" Then
      Range("D12:K12").Interior.Color = vbRed
  ElseIf Target.Address = "$G$27" Then
      Range("D12:K12").Interior.Color = vbRed
  ElseIf Target.Address = "$H$27" Then
      Range("D12:K12").Interior.Color = vbRed
  ElseIf Target.Address = "$C$34" Then
      Range("D12:K12").Interior.Color = vbRed
  ElseIf Target.Address = "$D$34" Then
      Range("D12:K12").Interior.Color = vbRed
  ElseIf Target.Address = "$E$34" Then
      Range("D12:K12").Interior.Color = vbRed
  ElseIf Target.Address = "$F$34" Then
      Range("D12:K12").Interior.Color = vbRed
  ElseIf Target.Address = "$G$34" Then
      Range("D12:K12").Interior.Color = vbRed
  ElseIf Target.Address = "$H$34" Then
      Range("D12:K12").Interior.Color = vbRed
  ElseIf Target.Address = "$C$19" Then
      Range("D11:K11").Interior.Color = vbCyan
  ElseIf Target.Address = "$D$19" Then
      Range("D11:K11").Interior.Color = vbCyan
  ElseIf Target.Address = "$E$19" Then
      Range("D11:K11").Interior.Color = vbCyan
  ElseIf Target.Address = "$F$19" Then
      Range("D11:K11").Interior.Color = vbCyan
  ElseIf Target.Address = "$G$19" Then
      Range("D11:K11").Interior.Color = vbCyan
  ElseIf Target.Address = "$H$19" Then
      Range("D11:K11").Interior.Color = vbCyan
  ElseIf Target.Address = "$C$26" Then
      Range("D11:K11").Interior.Color = vbCyan
  ElseIf Target.Address = "$D$26" Then
      Range("D11:K11").Interior.Color = vbCyan
  ElseIf Target.Address = "$E$26" Then
      Range("D11:K11").Interior.Color = vbCyan
  ElseIf Target.Address = "$F$26" Then
      Range("D11:K11").Interior.Color = vbCyan
  ElseIf Target.Address = "$G$26" Then
      Range("D12:K12").Interior.Color = vbCyan
  ElseIf Target.Address = "$H$26" Then
      Range("D11:K11").Interior.Color = vbCyan
  ElseIf Target.Address = "$C$33" Then
      Range("D11:K11").Interior.Color = vbCyan
  ElseIf Target.Address = "$D$33" Then
      Range("D11:K11").Interior.Color = vbCyan
  ElseIf Target.Address = "$E$33" Then
      Range("D11:K11").Interior.Color = vbCyan
  ElseIf Target.Address = "$F$33" Then
      Range("D11:K11").Interior.Color = vbCyan
  ElseIf Target.Address = "$G$33" Then
      Range("D11:K11").Interior.Color = vbCyan
  ElseIf Target.Address = "$H$33" Then
      Range("D11:K11").Interior.Color = vbCyan
  End If
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
 Dim rngBereich As Range
 Set rngBereich = Range("D11:K13")
 If Not Intersect(Target, rngBereich) Is Nothing Then
     rngBereich.Interior.Color = xlNone
 End If
End Sub

 
es ging einfach nur um eine Logik, nach der mir nach Eingabe in bestimmte Zellen, bestimmte andere Zellen angezeigt werden, damit man nicht den Zeilen "verrutscht".


Danke
P.S. Da es immer mehrere Lösungen für Herausforderungen/ Probleme gibt, sollte man nicht böse sein, wenn "seine" Lösung nicht gewählt wird ;)
Antworten Top
#12
Das hat nix mit "böse sein" zu tun!  :21:
Hier lesen genug Leute quer, denen ein Blick über den Tellerrand genehm ist, denn mein Einwand war durchaus berechtigt.

Dass Dein _SelectionChange erheblich gekürzt werden kann, deshalb nur am Rande.
Schließlich bist Du mit Deiner Lösung zufrieden.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#13
Für Optimierungen bin ich immer zu haben.

Wie kann ich denn meine 3 Bereiche des "Selection _change" optimieren?

Und ich habe deine Lösung nicht als schlecht oder ähnliches empfunden, sie war für mich als VBA-NOOB schlichtweg zu viel ;)
Antworten Top
#14
So werden aus Deinen 112 Zeilen deren 10:

Microsoft Excel Objekt Tabelle2
Option Explicit 
 
Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
If Not Intersect(Target, Range("C19:H35")) Is Nothing Then 
  Select Case Target.Row Mod 7 
    Case 0: Range("D13:K13").Interior.Color = vbYellow 
    Case 1: Range("D11:K11").Interior.Color = vbCyan 
    Case 6: Range("D12:K12").Interior.Color = vbRed 
  End Select 
End If 
End Sub 

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • Silvr
Antworten Top
#15
Zitat:Aufgrund der PN von LuckyJoe habe ich mich entschlossen, die Vorgehensweise der temporären bed. Form. zur farblichen Markierung (ohne Variablen) mal der Allgemeinheit zu zeigen:
...

Hallo Ralf,

eine sehr schöne Lösung - danke für den Tipp.
Herzliche Grüße aus dem Rheinland
Jörg

[Windows 10, Microsoft 365]
Antworten Top
#16
Hi @RPP63

nachdem ich deinen Code eingesetzt habe, hat die MArkierung der bestimmten Zellen nicht mehr hingehauen. Statt wie vorher:

Klick in C19,26,33 --> Markierung Zeile 11
Klick in C20,27,34 --> Markierung Zeile 12
Klick in C21,28,35 --> Markierung Zeile 13

wuerden die Zeilen mit deinem Code um 2 Zeilen versetzt markiert. Das hängt bestimmt mit RowMode 7 zusammen, oder? Der Zeilenabstand nach unten ist ja gleich 7, nur nach oben nicht ;), da ist er 8  :20: verwirrt ich bin...

Ich habe jetzt wieder meinen "alten" genommen.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste