Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1380to1384
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Problem mit countIf und Datum

Problem mit countIf und Datum
16.09.2014 02:05:55
reefgirl81
Liebe Mitglieder,
ich habe vor kurzem mit VBA begonnen. Ich muss dazu sagen, dass ich bereits seit Jahren in C# und Java entwickle. Ich weiß, nun aber trotzdem nicht mehr weiter.
Ich habe mir bereits sehr viel Hilfe von euch geholt, indem ich alte Forumsbeiträge durchstöbert habe, aber leider...
Ich weiß, dass die Frage bzgl. der WorksheetFunction.CountIf bereits öfters gestellt wurde und habe diese Beiträge bereits studiert und ich komme auch meinen Fehler nicht drauf.
Es geht um eine kleine Teilfunktion meines Programms. Ich habe in einer Spalte Range("A4:A" & lastRowData) lauter Daaten (formatiert als Datum kurz) gespeichert habe. Das mittels countIf, möchte ich herausfinden, ob es Daten gibt, welche größer als bspw. der 30.06.2014 sind. Die betreffenden Codezeilen sehen wie folgt aus:
Dim toDate As Date
Dim countIfs As Double
Dim rangeDates As range
Dim lastRowData As Integer ' ist die letzte Zeile in meinem Arbeitsblatt
toDate = Format("30.06.2014", "dd.mm.yyyy")
Set rangeDate = ActiveWorkbook.Sheets("Daten").range("A4:A" & lastRowData)
countIfs = WorksheetFunction.CountIf(rangeDates, ">" & toDate)

Nun das suspekte. Die Variable countIfs sollte das Ergebnis 307 zurückliefern, da ich 307 Daten in der Range habe, welche alle größer als der 30.06.2014 sind. Das komische ist, dass countIfs, beim durchsteppen aber den Wert 2 erhält, was genau zwei Datumsangaben entspricht, an denen der Tag der 31. ist.
Was mache ich falsch... komme wirklich schon den ganzen Tag nicht weiter und das witzige ist, dass ich die countIf-Funktion bereits mehrmals in meinem Projekt angewendet habe, nur ohne ",..."-Operatoren.
Ich würde mich wirklich riesig freuen, wenn Ihr mir weiterhelfen könntet

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

Betreff
Datum
Anwender
Anzeige
AW: Problem mit countIf und Datum
16.09.2014 05:05:58
Luschi
Hallo reefgirl81,
zwei kleine Änderungen sind erforderlich:
- Dim toDate As String
- toDate = Format("30.06.2014", "M\/d\/yyyy")
In Vba ist eben alles amerikanisch und gerade bei der Datumssuche wird durch den Programmierer viel zu viel deutsch gedacht. In der Tabellenansicht ist das Datum zwar nationalisiert/regionalisiert, aber im Innersten doch amerikanisch gespeichert.
Gruß von Luschi
aus klein-Paris

AW: Problem mit countIf und Datum
16.09.2014 17:20:42
reefgirl81
Hallo Luschi,
danke vielmals für deine rasche Antwort... mit so einer Geschwindigkeit habe ich nicht gerechnet.
Ich habe deinen Vorschlag übernommen, jedoch funktoniert es immer nocht nicht. Das Ergebnis ist 0 obwohl es 307 sein sollte.
Eigentlich will ich wissen, wieviele Feedbackbögen innerhalb einer angegebenen Zeitspanne ausgefüllt wurden. Deshalb frage ich mit dem ersten countIf ab, ob es Daten gibt die kleiner als das Startdatum sind und subtrahiere diese von der Variable numberOfFB. Die zweite countIf sollte das Ergebnis zurückliefern, wieviele nach dem Endedatum enthalten sind. Schlussendlich sollte die Variable numberOfFB die Anzahl der innerhalb in dieser Zeitspanne ausgefüllten Feedbackbögen ergeben.
Ich weiß, dass der Weg etwas kompliziert ist, aber mit countIfs hat gar nichts funktioniert und deshalb bin ich auf diesen Weg gekommen.
Die im Code unterhalb enthaltenen Variablen aktDatFrom und aktDatTo sind vom Typ Date im Format "dd.mm.yyyy"

Dim countIfs As Double
Dim numberOfFB As Integer ' Anzahl der gesamten Feedbackbögen/Daten
Dim fromDate As String
Dim rangeDate As range
Dim toDate As String
Set rangeDate = ActiveWorkbook.Sheets("Daten").range("A4:A" & lastRowData)


fromDate = Format(aktDatFrom, "M\/d\/yyyy")
toDate = Format(aktDatTo, "M\/d\/yyyy") ' Format("30.06.2014", "M\/d\/yyyy")
numberOfFB = lastRowData - 3 ' da die ersten drei Zeilen im Arbeitsblatt die Ü _
berschriften
enthalten


countIfs = WorksheetFunction.CountIf(rangeDate, "" & toDate)
numberOfFB = numberOfFB - countIfs
Würde mich über weitere Hilfe freuen. Danke schonmal im voraus

Anzeige
AW: Problem mit countIf und Datum
16.09.2014 18:32:57
Luschi
Hallo reefgirl81,
hier mal ein Beispiel von mir. Die Datumswerte in Spalte 'A' können sortiert oder unsortiert ermittelt werden. Einige Datumswerte entsprechen nicht dem Standardformat - und funktioniert.
https://www.herber.de/bbs/user/92668.xlsm
Gruß von Luschi
aus klein-Paris

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige