Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
788to792
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
788to792
788to792
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zellen färben wenn Gleich wie Markiert.

Zellen färben wenn Gleich wie Markiert.
11.08.2006 14:09:34
Martin
Hallo Zusammen
Mir geht keine Idee in den Kopf wie ich das lösen könnte.
Folgende Grundlage:
Es gibt eine Tabelle mit mehreren Zeilensätzen und es können mehrere ähnliche Sätze da stehen. Wenn in der Spalte "H" eine Zelle angeklickt wird sollten alle Zellen mit identischem Inhalt in Zelle "F" & "G" & "H" gelb eingefärbt werden.
Wenn Zelle "H98" selektiert wird sollte geprüft werden ob weitere Zeilensätze existieren wo "Fxx" & "Gxx" & "Hxx" gleich sind wie "F98" & "G98" & "H98" und diese färben.
Im Link ein Muster mit eingefärbten Zellen.
https://www.herber.de/bbs/user/35725.xls
Besten Dank für Eure Mithilfe
Martin

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellen färben wenn Gleich wie Markiert.
11.08.2006 15:01:21
Martin
Aber hallo
Besten Dank P@ulchen
DAs ist genau das was ich suchte.....
Werde immer beim Einsatz an Das Forum denken.
Mit freundlichen Grüssen
Martin
AW: Zellen färben wenn Gleich wie Markiert.
11.08.2006 15:01:30
EtoPHG
Hallo Martin,
Hier noch eine Lösung mit Kombination aus kurzem VBA (SelectionChange) und bedingter Formatierung. Allerdings wird dazu Zelle I1 belegt.
https://www.herber.de/bbs/user/35729.xls
Gruss Hansueli
Anzeige
AW: Zellen färben wenn Gleich wie Markiert.
11.08.2006 15:22:42
Martin
Hallo Hansueli
Danke für Deinen Vorschlag, geht bei mir nicht so richtig. Aber Danke für die Variante.
Die Lösung von P@ulchen trifft den Nagel eigentlich auf den Kopf aber es gibt eine Fehlemeldung wenn mehrere Zellen Markiert werden, wie kann ich das Abfangen?
Stelle Die Frage auch noch an P@ulchen.
Gruss
Martin
Gruss
Martin
AW: Zellen färben wenn Gleich wie Markiert.
11.08.2006 15:29:13
EtoPHG
Hallo Martin,
Was geht den nicht so richtig ?
Vielleicht störst Du Dich an der Tatsache, dass in H auch Werte markiert sind, wenn die Werte in F & G nicht übereinstimmen. Dazu musst Du nur die Bedingte Formatierung in den Zellen von H gleich setzen die die von F.
Mein Code funktioniert auch, wenn Du mehrere Zellen markierst. Allerdings wird nur der Wert der ersten Zeile ausgewertet.
Was willst Du denn, wenn mehrere Zellen markiert sind ?
Gruss Hansueli
Anzeige
AW: Zellen färben wenn Gleich wie Markiert.
11.08.2006 15:53:08
Martin
Hallo Hansueli
Wenn mehrere Zellen Markiert werden soll nichts markiert werden, aber es stört nicht wenn eine Markierung erscheint.
Ein kleiner Nachteil von Bedingten Formatierungen ist, dass die Datei sehr viel Speichergrösse bekommt, mit VBA Lösung nicht. Unsere Zieldatei hat mehrere Tabellen und mit ca. 24'000 Zeilen pro Blatt. So versuche ich alle Formatierungen auf ein minimum zu reduzieren.
Aber ich werde es prüfen.
Gruss
Martin
AW: Zellen färben wenn Gleich wie Markiert.
11.08.2006 15:26:38
Martin
Hallo P@ulchen
Die Lösung trifft den Nagel eigentlich auf den Kopf aber es gibt eine Fehlemeldung wenn mehrere Zellen Markiert werden, wie kann ich das Abfangen? Und wenn die Quellzellen nicht F G und H sondern H, K und M sind kann ich den Script anpassen auf andere begebenheiten oder muss es zusammenhängend sein?
Kenne mich im VBA nicht so aus.
Gruss
Martin
Anzeige
AW: Zellen färben wenn Gleich wie Markiert.
11.08.2006 15:34:17
P@ulchen
Hallo Martin,
ersetze den Code durch diesen:

Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Bereich As Range
Dim HLetzte As Long
Dim xZelle As Range
Dim i, j As Long
Dim Farbe As Boolean
If Target.Cells.Count > 1 Then Exit Sub
HLetzte = IIf(IsEmpty(Cells(Rows.Count, 8)), Cells(Rows.Count, 8).End(-4162).Row, Rows.Count)
Set Bereich = ActiveSheet.Range("H2:H" & HLetzte)
If Not Intersect(Target, Bereich) Is Nothing Then
    ActiveSheet.Range("F2:H" & HLetzte).Interior.ColorIndex = 0
    For i = 2 To HLetzte
        For j = 6 To 8
            If Cells(i, j) = Target.Offset(0, j - 8) Then
                Farbe = True
            Else
                Farbe = False
            End If
        Next j
        If Farbe = True Then Range(Cells(i, 6), Cells(i, 8)).Interior.ColorIndex = 6
        Farbe = False
    Next i
End If
End Sub


Bei Mehrfachmarkierung wird die Codeausführung abgebrochen.
Der Code ist natürlich beliebig erweiterbar. Am besten postest Du mal, welche Spalten im Endeffekt betroffen sein sollen.
Gruß aus Leipzig
P@ulchen
www.excel-werkstatt.de

Anzeige
AW: Zellen färben wenn Gleich wie Markiert.
11.08.2006 16:48:54
Martin
Hallo P@ulchen
Habe versucht den Code anzupassen, geht aber nicht richtig. Es werde auch Sätze angezeigt welche nicht übereinstimmende Zellwerte in "H", "K" und "M" haben liegt das mit dem Not Intersect zusammen?
Hier mein angepasster Code:
~
Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Bereich1, Bereich2, Bereich3 As Range
Dim MLetzte As Long
Dim xZelle As Range
Dim i, j As Long
Dim Farbe As Boolean
If Target.Cells.Count > 1 Then Exit Sub
MLetzte = IIf(IsEmpty(Cells(Rows.Count, 8)), Cells(Rows.Count, 8).End(-4162).Row, Rows.Count)
Set Bereich1 = ActiveSheet.Range("M9:M" & MLetzte)
If Not Intersect(Target, Bereich1) Is Nothing Then
ActiveSheet.Range("H9:M" & MLetzte).Interior.ColorIndex = 0
For i = 9 To MLetzte
For j = 8 To 13
If Cells(i, j) = Target.Offset(0, j - 8) Then
Farbe = True
Else
Farbe = False
End If
Next j
If Farbe = True Then Range(Cells(i, 8), Cells(i, 13)).Interior.ColorIndex = 6
Farbe = False
Next i
End If
End Sub

~
Gruss
Martin
Anzeige
AW: Zellen färben wenn Gleich wie Markiert.
11.08.2006 17:09:07
P@ulchen
Hallo Martin,
ich rate mal:


Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Bereich1, Bereich2, Bereich3 As Range
Dim MLetzte As Long
Dim xZelle As Range
Dim i, j As Long
Dim Farbe As Boolean
If Target.Cells.Count > 1 Then Exit Sub
MLetzte = IIf(IsEmpty(Cells(Rows.Count, 13)), Cells(Rows.Count, 13).End(-4162).Row, Rows.Count)
Set Bereich1 = ActiveSheet.Range("M9:M" & MLetzte)
If Not Intersect(Target, Bereich1) Is Nothing Then
ActiveSheet.Range("H2:M" & MLetzte).Interior.ColorIndex = 0
   For i = 9 To MLetzte
        For j = 8 To 13
            If Cells(i, j) = Target.Offset(0, j - 13) Then
                Farbe = True
            Else
                Farbe = False
            End If
        Next j
        If Farbe = True Then Range(Cells(i, 8), Cells(i, 13)).Interior.ColorIndex = 6
        Farbe = False
    Next i
End If
End Sub

Gruß aus Leipzig
P@ulchen
www.excel-werkstatt.de

Anzeige
AW: Zellen färben wenn Gleich wie Markiert.
15.08.2006 12:02:47
Martin
Hallo P@ulchen
es ist leider noch nicht die Lösung..
Habe eine Mappe beigefügt mit original Einteilung. Es sollte immer geprüft werden ob ein Gleicher Satz mit den identischen Werten in Zelle "H", "K" und "M" existiert. Habe die Zeilen welche einen Fehler produzieren markiert.
https://www.herber.de/bbs/user/35819.xls
Entschuldige meine Verspätung meiner Antwort und meine Unkenntnisse in VBA, aber ich lerne fleissig an meinen Fähigkeiten.
Gruss
Martin
Ein Lob dem Grossmeister
15.08.2006 12:38:51
Martin
Hallo Nochmals
Da habe ich gleich erneut gelernt vom Grossmeister P@ulchen:
"Warum Brücken bauen wenn der Fluss übersprungen werden kann!"
;0)
Danke für den Lehrplatz mit Dir in diesem Forum.
Alles gute für die Zukunft.
Gruss
Martin
AW: Zellen färben wenn Gleich wie Markiert.
15.08.2006 12:27:49
Martin
Hi P@ulchen
Habe die Lösung gefünden, damit nicht falsche Zellen Markiert weden muss eine zusätzliche Prüfung erfolgen, nur wenn j = 8 oder J = 11 oder j = 13 zählt ein Counter mit und bei Counts = 3 und Farbe = true werden die Zellen Markiert.
Jetzt funktioniert es bestens.
Danke für Deine Mithilfe und den Source-Code welcher das für mich ermöglicht hat.
Hier noch der fertige Code:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Bereich As Range
Dim MLetzte As Long
Dim xZelle As Range
Dim i, j As Long
Dim Farbe As Boolean
Dim Count As Integer
If Target.Cells.Count > 1 Then Exit Sub
MLetzte = IIf(IsEmpty(Cells(Rows.Count, 13)), Cells(Rows.Count, 13).End(-4162).Row, Rows.Count)
Set Bereich = ActiveSheet.Range("M9:M" & MLetzte)
If Not Intersect(Target, Bereich) Is Nothing Then
ActiveSheet.Range("H9:M" & MLetzte).Interior.ColorIndex = 0
For i = 9 To MLetzte
Count = 0
For j = 8 To 13
If Cells(i, j) = Target.Offset(0, j - 13) Then
Farbe = True
If j = 8 Or j = 11 Or j = 13 Then
Count = Count + 1
End If
Else
Farbe = False
End If
Next j
If Farbe = True And Count = 3 Then Range(Cells(i, 8), Cells(i, 13)).Interior.ColorIndex = 6
Farbe = False
Next i
End If
End Sub

Gruss
Martin
Anzeige
AW: Zellen färben wenn Gleich wie Markiert.
15.08.2006 12:36:20
P@ulchen
Hallo Martin,
umständlich, aber funktioniert... Man merkt, dass Du Dir auf jeden Fall Gedanken machst ;-))
Was gefiel Dir an meiner Lösung nicht? Oder hast Du sie nur nicht gesehen?
Gruß aus Leipzig
P@ulchen
www.excel-werkstatt.de

Wir kreuzen uns aktuell mit Schreiben
15.08.2006 12:46:54
Martin
Hallo P@ulchen
jetzt bin ich bereits das zweite Mal zeitgleich mit Dir am Editieren einer Nachricht gewesen, habe auch diese Antwort noch nicht gesehen.
Deine Lösüng ist klar die bessere weil sie weniger Weg macht und ich hatte sie noch gar nicht gesehen das gieng eben sehr schnell mit Deiner Antwort.
Schönen Tag noch und nochmals Danke für die Hilfe.
Martin
Anzeige
AW: Wir kreuzen uns aktuell mit Schreiben
15.08.2006 12:58:02
P@ulchen
Danke für die Rückinfo.
Bis demnächst...
Gruß aus Leipzig
P@ulchen
www.excel-werkstatt.de

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige