Supportnet / Forum / Tabellenkalkulation
2 Werte vergleichen
Frage
Hiho, also ich habe in Excel 6 Spalten.
In 2 davon, hab ich jeweils eine Zahl die ich vergleichen will.
wenn die 2 zahlen identisch sind dann soll nichts passieren, sind sie aber unterschiedlich soll die zahl in der 2ten zeile rot werden o.ä....
wie mach ich das ? .... danke für eure hilfe ...
Antwort 1 von pelle
Hallo Soldier,
schau dir mal die bedingte Formatierung an!
Menue Format=>bedingte Formatierung.
gruss
pelle
schau dir mal die bedingte Formatierung an!
Menue Format=>bedingte Formatierung.
gruss
pelle
Antwort 2 von Soldier
danke erstmal dazu, haut prima hin .... hab noch nen anderes problem ...
hab eine OP-Liste(Offene Posten Liste) ich hoffe es sagt irgeneinem etwas.
Da hab ich Kundenname, Kundennummer, Rechnungsnummer, Rechnungsdatum, Rechnungsbetrag.
Dann will ich anhand der OP-Liste = andere Excel Tabelle, die Werte beider Tabellen vergleichen.
Es sollen alle 5 Merkmale überprüft werden (Kundenname usw.) .... ist es richtig soll nichts passieren, ist es falsch oder es fehlt ein Kunde soll es Rot angemarkert werden und der Name dazugeschrieben werden.
Welche Funktionen muss ich nutzen und wie müssen diese aufgebaut sein ? danke für eure hilfe ....
hab eine OP-Liste(Offene Posten Liste) ich hoffe es sagt irgeneinem etwas.
Da hab ich Kundenname, Kundennummer, Rechnungsnummer, Rechnungsdatum, Rechnungsbetrag.
Dann will ich anhand der OP-Liste = andere Excel Tabelle, die Werte beider Tabellen vergleichen.
Es sollen alle 5 Merkmale überprüft werden (Kundenname usw.) .... ist es richtig soll nichts passieren, ist es falsch oder es fehlt ein Kunde soll es Rot angemarkert werden und der Name dazugeschrieben werden.
Welche Funktionen muss ich nutzen und wie müssen diese aufgebaut sein ? danke für eure hilfe ....
Antwort 3 von CaroS
Hallo Soldier,
sowas funktioniert unter bestimmten Voraussetzungen recht einfach, wenn nämlich in mindestens einer der 5 Spalten alle Werte eindeutig sind (wie z. B. vielleicht die Kundennummer oder Rechnungsnummer). Steht eine Kundennummer allerdings mehrfach in der Liste, weil der Kunde mehrere offene Posten hat, dann ist die Kundennummer-Spalte genauso wenig eindeutig wie die Kunden-Spalte mit den 6 Schmidts.
Nehmen wir als Beispiel die Rechnungsnummer in Spalte C und als Tabellennamen "Tbl01" und "Tbl02". Du markierst erst alle Daten A1:E350 in Tbl01 und gibst in der bedingten Formatierung die Formel ist:
=(ZÄHLENWENN(Tbl02!$C$1:$C$420; $C1) = 0)
und das gewünschte Format an. Danach machst Du es genau umgekehrt, markierst alle Daten A1:E420 in Tbl02 und gibst in der bedingten Formatierung die Formel ist:
=(ZÄHLENWENN(Tbl01!$C$1:$C$350; $C1) = 0)
und das entsprechende Format an. Wenn jetzt was "bunt" wird o. ä., dann ist genau das in der anderen Tabelle nicht enthalten.
Gruß,
CaroS
sowas funktioniert unter bestimmten Voraussetzungen recht einfach, wenn nämlich in mindestens einer der 5 Spalten alle Werte eindeutig sind (wie z. B. vielleicht die Kundennummer oder Rechnungsnummer). Steht eine Kundennummer allerdings mehrfach in der Liste, weil der Kunde mehrere offene Posten hat, dann ist die Kundennummer-Spalte genauso wenig eindeutig wie die Kunden-Spalte mit den 6 Schmidts.
Nehmen wir als Beispiel die Rechnungsnummer in Spalte C und als Tabellennamen "Tbl01" und "Tbl02". Du markierst erst alle Daten A1:E350 in Tbl01 und gibst in der bedingten Formatierung die Formel ist:
=(ZÄHLENWENN(Tbl02!$C$1:$C$420; $C1) = 0)
und das gewünschte Format an. Danach machst Du es genau umgekehrt, markierst alle Daten A1:E420 in Tbl02 und gibst in der bedingten Formatierung die Formel ist:
=(ZÄHLENWENN(Tbl01!$C$1:$C$350; $C1) = 0)
und das entsprechende Format an. Wenn jetzt was "bunt" wird o. ä., dann ist genau das in der anderen Tabelle nicht enthalten.
Gruß,
CaroS
Antwort 4 von Soldier
hmm und gibts irgendeine möglichkeit das zu umgehen ? also namen ist nicht das problem, die gibts nur einmal, aber rechnungen sieht schlecht aus
Antwort 5 von Soldier
also ich hab rausgefunden das das mit excel direkt nicht geht, d.h. es müsste jemand das ganze in visual basic coden ...... und ich kann leider kein VB :(
Antwort 6 von CaroS
Hallo Soldier,
wieso soll was nicht gehen? Was hast Du da konkret rausgefunden? Und zu Deiner Antwort 4: Was willst Du da umgehen? Das habe ich nicht ganz verstanden.
Meinst Du die Eindeutigkeit? Was gibt´s da zu umgehen, entweder die Werte sind eindeutig oder sie sind es nicht. Die Werte verändern kannst Du deswegen ja i. a. nicht. Außerdem würde dann VBA genauso wenig weiterhelfen.
Was an der Lösung in AW3 funktioniert denn konkret nicht?
Wenn es nur die fehlende Eindeutigkeit der Werte in jeder einzelnen Spalte ist, da kann man oft was machen, indem man mehrere Spalten (in einer Hilfsspalte) so miteinander kombiniert, dass man zu einer Eindeutigkeit kommt.
Wie das geht, würden wir/würde ich Dir erklären. Aber nun erkläre Du erstmal, was los ist und wo es nicht weitergeht.
Gruß,
CaroS
wieso soll was nicht gehen? Was hast Du da konkret rausgefunden? Und zu Deiner Antwort 4: Was willst Du da umgehen? Das habe ich nicht ganz verstanden.
Meinst Du die Eindeutigkeit? Was gibt´s da zu umgehen, entweder die Werte sind eindeutig oder sie sind es nicht. Die Werte verändern kannst Du deswegen ja i. a. nicht. Außerdem würde dann VBA genauso wenig weiterhelfen.
Was an der Lösung in AW3 funktioniert denn konkret nicht?
Wenn es nur die fehlende Eindeutigkeit der Werte in jeder einzelnen Spalte ist, da kann man oft was machen, indem man mehrere Spalten (in einer Hilfsspalte) so miteinander kombiniert, dass man zu einer Eindeutigkeit kommt.
Wie das geht, würden wir/würde ich Dir erklären. Aber nun erkläre Du erstmal, was los ist und wo es nicht weitergeht.
Gruß,
CaroS
Antwort 7 von Soldier
also bei der bedingten formatierung geht es leider nicht :( da kommt immer der fehler das verweise auf andere tabellenblätter nicht zulässig sind .....
Meine Vorstellungen:
2 Tabellenblätter á 6 Spalten
jeweils eine Tabelle pro Tabellenblatt
Tabellenblatt 1:
6 Werte je Zeile die identisch sein müssen mit 6 Werten auf Tabellenblatt 2.
Ich würde gerne angezeigt haben wo keine Identität besteht, d.h. ein Wert anderst ist oder sogar fehlt.
Sorry das ich mich erst so undeutlich ausgedrückt hab aber ich hab nicht soviel mit Excel zu tun und deshalb fand ich das schwer zu erklären.
Meine Vorstellungen:
2 Tabellenblätter á 6 Spalten
jeweils eine Tabelle pro Tabellenblatt
Tabellenblatt 1:
6 Werte je Zeile die identisch sein müssen mit 6 Werten auf Tabellenblatt 2.
Ich würde gerne angezeigt haben wo keine Identität besteht, d.h. ein Wert anderst ist oder sogar fehlt.
Sorry das ich mich erst so undeutlich ausgedrückt hab aber ich hab nicht soviel mit Excel zu tun und deshalb fand ich das schwer zu erklären.
Antwort 8 von nighty
hi all :)
schliesse mich an mit zwei eindeutigen zellen ist es besser,hier sind es spalte a+b
erste tabelle ziel
zweite tabelle quelle
zweideutigkeit bei spalte c d e f noch offen,was im normalfall wohl nicht vorkommen wird,makro noch optimierungsbeduerftig
gruss nighty
Option Explicit
Sub suchen()
Dim zaehler1 As Long
Dim suche1 As Range
Dim suche2 As Range
For zaehler1 = 1 To Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row
Set suche1 = Sheets(2).Range("A1" & ":A" & Sheets(2).UsedRange.SpecialCells(xlCellTypeLastCell).Row + 2).Find(Sheets(1).Range("A" & zaehler1))
Set suche2 = Sheets(2).Range("B1" & ":B" & Sheets(2).UsedRange.SpecialCells(xlCellTypeLastCell).Row + 2).Find(Sheets(1).Range("B" & zaehler1))
If Not suche1 Is Nothing And Not suche2 Is Nothing And suche1.Row = suche2.Row And _
Sheets(1).Range("A" & zaehler1) <> "" And Sheets(1).Range("B" & zaehler1) <> "" Then
If Sheets(1).Range("C" & zaehler1) <> Sheets(2).Range("C" & suche1.Row) Then
beenden = MsgBox("Zwei zellen die nicht identisch sind !" & Chr$(13) & _
Chr$(13) & "Ergaenzen ?" & Chr$(13) & Chr$(13) & Sheets(1).Name & " " & Sheets(2).Name & Chr$(13) & Chr$(13) _
& " Zeile" & zaehler1 & " Zeile" & suche1.Row _
& Chr$(13) & " Spalte C" & " Spalte C", vbYesNo)
If beenden = vbYes Then
Sheets(1).Range("C" & zaehler1) = Sheets(2).Range("C" & suche1.Row)
End If
End If
If Sheets(1).Range("D" & zaehler1) <> Sheets(2).Range("D" & suche1.Row) Then
beenden = MsgBox("Zwei zellen die nicht identisch sind !" & Chr$(13) & _
Chr$(13) & "Ergaenzen ?" & Chr$(13) & Chr$(13) & Sheets(1).Name & " " & Sheets(2).Name & Chr$(13) & Chr$(13) _
& " Zeile" & zaehler1 & " Zeile" & suche1.Row _
& Chr$(13) & " Spalte D" & " Spalte D", vbYesNo)
If beenden = vbYes Then
Sheets(1).Range("D" & zaehler1) = Sheets(2).Range("D" & suche1.Row)
End If
End If
If Sheets(1).Range("E" & zaehler1) <> Sheets(2).Range("E" & suche1.Row) Then
beenden = MsgBox("Zwei zellen die nicht identisch sind !" & Chr$(13) & _
Chr$(13) & "Ergaenzen ?" & Chr$(13) & Chr$(13) & Sheets(1).Name & " " & Sheets(2).Name & Chr$(13) & Chr$(13) _
& " Zeile" & zaehler1 & " Zeile" & suche1.Row _
& Chr$(13) & " Spalte E" & " Spalte E", vbYesNo)
If beenden = vbYes Then
Sheets(1).Range("E" & zaehler1) = Sheets(2).Range("E" & suche1.Row)
End If
End If
If Sheets(1).Range("F" & zaehler1) <> Sheets(2).Range("F" & suche1.Row) Then
beenden = MsgBox("Zwei zellen die nicht identisch sind !" & Chr$(13) & _
Chr$(13) & "Ergaenzen ?" & Chr$(13) & Chr$(13) & Sheets(1).Name & " " & Sheets(2).Name & Chr$(13) & Chr$(13) _
& " Zeile" & zaehler1 & " Zeile" & suche1.Row _
& Chr$(13) & " Spalte F" & " Spalte F", vbYesNo)
If beenden = vbYes Then
Sheets(1).Range("F" & zaehler1) = Sheets(2).Range("F" & suche1.Row)
End If
End If
End If
Next zaehler1
End Sub
schliesse mich an mit zwei eindeutigen zellen ist es besser,hier sind es spalte a+b
erste tabelle ziel
zweite tabelle quelle
zweideutigkeit bei spalte c d e f noch offen,was im normalfall wohl nicht vorkommen wird,makro noch optimierungsbeduerftig
gruss nighty
Option Explicit
Sub suchen()
Dim zaehler1 As Long
Dim suche1 As Range
Dim suche2 As Range
For zaehler1 = 1 To Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row
Set suche1 = Sheets(2).Range("A1" & ":A" & Sheets(2).UsedRange.SpecialCells(xlCellTypeLastCell).Row + 2).Find(Sheets(1).Range("A" & zaehler1))
Set suche2 = Sheets(2).Range("B1" & ":B" & Sheets(2).UsedRange.SpecialCells(xlCellTypeLastCell).Row + 2).Find(Sheets(1).Range("B" & zaehler1))
If Not suche1 Is Nothing And Not suche2 Is Nothing And suche1.Row = suche2.Row And _
Sheets(1).Range("A" & zaehler1) <> "" And Sheets(1).Range("B" & zaehler1) <> "" Then
If Sheets(1).Range("C" & zaehler1) <> Sheets(2).Range("C" & suche1.Row) Then
beenden = MsgBox("Zwei zellen die nicht identisch sind !" & Chr$(13) & _
Chr$(13) & "Ergaenzen ?" & Chr$(13) & Chr$(13) & Sheets(1).Name & " " & Sheets(2).Name & Chr$(13) & Chr$(13) _
& " Zeile" & zaehler1 & " Zeile" & suche1.Row _
& Chr$(13) & " Spalte C" & " Spalte C", vbYesNo)
If beenden = vbYes Then
Sheets(1).Range("C" & zaehler1) = Sheets(2).Range("C" & suche1.Row)
End If
End If
If Sheets(1).Range("D" & zaehler1) <> Sheets(2).Range("D" & suche1.Row) Then
beenden = MsgBox("Zwei zellen die nicht identisch sind !" & Chr$(13) & _
Chr$(13) & "Ergaenzen ?" & Chr$(13) & Chr$(13) & Sheets(1).Name & " " & Sheets(2).Name & Chr$(13) & Chr$(13) _
& " Zeile" & zaehler1 & " Zeile" & suche1.Row _
& Chr$(13) & " Spalte D" & " Spalte D", vbYesNo)
If beenden = vbYes Then
Sheets(1).Range("D" & zaehler1) = Sheets(2).Range("D" & suche1.Row)
End If
End If
If Sheets(1).Range("E" & zaehler1) <> Sheets(2).Range("E" & suche1.Row) Then
beenden = MsgBox("Zwei zellen die nicht identisch sind !" & Chr$(13) & _
Chr$(13) & "Ergaenzen ?" & Chr$(13) & Chr$(13) & Sheets(1).Name & " " & Sheets(2).Name & Chr$(13) & Chr$(13) _
& " Zeile" & zaehler1 & " Zeile" & suche1.Row _
& Chr$(13) & " Spalte E" & " Spalte E", vbYesNo)
If beenden = vbYes Then
Sheets(1).Range("E" & zaehler1) = Sheets(2).Range("E" & suche1.Row)
End If
End If
If Sheets(1).Range("F" & zaehler1) <> Sheets(2).Range("F" & suche1.Row) Then
beenden = MsgBox("Zwei zellen die nicht identisch sind !" & Chr$(13) & _
Chr$(13) & "Ergaenzen ?" & Chr$(13) & Chr$(13) & Sheets(1).Name & " " & Sheets(2).Name & Chr$(13) & Chr$(13) _
& " Zeile" & zaehler1 & " Zeile" & suche1.Row _
& Chr$(13) & " Spalte F" & " Spalte F", vbYesNo)
If beenden = vbYes Then
Sheets(1).Range("F" & zaehler1) = Sheets(2).Range("F" & suche1.Row)
End If
End If
End If
Next zaehler1
End Sub
Antwort 9 von nighty
hi all :)
zweideutigkeit bei spalte c d e f noch offen
bei sich wiederholenden zeichen in folge als suchbegriff
gruss nighty
zweideutigkeit bei spalte c d e f noch offen
bei sich wiederholenden zeichen in folge als suchbegriff
gruss nighty
Antwort 10 von nighty
hi all :)
die zeile vergass ich noch
Dim beenden As String
am einfang einfuegen
gruss nighty
die zeile vergass ich noch
Dim beenden As String
am einfang einfuegen
gruss nighty
Antwort 11 von CaroS
Hallo Soldier,
ich mach mal mit der angefangenen Formellösung weiter, habe nightys VBA-Code noch nicht probiert. (Zu AW3, 5 und 7:) Tut mir leid, da habe ich nicht dran gedacht, dass das von einer Tabelle zur anderen nicht geht. Ich kriege dieselbe Meldung:
Aber so ist das eben, da schreibst Du in AW5 einfach nur, dass es nicht geht, ich frage in AW6 nach, was nicht geht, und dann Du in AW7, dass die bedingte Formatierung nicht geht. Das hättest Du auch gleich schreiben können, der Aufwand ist derselbe.
Ein ernstes Problem entsteht dadurch allerdings nicht, denn das lässt sich alles mit 2 Hilfsspalten (in jeder Tabelle eine) lösen, die Du wahrscheinlich sowieso gebraucht hättest, um eine Spalte mit eindeutigen Werten zu erzeugen. Ich nehme mal an, dass die Kombination aus Kundenname, Kundennummer und Rechnungsnummer eindeutig ist und dass diese Werte in den Spalten A bis C stehen. (Sonst Formeln unten anpassen.)
Benutze in beiden Tabellen einfach irgendeine Spalte rechts von Deinen Daten, z. B. Spalte H, markiere sie und gib folgende Formel ein:
= Tbl02!A1 & "|" & Tbl02!B1 & "|" & Tbl02!C1 in Tabelle 1 (ggf. Tabellennamen "Tbl01"
= Tbl01!A1 & "|" & Tbl01!B1 & "|" & Tbl01!C1 in Tabelle 2 . . . . und "Tbl02" anpassen.)
Die Zeilennummer 1 in A1, B1 und C1 müsstest Du anpassen, falls Deine Daten erst weiter unten beginnen, so dass in jeder Hilfszelle immer die Daten derselben Zeile zusammengefasst werden. Du musst in beiden Tabellen auch nicht unbedingt dieselbe Spalte als Hilfsspalte verwenden. Wenn es in Tabelle 2 z. B. die Spalte G ist, dann musst Du nur bei der letzten Formel aufpassen (G oder H verwenden).
Es geht jetzt weiter wie in AW3, wieder mit "Tbl01" und "Tbl02" als Tabellennamen. Du markierst erst alle Daten A1:F350 in Tbl01 und gibst in der bedingten Formatierung die Formel ist:
=(ZÄHLENWENN($H$1:$H$420; $A1 & "|" & $B1 & "|" & $C1) = 0)
und das gewünschte Format an. Danach machst Du es genau umgekehrt, markierst alle Daten A1:F420 in Tbl02 und gibst in der bedingten Formatierung die Formel ist:
=(ZÄHLENWENN($G$1:$G$420; $A1 & "|" & $B1 & "|" & $C1) = 0) (G oder H verwenden)
und das entsprechende Format an. Wenn jetzt was "bunt" wird o. ä., dann ist genau das in der anderen Tabelle nicht enthalten. Fehlende Zeilen einfügen kann man mit Formeln aber nicht, das ist man dann wirklich auf VBA oder Kopieren per Hand angewiesen. Aber probier jetzt erstmal das aus, dann sehen wir weiter.
Gruß,
CaroS
ich mach mal mit der angefangenen Formellösung weiter, habe nightys VBA-Code noch nicht probiert. (Zu AW3, 5 und 7:) Tut mir leid, da habe ich nicht dran gedacht, dass das von einer Tabelle zur anderen nicht geht. Ich kriege dieselbe Meldung:
Bezüge auf andere Tabellen oder Arbeitsmappen dürfen in dem Kriterium Bedingte Formatierung nicht verwendet werden. [OK]
Aber so ist das eben, da schreibst Du in AW5 einfach nur, dass es nicht geht, ich frage in AW6 nach, was nicht geht, und dann Du in AW7, dass die bedingte Formatierung nicht geht. Das hättest Du auch gleich schreiben können, der Aufwand ist derselbe.
Ein ernstes Problem entsteht dadurch allerdings nicht, denn das lässt sich alles mit 2 Hilfsspalten (in jeder Tabelle eine) lösen, die Du wahrscheinlich sowieso gebraucht hättest, um eine Spalte mit eindeutigen Werten zu erzeugen. Ich nehme mal an, dass die Kombination aus Kundenname, Kundennummer und Rechnungsnummer eindeutig ist und dass diese Werte in den Spalten A bis C stehen. (Sonst Formeln unten anpassen.)
Benutze in beiden Tabellen einfach irgendeine Spalte rechts von Deinen Daten, z. B. Spalte H, markiere sie und gib folgende Formel ein:
= Tbl02!A1 & "|" & Tbl02!B1 & "|" & Tbl02!C1 in Tabelle 1 (ggf. Tabellennamen "Tbl01"
= Tbl01!A1 & "|" & Tbl01!B1 & "|" & Tbl01!C1 in Tabelle 2 . . . . und "Tbl02" anpassen.)
Die Zeilennummer 1 in A1, B1 und C1 müsstest Du anpassen, falls Deine Daten erst weiter unten beginnen, so dass in jeder Hilfszelle immer die Daten derselben Zeile zusammengefasst werden. Du musst in beiden Tabellen auch nicht unbedingt dieselbe Spalte als Hilfsspalte verwenden. Wenn es in Tabelle 2 z. B. die Spalte G ist, dann musst Du nur bei der letzten Formel aufpassen (G oder H verwenden).
Es geht jetzt weiter wie in AW3, wieder mit "Tbl01" und "Tbl02" als Tabellennamen. Du markierst erst alle Daten A1:F350 in Tbl01 und gibst in der bedingten Formatierung die Formel ist:
=(ZÄHLENWENN($H$1:$H$420; $A1 & "|" & $B1 & "|" & $C1) = 0)
und das gewünschte Format an. Danach machst Du es genau umgekehrt, markierst alle Daten A1:F420 in Tbl02 und gibst in der bedingten Formatierung die Formel ist:
=(ZÄHLENWENN($G$1:$G$420; $A1 & "|" & $B1 & "|" & $C1) = 0) (G oder H verwenden)
und das entsprechende Format an. Wenn jetzt was "bunt" wird o. ä., dann ist genau das in der anderen Tabelle nicht enthalten. Fehlende Zeilen einfügen kann man mit Formeln aber nicht, das ist man dann wirklich auf VBA oder Kopieren per Hand angewiesen. Aber probier jetzt erstmal das aus, dann sehen wir weiter.
Gruß,
CaroS
Antwort 12 von nighty
hi all :)
noch ein wenig optimiert :)
gruss nighty
Option Explicit
Sub suchen()
Dim zaehler1 As Long
Dim zaehler2 As Long
Dim suche1 As Range
Dim suche2 As Range
Dim beenden As String
For zaehler1 = 1 To Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row
Set suche1 = Sheets(2).Range("A1" & ":A" & Sheets(2).UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1).Find(Sheets(1).Range("A" & zaehler1))
Set suche2 = Sheets(2).Range("B1" & ":B" & Sheets(2).UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1).Find(Sheets(1).Range("B" & zaehler1))
If Not suche1 Is Nothing And Not suche2 Is Nothing And Sheets(1).Cells(zaehler1, 1) <> "" And Sheets(1).Cells(zaehler1, 2) <> "" And suche1.Row = suche2.Row Then
For zaehler2 = 3 To 6
If Sheets(1).Cells(zaehler1, zaehler2) <> Sheets(2).Cells(suche1.Row, zaehler2) Then
beenden = MsgBox("Zwei zellen die nicht identisch sind !" & Chr$(13) & _
Chr$(13) & "Ergaenzen ?" & Chr$(13) & Chr$(13) & Sheets(1).Name & " " & Sheets(2).Name & Chr$(13) & Chr$(13) _
& " Zeile" & zaehler1 & " Zeile" & suche1.Row _
& Chr$(13) & " Spalte " & Chr(64 + zaehler2) & " Spalte " & Chr(64 + zaehler2), vbYesNo)
If beenden = vbYes Then
Sheets(1).Range(Chr(64 + zaehler2) & zaehler1) = Sheets(2).Range(Chr(64 + zaehler2) & suche1.Row)
End If
End If
Next zaehler2
End If
Next zaehler1
End Sub
noch ein wenig optimiert :)
gruss nighty
Option Explicit
Sub suchen()
Dim zaehler1 As Long
Dim zaehler2 As Long
Dim suche1 As Range
Dim suche2 As Range
Dim beenden As String
For zaehler1 = 1 To Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row
Set suche1 = Sheets(2).Range("A1" & ":A" & Sheets(2).UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1).Find(Sheets(1).Range("A" & zaehler1))
Set suche2 = Sheets(2).Range("B1" & ":B" & Sheets(2).UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1).Find(Sheets(1).Range("B" & zaehler1))
If Not suche1 Is Nothing And Not suche2 Is Nothing And Sheets(1).Cells(zaehler1, 1) <> "" And Sheets(1).Cells(zaehler1, 2) <> "" And suche1.Row = suche2.Row Then
For zaehler2 = 3 To 6
If Sheets(1).Cells(zaehler1, zaehler2) <> Sheets(2).Cells(suche1.Row, zaehler2) Then
beenden = MsgBox("Zwei zellen die nicht identisch sind !" & Chr$(13) & _
Chr$(13) & "Ergaenzen ?" & Chr$(13) & Chr$(13) & Sheets(1).Name & " " & Sheets(2).Name & Chr$(13) & Chr$(13) _
& " Zeile" & zaehler1 & " Zeile" & suche1.Row _
& Chr$(13) & " Spalte " & Chr(64 + zaehler2) & " Spalte " & Chr(64 + zaehler2), vbYesNo)
If beenden = vbYes Then
Sheets(1).Range(Chr(64 + zaehler2) & zaehler1) = Sheets(2).Range(Chr(64 + zaehler2) & suche1.Row)
End If
End If
Next zaehler2
End If
Next zaehler1
End Sub
Antwort 13 von nighty
hi all :)
spalte a wie b muessen besetzt sein
spalten c bis f erfolgt eine prüfung
mit abfrage auf abgleich
gruss nighty
spalte a wie b muessen besetzt sein
spalten c bis f erfolgt eine prüfung
mit abfrage auf abgleich
gruss nighty
Antwort 14 von Aliba
Hi,
von mir auch ein Lösungsvorschlag über bedingte Formatierung:
Es gibt zwei Tabellenblätter, Tabelle1 und Tabelle2
Tabelle1 und Tabelle2 haben identische Struktur.
1. Zeile Überschriften (identisch) bis Spalte F
Ab Zeile 2 die Daten.
Es wird Tabelle2 mit Tabelle1 abgeglichen.
In Tabelle1 Bereich A1 bis zum letzten EIntrag in Spalte A markieren, dann EINFÜGEN - NAMEN - DEFINIEREN
dann als Namen vergeben: Name
Wiederum in Tabelle1 Bereich von A1 bis Fx markieren, EINFÜGEN - NAMEN - DEFINIEREN , hier dann eingeben : Daten
In Tabelle2 Bereich von A1 bis Fx markieren, FORMAT - bedingte Formatierung: Formel ist:
=WENN($A1="";FALSCH;WENN(ISTNV(VERGLEICH($A1;Name;0));WAHR;WENN(SVERWEIS($A1;Daten;SPALTE(A1);0)<>A1;WAHR;FALSCH)))
Format vergeben und das wars.
Es wird in Tabelle2 die ganze Datenzeile markiert, wenn der Name in Tabelle1 nicht auftaucht, ansonsten werden in der Datenzeile die Zellen markiert, die von Tabelle1 abweichen.
Voraussetzung ist natürlich die Eindeutigkeit der Namen.
CU Aliba
von mir auch ein Lösungsvorschlag über bedingte Formatierung:
Es gibt zwei Tabellenblätter, Tabelle1 und Tabelle2
Tabelle1 und Tabelle2 haben identische Struktur.
1. Zeile Überschriften (identisch) bis Spalte F
Ab Zeile 2 die Daten.
Es wird Tabelle2 mit Tabelle1 abgeglichen.
In Tabelle1 Bereich A1 bis zum letzten EIntrag in Spalte A markieren, dann EINFÜGEN - NAMEN - DEFINIEREN
dann als Namen vergeben: Name
Wiederum in Tabelle1 Bereich von A1 bis Fx markieren, EINFÜGEN - NAMEN - DEFINIEREN , hier dann eingeben : Daten
In Tabelle2 Bereich von A1 bis Fx markieren, FORMAT - bedingte Formatierung: Formel ist:
=WENN($A1="";FALSCH;WENN(ISTNV(VERGLEICH($A1;Name;0));WAHR;WENN(SVERWEIS($A1;Daten;SPALTE(A1);0)<>A1;WAHR;FALSCH)))
Format vergeben und das wars.
Es wird in Tabelle2 die ganze Datenzeile markiert, wenn der Name in Tabelle1 nicht auftaucht, ansonsten werden in der Datenzeile die Zellen markiert, die von Tabelle1 abweichen.
Voraussetzung ist natürlich die Eindeutigkeit der Namen.
CU Aliba