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

VBA Daten zählen wenn Datum im Datumsintervall

Forumthread: VBA Daten zählen wenn Datum im Datumsintervall

VBA Daten zählen wenn Datum im Datumsintervall
17.06.2015 22:58:18
Crizz
Hallo Forumsmitglieder,
ich habe Probleme beim Auswerten von Daten die sich in einem Datumsintervall befinden.
In einer Tabelle stehen in Spalte C Datumswerte im Format JJJJ-DD-MM und in einer zweiten Tabelle stehen in Zeile 2 die Datumsintervalle im Format Januar 15, Februar 15 ... (dynamisch erweiterbar).
Kann mir jemand sagen wie man die Anzahl der Werte, aus Tabelle 1, in Tabelle 2, anhand der Datumsintervalle auswerten kann?
Danke und viele Grüße Chris

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Daten zählen wenn Datum im Datumsintervall
18.06.2015 09:49:54
UweD
Hallo
Wenn es tatsächlich Datuminhalte sind, die nur anders formatiert sind, dann so..
(in Tabelle2 stehen 01.01.2015 und 01.02.2015)

Tabelle1
 A
1Datum
22014-18-06
32014-19-06
42014-20-06
52014-21-06
62014-22-06
72014-23-06
82014-24-06
92014-25-06
102014-26-06
112014-27-06
122014-28-06
132014-29-06


Tabelle2
 ABCD
1VonBis Anzahl
2Januar 15Februar 15 32

verwendete Formeln
Zelle Formel Bereich N/A
D2=ZÄHLENWENNS(Tabelle1!A:A;">="&A2;Tabelle1!A:A;"<="&B2)  
http://excel-inn.de/dateien/vba_beispiele/tabellenanzeige_in_html_addin.zip
http://Hajo-Excel.de/tools.htm
XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007
Add-In-Version 19.03 einschl. 64 Bit


Anzeige
AW: VBA Daten zählen wenn Datum im Datumsintervall
18.06.2015 10:11:19
Senna
Hallo Crizz,
da ich leider nicht genug Informationen habe, wo genau die Daten stehen (also in welcher Mappe und welchem Blatt) müsstest du das folgende Makro noch selber etwas bearbeiten, damit es bei dir funktioniert. Hoffe aber, dass es dir trotzdem hilft:
Sub Zaehlen()
Dim lngI As Long
Dim lngJ As Long
Dim lngCounter As Long
For lngI = 1 To Workbooks("Mappe1").Sheets(1).Cells(Rows.Count, 3).End(xlUp).Row
For lngJ = 1 To Workbooks("Mappe2").Sheets(1).Cells(Rows.Count, 2).End(xlUp).Row
If Workbooks("Mappe1").Sheets(1).Cells(lngI, 3).Value = Workbooks("Mappe2").Sheets( _
1).Cells(lngJ, 2).Value Then
lngCounter = lngCounter + 1
End If
Next lngJ
Next lngI
Workbooks("Mappe1").Sheets(1).Cells(1, 1).Value = lngCounter
End Sub
Zu ersetzen ist:
- "Mappe1" durch den Mappennamen + Endung der Mappe, in welcher deine erste Tabelle steht.
- "Mappe2" durch den Mappennamen + Endung der Mappe, in welcher deine zweite Tabelle steht.
- Sheets(1) steht für das erste Blatt in der Mappe. Evtl. musst du das auch ändern.
- For lngI = 1 To Workbooks... bedeutet, dass er direkt in der ersten Zeile anfängt zu vergleichen. falls du ne Überschrift hast oder die Tabelle generell weiter unten anfängt muss du den Wert erhöhen.
- Workbooks("Mappe1").Sheets(1).Cells(1, 1).Value = lngCounter bedeutet, dass er dir die Anzahl an Daten aus Tabelle 1, welche auch in Tabelle 2 stehen in die Zelle A1 schreibt. Wenn er dir die Anzahl in eine andere Zelle schreiben soll, musst du auch dieses ändern.

Anzeige
AW: VBA Daten zählen wenn Datum im Datumsintervall
18.06.2015 11:47:03
Crizz
Danke euch beiden für eure Hilfe,
@UweD die Lösung würde ich gerne mittels Makro lösen aber Danke dir trotzdem
@Senna ich habe eine Datei angehängt damit man sehen kann was ich genau machen will
https://www.herber.de/bbs/user/98287.xlsm
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Daten zählen im Datumsintervall mit VBA


Schritt-für-Schritt-Anleitung

Um die Anzahl von Daten in einem bestimmten Datumsintervall mithilfe von VBA zu zählen, befolge diese Schritte:

  1. Öffne deine Excel-Datei: Stelle sicher, dass deine Daten in der richtigen Tabelle und im richtigen Format vorliegen.
  2. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.
  3. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf „VBAProject (DeineDatei.xlsx)“ und wähle „Einfügen“ > „Modul“.
  4. Kopiere den folgenden Code in das Modul:

    Sub Zaehlen()
       Dim lngI As Long
       Dim lngJ As Long
       Dim lngCounter As Long
       For lngI = 1 To Workbooks("Mappe1").Sheets(1).Cells(Rows.Count, 3).End(xlUp).Row
           For lngJ = 1 To Workbooks("Mappe2").Sheets(1).Cells(Rows.Count, 2).End(xlUp).Row
               If Workbooks("Mappe1").Sheets(1).Cells(lngI, 3).Value = Workbooks("Mappe2").Sheets(1).Cells(lngJ, 2).Value Then
                   lngCounter = lngCounter + 1
               End If
           Next lngJ
       Next lngI
       Workbooks("Mappe1").Sheets(1).Cells(1, 1).Value = lngCounter
    End Sub
  5. Passe die Mappennamen an: Ersetze „Mappe1“ und „Mappe2“ mit den tatsächlichen Namen deiner Arbeitsmappen.
  6. Führe das Makro aus: Gehe zurück zu Excel, drücke ALT + F8, wähle „Zaehlen“ und klicke auf „Ausführen“.

Häufige Fehler und Lösungen

  • Fehler: „Subscript out of range“
    Lösung: Überprüfe die Mappen- und Blattnamen. Stelle sicher, dass sie exakt übereinstimmen.

  • Fehler: Keine Daten gezählt
    Lösung: Achte darauf, dass die Datumsformate übereinstimmen. Möglicherweise musst du die Daten in Tabelle 1 und 2 formatieren.


Alternative Methoden

Falls du kein VBA verwenden möchtest, kannst du auch die Funktion ZÄHLENWENNS verwenden:

=ZÄHLENWENNS(Tabelle1!C:C;">="&A2;Tabelle1!C:C;"<="&B2)

Hierbei gibst du in A2 das Startdatum und in B2 das Enddatum ein. Diese Methode ist schnell und einfach, eignet sich jedoch nicht für sehr große Datenmengen.


Praktische Beispiele

Angenommen, du hast folgende Daten in Tabelle 1:

Datum
2014-06-18
2014-06-19
2014-06-20
...

Und in Tabelle 2 hast du:

Von Bis Anzahl
Januar 15 Februar 15 32

Verwende die oben genannte ZÄHLENWENNS-Formel, um die Anzahl der Daten zwischen den angegebenen Zeiträumen zu zählen.


Tipps für Profis

  • Dynamische Bereiche: Verwende dynamische Bereiche, um die Effizienz deines VBA-Codes zu verbessern. Anstatt feste Zellbereiche zu verwenden, kannst du UsedRange nutzen.

  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung in deinem VBA-Code, um unerwartete Fehler zu vermeiden.

  • Datenvalidierung: Stelle sicher, dass die Datumswerte in einem konsistenten Format vorliegen, um genaue Ergebnisse zu erzielen.


FAQ: Häufige Fragen

1. Welche Excel-Version benötige ich für diese Methoden?
Die beschriebenen Methoden funktionieren in Excel 2010 und neueren Versionen.

2. Was soll ich tun, wenn meine Daten in einem anderen Format vorliegen?
Du kannst die Datumsformate in Excel anpassen, indem du die Zellen auswählst und mit einem Rechtsklick auf „Zellen formatieren“ gehst. Wähle das gewünschte Datumsformat aus.

3. Kann ich die Formel auch für andere Datenarten verwenden?
Ja, du kannst die ZÄHLENWENNS-Formel auch auf andere Datenarten anwenden, indem du die Kriterien entsprechend anpasst.

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