Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1728to1732
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
Inhaltsverzeichnis

Zellen highlighten

Zellen highlighten
20.12.2019 08:53:00
Bernd
Hallo,
ich habe eine Excel Tabelle erstellt ( https://www.herber.de/bbs/user/133883.xlsx). Was ich bräuchte wäre folgende Funktionalität: wenn ich auf eine oder mehrere Zellen x1 … x13 klicke, sollte diese Zelle bzw. diese Zellen blau werden. Gleichzeitig sollen alle Zellen y1...y11 grün werden in deren Spalte ein Kreuzchen bei der entsprechenden X-Zelle steht UND gleichzeitig sollen die Z-Zellen grün werden, die im unteren Teil der Tabelle ebenfalls ein Kreuzchen in der Spalte haben.
Hier ein Beispiel bei der Auswahl von einer X-Zelle (bei der Auswahl von mehreren x-Zellen soll sich das einfach kumulieren). Hoffe das ist einigermaßen verständlich ausgedrückt.
Ist das möglich? Wie gehe ich das an? Schon mal tausend Dank für jeden Tipp.
Userbild

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

Betreff
Datum
Anwender
Anzeige
AW: so wie Du es beschreibst ...
20.12.2019 09:09:01
neopa
Hallo Bernd,
... wäre es nur mit VBA lösbar. Jedoch wenn Du anstelle des nachträglichen "Klickens" die Werte X1 bis X21 über Dropdownzellen aktivierst (ansonsten dort leere Zellen), könnte ich Dir eine Lösung mittels bedingter Formatierung aufzeigen. Allerdings diese auch erst am späteren Nachmittag, weil ich in wenigen Minuten erst einmal bis dahin offline bin.
Gruß Werner
.. , - ...
AW: Zellen highlighten
20.12.2019 09:34:26
Nepumuk
Hallo Bernd,
Rechtsklick auf den Tabellenreiter - Code anzeigen. In das sich öffnende Codefenster folgender Prozedur einfügen:
Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    
    Dim objRange As Range, objCell As Range, objFindCell As Range
    Dim lngColumn As Long
    Dim strFirstAddress As String
    
    Set objRange = Intersect(Target, Range("A3:A23"))
    
    If Not objRange Is Nothing Then
        
        Range("A3:A36,B2:L2").Interior.Pattern = xlPatternNone
        
        For Each objCell In objRange
            
            objCell.Interior.Color = vbBlue
            
            For lngColumn = 2 To 12
                
                If Cells(objCell.Row, lngColumn).Value = "x" Then
                    
                    Cells(2, lngColumn).Interior.Color = vbGreen
                    
                    With Range(Cells(24, lngColumn), Cells(36, lngColumn))
                        
                        Set objFindCell = .Find(What:="x", LookIn:=xlValues, LookAt:=xlPart, MatchCase:=True)
                        
                        If Not objFindCell Is Nothing Then
                            
                            strFirstAddress = objFindCell.Address
                            
                            Do
                                
                                Cells(objFindCell.Row, 1).Interior.Color = vbGreen
                                Set objFindCell = .FindNext(After:=objFindCell)
                                
                            Loop Until objFindCell.Address = strFirstAddress
                            
                            Set objFindCell = Nothing
                            
                        End If
                    End With
                End If
            Next
            
            Set objRange = Nothing
            
        Next
    End If
End Sub

Die Mappe als .xlsm speichern.
Gruß
Nepumuk
Anzeige
AW: Zellen highlighten
20.12.2019 10:05:25
Nepumuk
Hallo Bernd,
ich habe noch was eingebaut. Wenn du die Zelle A2 auswählst werden alle Farben gelöscht:
Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    
    Dim objRange As Range, objCell As Range, objFindCell As Range
    Dim lngColumn As Long
    Dim strFirstAddress As String
    
    If Target.Address = "$A$2" Then
        
        Range("A3:A36,B2:L2").Interior.Pattern = xlPatternNone
        
    Else
        
        Set objRange = Intersect(Target, Range("A3:A23"))
        
        If Not objRange Is Nothing Then
            
            Range("A3:A36,B2:L2").Interior.Pattern = xlPatternNone
            
            For Each objCell In objRange
                
                objCell.Interior.Color = vbBlue
                
                For lngColumn = 2 To 12
                    
                    If Cells(objCell.Row, lngColumn).Value = "x" Then
                        
                        Cells(2, lngColumn).Interior.Color = vbGreen
                        
                        With Range(Cells(24, lngColumn), Cells(36, lngColumn))
                            
                            Set objFindCell = .Find(What:="x", LookIn:=xlValues, LookAt:=xlPart, MatchCase:=True)
                            
                            If Not objFindCell Is Nothing Then
                                
                                strFirstAddress = objFindCell.Address
                                
                                Do
                                    
                                    Cells(objFindCell.Row, 1).Interior.Color = vbGreen
                                    Set objFindCell = .FindNext(After:=objFindCell)
                                    
                                Loop Until objFindCell.Address = strFirstAddress
                                
                                Set objFindCell = Nothing
                                
                            End If
                        End With
                    End If
                Next
            Next
            
            Set objRange = Nothing
            
        End If
    End If
End Sub

Gruß
Nepumuk
Anzeige
AW: (m)ein "highlighten" ganz ohne VBA ...
20.12.2019 19:35:04
neopa
Hallo Bernd,
... dafür allerdings etwas tricky.
Aktivitäten dazu sind nur für die X-Werte notwendig. Dort muss in der jeweiligen Zelle nur die jeweilige Zahl ohne vorangestelltes "x" eingeben werden wie in der Zelle angezeigt, das "x" wird trotzdem angezeigt und die Zelle wird nach der Eingabe blau gefärbt.
Das "highlighten" wird deaktiviert, in dem einfach die jeweilige blau hinterlegten Zahl gelöscht wird. Darunter ist dann der jeweilige x-Wert aber wieder sichtbar.
In Deine Vorgabe hast Du möglicherweise übersehen, dass Z11 auch grün eingefärbt werden muss. Oder? Unklar ist mir momentan noch, ob bzw. wie Deine "(x)"- Daten zu werten sind (momentan sind die bei mir nicht berücksichtigt).
Dazu sieh mal hier: https://www.herber.de/bbs/user/133898.xlsx
Der darin vorh. Blattschutz ist ohne Password gesetzt.
Gruß Werner
.. , - ...
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige