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

Forumthread: Nur Monat und Jahr vergleichen

Nur Monat und Jahr vergleichen
14.04.2015 11:10:06
Thorsten_Z
Moin liebes Forum,
ich möchte das Datum aus ComboBox1 mit Spalte A vergleichen. Aber nur den Monat und das Jahr.
Folgender Code überprüft jedoch das "ganze" Datum. Wie kann ich dem Code "sagen" er soll nur nach Monat und Jahr des Datums aus ComboBox1 in Spalte A suchen?
Sub Datvergleich()
Dim Rafound as Range
Dim Bname as String
With Worksheets(Bname)
Set Rafound = .Columns(1).Find(ComboBox1, Range("A" & Rows.Count), _ xlFormulas,  _
xlWhole, , xlNext)
End Sub
Besten Gruß
Thorsten

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Nur Monat und Jahr vergleichen
14.04.2015 11:21:29
Peter
Hallo Thorsten,
dann musst du im ersten Schritt nur das Jahr suchen (sowohl aus der Combobox als auch aus Spalte A) und wenn gefunden abfragen ob es auch der gesuchte Monat ist.
Nutze also Month(CDate(Combobox1.value)) bzw. Year(CDate(ComboBox1.value)) und das Gleiche für die Spalte A Werte.
Gruß Peter

Anzeige
AW: Nur Monat und Jahr vergleichen
14.04.2015 11:24:24
Thorsten_Z
Hallo Peter,
besten Dank!
Damit komme ich weiter.
Gruß
Thorsten

AW: Nur Monat und Jahr vergleichen
14.04.2015 12:12:57
Peter
Hallo Thorsten,
du musst die Datumswerte aus Spalte A aber wohl in Hilfsspalten nach Jahr und Monat trennen und die abgleichen.
Gruß Peter

AW: Nur Monat und Jahr vergleichen
14.04.2015 12:31:40
Peter
Hallo Thorsten,
ich habe in einer Beispielmappe die Spalte B für das Jahr, die Spalte C für den Monat reserviert.
Dann gibt das folgende Makro die Fundstellen z. Zt. als MessageBox aus.
Private Sub CommandButton1_Click()
Dim WkSh     As Worksheet
Dim lzeile   As Long
Dim iTemp    As Integer
Dim rZelle   As Range
Dim sFundst  As String
Set WkSh = ThisWorkbook.Worksheets("Tabelle1")
For lzeile = 2 To WkSh.Cells(WkSh.Rows.Count, 1).End(xlUp).Row
If IsDate(WkSh.Range("A" & lzeile).Value) Then
WkSh.Range("B" & lzeile).Value = Year(WkSh.Range("A" & lzeile).Value)
WkSh.Range("C" & lzeile).Value = Month(WkSh.Range("A" & lzeile).Value)
End If
Next lzeile
With WkSh.Columns(2)
Set rZelle = .Find(What:=Year(CDate(ComboBox1.Value)), LookAt:=xlWhole, LookIn:=xlValues, _
_
After:=.Cells(.Cells.Count))
If Not rZelle Is Nothing Then
sFundst = rZelle.Address
Do
If Month(CDate(ComboBox1.Value)) = WkSh.Range("C" & rZelle.Row) Then
MsgBox "gefunden in Zeile " & rZelle.Row
End If
Set rZelle = .FindNext(rZelle)
Loop While Not rZelle Is Nothing And rZelle.Address  sFundst
End If
End With
End Sub

Gruß Peter

Anzeige
AW: Nur Monat und Jahr vergleichen
14.04.2015 13:00:17
Thorsten_Z
Hallo Peter,
das ist ja großartig dass du dir nochmal diese Mühe gemacht hast.
Hab deinen Code jetzt in meinem Projekt abgespeichert und werde ihn mir entsprechend anpassen.
Vielen Dank nochmal!
Gruß
Thorsten
;

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
Anzeige

Infobox / Tutorial

Nur Monat und Jahr in Excel vergleichen


Schritt-für-Schritt-Anleitung

Um nur Monat und Jahr aus einem Datum in Excel zu vergleichen, kannst du die folgenden Schritte befolgen:

  1. Hilfsspalten einfügen: Füge in deiner Excel-Tabelle zwei Hilfsspalten hinzu. Eine für das Jahr und eine für den Monat. Zum Beispiel:

    • Spalte B: Jahr
    • Spalte C: Monat
  2. Formeln einfügen: Verwende die folgenden Formeln in den Hilfsspalten (angenommen, deine Datumswerte beginnen in A2):

    • In Zelle B2: =JAHR(A2)
    • In Zelle C2: =MONAT(A2)
  3. Ziehen der Formeln: Ziehe die Formeln nach unten, um die Werte in der gesamten Spalte zu berechnen.

  4. VBA-Makro erstellen: Erstelle ein Makro, das die Hilfsspalten überprüft. Hier ist ein Beispielcode:

    Private Sub CommandButton1_Click()
       Dim WkSh As Worksheet
       Dim lzeile As Long
       Dim rZelle As Range
       Dim sFundst As String
       Set WkSh = ThisWorkbook.Worksheets("Tabelle1")
       For lzeile = 2 To WkSh.Cells(WkSh.Rows.Count, 1).End(xlUp).Row
           If IsDate(WkSh.Range("A" & lzeile).Value) Then
               WkSh.Range("B" & lzeile).Value = Year(WkSh.Range("A" & lzeile).Value)
               WkSh.Range("C" & lzeile).Value = Month(WkSh.Range("A" & lzeile).Value)
           End If
       Next lzeile
       ' Suche nach Jahr und Monat
       With WkSh.Columns(2)
           Set rZelle = .Find(What:=Year(CDate(ComboBox1.Value)), LookAt:=xlWhole, LookIn:=xlValues, After:=.Cells(.Cells.Count))
           If Not rZelle Is Nothing Then
               sFundst = rZelle.Address
               Do
                   If Month(CDate(ComboBox1.Value)) = WkSh.Range("C" & rZelle.Row) Then
                       MsgBox "gefunden in Zeile " & rZelle.Row
                   End If
                   Set rZelle = .FindNext(rZelle)
               Loop While Not rZelle Is Nothing And rZelle.Address <> sFundst
           End If
       End With
    End Sub
  5. Anpassen des Codes: Passe den Code an deine Bedürfnisse an, insbesondere den Namen der Tabelle und die ComboBox.


Häufige Fehler und Lösungen

  • Fehler: Falsches Datum in der ComboBox
    Lösung: Stelle sicher, dass das Datum in der ComboBox im richtigen Format vorliegt (z. B. TT.MM.JJJJ).

  • Fehler: Kein Treffer gefunden
    Lösung: Überprüfe, ob die Hilfsspalten korrekt gefüllt sind und das Datum in Spalte A gültig ist.


Alternative Methoden

Eine alternative Methode besteht darin, die Daten in einer PivotTable zu analysieren. Hierbei kannst du die Datumswerte nach Jahr und Monat gruppieren, ohne VBA verwenden zu müssen.

  1. Wähle die Daten aus, die du analysieren möchtest.
  2. Gehe zu Einfügen > PivotTable.
  3. Füge das Datum in die Zeilenbereiche ein und gruppiere es nach Jahr und Monat.

Praktische Beispiele

Angenommen, du hast folgende Daten in Spalte A:

A
01.01.2022
15.02.2022
10.03.2022

Die Hilfsspalten füllen sich dann wie folgt:

A B C
01.01.2022 2022 1
15.02.2022 2022 2
10.03.2022 2022 3

Wenn du nun den Monat und das Jahr aus der ComboBox (z. B. 01.01.2022) vergleichst, wird die MsgBox für die erste Zeile angezeigt.


Tipps für Profis

  • Datenvalidierung: Verwende die Datenvalidierungsfunktion in Excel, um sicherzustellen, dass nur gültige Datumsangaben in die ComboBox eingegeben werden.
  • Leistungsoptimierung: Wenn du mit großen Datenmengen arbeitest, verwende Arrays zur Verarbeitung anstelle von Zellen direkt, um die Leistung zu verbessern.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass die Datumswerte korrekt formatiert sind?
Überprüfe die Zellenformatierung und stelle sie auf "Datum" ein.

2. Ist es notwendig, Hilfsspalten zu verwenden?
Es ist nicht zwingend erforderlich, aber Hilfsspalten erleichtern die Handhabung und den Vergleich der Daten.

3. Kann ich das Makro auch für andere Datenformate verwenden?
Ja, du kannst das Makro anpassen, um andere Datenformate zu verarbeiten, achte jedoch darauf, die Datumsfunktionen entsprechend zu ändern.

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