Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: 2 nicht nebeneinander liegende Spalten vergleichen

2 nicht nebeneinander liegende Spalten vergleichen
05.09.2024 09:30:08
Olli
Guten Morgen zusammen,

da ich im Archiv nicht fündig geworden bin, wende ich mich nun an euch und hoffe, dass ihr mir zu folgendem Problem helfen könnt:

Ich möchte 2 Spalten auf dem gleichen Arbeitsblatt (Spalte N + Spalte T) miteinander vergleichen. In den Spalten sollte jeweils die Zellen auf gleicher Höhe miteinander verglichen werden. Es handelt sich um Text inkl. Zahlen wie z.B. Adresse inkl. Nr.. Falls der Vergleich ergibt, dass die Zellen auf gleicher Höhe in den beiden Spalten unterschiedlich sind, sollte die Zelle in Spalte N z.B. rot eingefärbt werden.

Bis jetzt habe ich nur VBA-Beispiele für nebeneinanderliegende Spalten gefunden.

Kann mir jemand helfen?

LG

Olli
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: 2 nicht nebeneinander liegende Spalten vergleichen
05.09.2024 09:39:01
SF
Hola,
als Formel in der bedingten Formatierung:
=N2>T2
Gruß,
steve1da
AW: 2 nicht nebeneinander liegende Spalten vergleichen
05.09.2024 19:59:11
Yal
Moin,

wenn ich es richtig verstehe, ist eine VBA-Lösung gesucht. Aber mit bedingter Formatierung und Steves Formel wäre es tatsächlich leichter.

Der Weg zu VBA geht immer über per Hand mit laufenden Makrorekorder machen und Code lesen.

Sub Spaltenvergleich()

Dim Z As Range ' Z wie Zelle

For Each Z In Worksheets("Tabelle1").Range("N2:N52") 'sowhl Tabellenname als auch Range anpassen
If Z.Value = Z.Offset(0, 6).Value Then 'N: Spalte 14, T: Spalte 20, also 6 Spalte nach rechts, 0: gleiche Höhe
Z.Interior.Pattern = xlNone 'Z himself, ohne Farbe
Z.Offset(0, 6).Interior.Pattern = xlNone 'Z, 6 Spalten nach recht, also T
Else
Z.Interior.Pattern = xlSolid 'Farbung "solid"
Z.Interior.ColorIndex = 3 'rot
Z.Offset(0, 6).Interior.Pattern = xlSolid
Z.Offset(0, 6).Interior.ColorIndex = 3
End If
Next
End Sub


VG
Yal
Anzeige
AW: 2 nicht nebeneinander liegende Spalten vergleichen
06.09.2024 13:50:41
Olli
Hallo zusammen

Besten Dank für eure Rückmeldung!!!

Es wäre schon gut, wenn ich dies mittels VBA (Makro) lösen könnte, da ich dieses mit einem Command-Button verknüpfen möchte. Ich habe den Vorschlag von Yal in meiner Tabelle eingebaut. Leider funktioniert irgendetwas nicht. Trotz Vergleichsformel, werden alle Zellen der Spalte N und T rot eingefärbt. Auch diejenigen, die keine Unterschiede aufweisen.
Kann dies an irgendeiner Einstellung liegen? Oder daran, dass in den Zellen Text (Strassenname) und Zahlen (Strassennr.) enthalten sind?

Ich habe es auch mit einer bedingten Formatierung und auch mit einer =WENN-Formel in der Spalte X versucht, wie z.B. =WENN(N3=T3;" ";"Adressenwechsel") versucht. Auch hier ist das Resultat, dass es sämtliche Vergleichsresultate in der Spalte X das selbe Ergebnis aufweisen, obwohl es z.B. auf der gleichen Zeilenhöhe in der Spalte N + T unterschiedliche Texte hat.

Weiss nicht mehr wie weiter:-(

Gruss

Olli
Anzeige
AW: 2 nicht nebeneinander liegende Spalten vergleichen
06.09.2024 13:56:52
SF
Weiss nicht mehr wie weiter:-(



Lade eine Exceldatei hoch wo in Spalte X alle Ergebnisse gleich sind, damit man das nachvollziehen kann.
AW: 2 nicht nebeneinander liegende Spalten vergleichen
06.09.2024 16:42:06
Yal
Hallo Olli,

es kann an vieles liegen. Was für eine Mensch "gleich" aussieht, ist es für eine Computer nicht: 4 und vier, GROSS und gross, usw.

Ein bisschen Code, um deine Eingangsdaten zu testen:
Sub Prüfe()

Dim zN As Range
Dim zT As Range
Dim MsgN As String
Dim MsgT As String

For Each zN In Range(Range("N2"), Range("N1048000").End(xlUp))
Set zT = zN.Offset(0, 6)
Debug.Print zN.Address, zT.Address 'Ausgabe in Direktbereich (siehe in VBA-Editor Menü "Ansicht", "Direktfenster")
MsgN = "": MsgT = ""
If zN.Value > zT.Value Then
If Len(zN.Value) > Len(zT.Value) Then
Debug.Print "Zeile " & zN.Row & ": ungleiche Länge " & Len(zN.Value) & " / " & Len(zT.Value)
Else
For i = 1 To Len(zN.Value)
If Mid(zN.Value, i, 1) = Mid(zT.Value, i, 1) Then
MsgN = MsgN & "-"
MsgT = MsgT & "-"
Else
MsgN = MsgN & Mid(zN.Value, i, 1)
MsgT = MsgT & Mid(zN.Value, i, 1)
End If
Next
Debug.Print "Zeile " & zN.Row & ": " & MsgN
Debug.Print "Zeile " & zN.Row & ": " & MsgT
End If
End If
Next
End Sub


VG
Yal
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige