Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Datum in zwei Spalten vergleichen

Datum in zwei Spalten vergleichen
16.01.2020 16:44:24
Xulio
Hallo zusammen,
ich habe folgendes Problem:
Ich habe eine Tabelle erstellt. In dieser sind unter anderem zwei Spalten. Eine hat die Überschrift "Gültig bis" (Spalte E) und die andere "Eingebaut am" (Spalte G). Ich wollte jetzt für das Tabellenblatt noch ein Code erstellen, der mir im Hintergrund immer die Einträge der beiden Spalten vergleicht und wenn E kleiner G ist, die Schirftfarbe der gesamten Zeile rot färbt und ne MsgBox mit einem Hinweis ausgibt. Die Einträge in beiden Spalten werden als Datum eingetragen (TT.MM.JJJJ).
Ich hab da mal was geschrieben, aber das klappt nicht. Der zeigt mir immer einen Anwendungs- oder Objektdefinierungsfehler an.
Dim datum As Range, einbau As Range
Dim x As Long, y As Long
Dim i As Integer
Worksheets("Druckbereich").Activate
Range("E:E").Select
With Selection
Set datum = .Find(what:="Gültig bis", LookIn:=xlValues, lookat:=xlWhole, searchdirection:=xlByRows)
If Not datum Is Nothing Then
x = .Cells(datum.Row, datum.Column).Row
End If
Range("G:G").Select
With Selection
Set einbau = .Find(what:="Eingebaut am", LookIn:=xlValues, lookat:=xlWhole, searchdirection:=xlByRows)
If Not einbau Is Nothing Then
y = .Cells(einbau.Row, einbau.Column).Row
End If
For i = 3 To 150
If .Cells(x + i, x).Value "kleiner" .Cells(y + i, y).Value Then
Range(ActiveCell, ActiveCell).EntireRow.Font.ColorIndex = 3
MsgBox "Test!", vbOKOnly + vbExclamation, "Hinweis"
End If
Next i
End With
End With
"kleiner" ist als Platzhalter für das mathematische Symbol zu verstehen. Weiß nicht, wie ich das anders schreiben kann, damit das Forumsprogramm das verarbeiten kann.
Vielen Dank vorab!
Beste Grüße
Xulio
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: warum noch einmal? owT
16.01.2020 16:51:02
neopa
Gruß Werner
.. , - ...
AW: warum noch einmal? owT
16.01.2020 21:24:10
Xulio
Warum ich das machen will?
Ja ich wollte eine Kontrolle bzw. einen Hinweis einbauen, dass, wenn der Einbauzeitraum nach der Gültigkeitsdauer der Unterlagen des eingebauten Elements ist, dass meine eine Verlängerung von den Unterlagen brauch.
Oder was war die Frage?
Beste Grüße
Xulio
Anzeige
AW: warum noch einmal? owT
17.01.2020 10:19:00
Werner
Hallo,
die Frage war, weshalb du den Beitrag zweimal einstellst?
Und weshalb reagierst du auf Lösungsvorschläge (siehe Beitrag von Uwe) nicht?
Gruß Werner
AW: warum noch einmal? owT
17.01.2020 23:15:43
Xulio
Hallo,
oh achso, das hab ich garnicht mitbekommen, dass ich das 2 mal reingestellt habe ... war ein versehen.
Ja das von UweD muss ich noch testen. Stehe kurz vor meiner Abgabe und bin daher an mehreren Fronten beschäftigt und muss die nach Prioritäten abarbeiten.
Dennoch bin ich für jede Information dankbar und werde mich damit morgen wieder auseinander setzen.
Noch ganz kurz zu Deiner Antwort bzw. Frage: Was genau meinst du mit bedingter Formatierung ?
Beste Grüße
Xulio
Anzeige
siehe Beitrag von Uwe. o.w.T
17.01.2020 23:17:49
Uwe.
ohne VBA
16.01.2020 17:05:20
UweD
Hallo
geht auch ohne VBA
- markiere die Zellen in Spalte G von G2 bis z.B. G20
- Zelle G2 ist aktiv.
- Daten, Datentools, Datenüberprüfung
- Benutzerdefiniert; Formel - Kannst die Fehlermeldung im hinteren Register noch anpassen
- OK
Oder mit bedingter Formatierung
- Bereich A2:Z20 markieren
- Start, Bedingte Formatierung, Neue Regel
- Formel zur Ermittlung...
- =$E2>$G2
- Formatieren, Ausfüllen rot
- OK, OK
LG UweD
OK
Anzeige
AW: ohne VBA
18.01.2020 10:58:03
Xulio
Hallo UweD,
danke für Deine Antwort. Also das mit der Datenüberprüfung hat schon mal funktioniert.
Zwei Punkte hätte ich allerdings noch:
1. Kann man die Fehlermeldung auch anpassen? Also die Buttons unten? Ich brauche kein "Abbrechen" oder "Hilfe" ...
2. Bei der Bedingten Formatierung klappt das leider nicht bereichsweise. Muss ich das immer zeilenweise machen, oder mach ich da was falsch?
Beste Grüße
Xulio
Anzeige
AW: ohne VBA
20.01.2020 14:52:49
UweD
Hallo
zu 1)
Nur der Text ist einstellbar, Die Tasten nicht
zu 2)
Ich habe es dir für den Bereich von G2 bis G20 beschrieben. Du musst es also nur 1x machen
ABER!: Das &GT -Zeichen muss in ein &lt -Zeichen geändert werden.
LG UweD
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Datum in zwei Spalten vergleichen


Schritt-für-Schritt-Anleitung

Um die Einträge in zwei Spalten in Excel (z.B. "Gültig bis" und "Eingebaut am") zu vergleichen und die Schriftfarbe entsprechend zu ändern, kannst du das folgende VBA-Skript verwenden. Achte darauf, dass du in einer Excel-Version arbeitest, die Makros unterstützt.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Wähle Einfügen > Modul, um ein neues Modul zu erstellen.

  3. Füge den folgenden Code ein:

    Sub DatumVergleichen()
       Dim datum As Range, einbau As Range
       Dim x As Long, y As Long
       Dim i As Integer
    
       Worksheets("Druckbereich").Activate
    
       Set datum = Range("E:E").Find(what:="Gültig bis", LookIn:=xlValues, lookat:=xlWhole)
       Set einbau = Range("G:G").Find(what:="Eingebaut am", LookIn:=xlValues, lookat:=xlWhole)
    
       If Not datum Is Nothing And Not einbau Is Nothing Then
           x = datum.Row
           y = einbau.Row
    
           For i = 3 To 150
               If Cells(x + i, datum.Column).Value < Cells(y + i, einbau.Column).Value Then
                   Rows(x + i & ":" & x + i).Font.ColorIndex = 3 ' Rot
                   MsgBox "Hinweis: Einbau liegt nach Gültigkeit!", vbOKOnly + vbExclamation, "Warnung"
               End If
           Next i
       End If
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Führe das Makro aus, um die Datumswerte in den Spalten zu vergleichen.


Häufige Fehler und Lösungen

  • Fehler: Anwendungs- oder Objektdefinierungsfehler

    • Lösung: Stelle sicher, dass die Spaltenüberschriften korrekt geschrieben sind. Überprüfe auch, ob die richtigen Zellbereiche ausgewählt sind.
  • Fehler: Schriftfarbe wird nicht geändert

    • Lösung: Achte darauf, dass die Bedingung korrekt formuliert ist. Der Vergleich muss zwischen den Datumswerten der richtigen Zeilen stattfinden.

Alternative Methoden

Falls du kein VBA verwenden möchtest, kannst du auch die bedingte Formatierung nutzen:

  1. Markiere den Bereich, den du formatieren möchtest (z.B. A2:Z20).
  2. Gehe zu Start > Bedingte Formatierung > Neue Regel.
  3. Wähle Formel zur Ermittlung... und gib folgende Formel ein:
    =$E2>$G2
  4. Klicke auf Formatieren, wähle die Farbe Rot aus und bestätige mit OK.

Diese Methode ist besonders nützlich, wenn du einfach nur visuelle Hinweise benötigst, ohne Makros zu verwenden.


Praktische Beispiele

  1. Beispiel 1: Datumswerte vergleichen und visuell hervorheben

    • Verwende die oben genannte bedingte Formatierung, um jede Zeile rot zu färben, wenn das Datum in Spalte E nach dem Datum in Spalte G liegt.
  2. Beispiel 2: Wert ausgeben

    • Du kannst auch eine Formel verwenden, um einen Hinweis auszugeben. Füge in einer neuen Spalte folgende Formel ein:
      =WENN(E2<G2; "Überprüfung nötig"; "OK")

Tipps für Profis

  • Nutze die Tastenkombination F5 im VBA-Editor, um schnell zum nächsten Fehler zu springen.
  • Experimentiere mit Bedingungen in der bedingten Formatierung, um komplexere Vergleiche anzustellen.
  • Halte deine Excel-Version stets aktuell, um die neuesten Funktionen und Fehlerbehebungen zu nutzen.

FAQ: Häufige Fragen

1. Kann ich mehrere Spalten vergleichen?
Ja, du kannst mehrere Spalten vergleichen, indem du zusätzliche Bedingungen in deine VBA-Schleife oder bedingte Formatierungen einfügst.

2. Wie ändere ich die Schriftfarbe in einer bestimmten Zeile?
Verwende den Befehl Rows(x + i & ":" & x + i).Font.ColorIndex = 3, um die gesamte Zeile rot zu färben.

3. Funktioniert das auch in älteren Excel-Versionen?
Ja, das VBA-Skript sollte in den meisten Versionen von Excel funktionieren, die Makros unterstützen. Achte jedoch darauf, dass die Syntax und die Funktionen gleich sind.

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