Spalte nach Vorhandensein eines Monats prüfen
#1
Hallo zusammen,
ich benötige eure Hilfe, da ich im Netz leider nicht fündig werde, und meine VBA kenntnisse sind mehr als dürftig.

Ich habe eine xls mit einer Spalte C, in der in jeder zeile ein datum drin steht. Können auch an die 4000 zeilen sein. Die Datums sind durcheinander.
Jetzt möchte ich ein Makro, dass schaut ob in der Spalte C ein Datum im Januar vorkommt, wenn ja dann... Wenn ein Datum im Februar vorkommt dann... unsw. bis Monat Dezember.
Die anzahl etc. interessiert nicht, nur ob. Und es soll bei fund nicht abbrechen sondern alle monate durchlaufen.
Ich hoffe das ist verständlich.

Ich konnte leider nichts passendes finden, bzw so umschreiben dass es für meine Zwecke funktioniert.

Ich hoffe ihr könnt mir helfen.

Besten Dank
Antworten Top
#2
Hallo,

ich weiss zwar nicht was dann mit der Abfrage nach den Monaten passieren soll, - im Prinzip brauchst Du dafür keine VBA:

Z. B. für den Monat Mai für die gesamte Spalte A:

Code:
{=WENN((MONAT(A:A=5))=1;"irgendetwas";"etwasanderes")}

Die Formel muss mit STRG SHIFT und ENTER abgeschlossen werden (Matrixformel).

Grüße

Norbert
Antworten Top
#3
@NobX: Monat(A:A=5)=1
Hast du das mal getestet?
Antworten Top
#4
Hallo,
vielen Dank erstmal. Ich benötige es per VBA, weil je nachdem welche Monate enthalten sind werden unterschiedliche Buttons im Userform Ausgeblendet und dementsprechend unterschiedliche Makros ausgeführt..
Eine Excel Formel nützt mir hier leider nichts.
Antworten Top
#5
Hallo Steve1da,

ja, hab ich getestet und hat scheinbar funktioniert. 
Teste ich morgen nochmal. 
Grüße
Norbert
Antworten Top
#6
In Excel365 erzeugt das einen Überlauf über die ganzen 1048576 Zeilen.
Bei Januar, also Monat 1, erzeugt deine Formel übrigens auch "irgendwas", auch wenn kein Datum im Januar in den Zellen steht.
Antworten Top
#7
Hallo @steve1da,

hast Recht. - Habe zwar gestern in meiner Test Datei im Formeleditor die einzelnen "wahr" und "falsch" - Einträge gesehen, hat aber in der Nachstellung nicht mehr so funkiioniert, wie ich das gestern gesehen habe. Was aber funktioniert ist diese Matrix - Formel:

Code:
{=WENN(MONAT(A:A)=5;"Ja";"Nein")}
oder z. B.

{=WENN(MONAT(A2:A500)=5;"Ja";"Nein")}

oder Monatsangabe in z. B. Zelle C1:

{=WENN(MONAT(A2:A500)=$C$1;"Ja";"Nein")}

Die Werte werden entsprechend dem Ergebnis in der Spalte der Formel ausgegeben. Anstelle "ja", "nein" könnten natürlich andere Berechnungen stehen oder die Spalte kann ausgeblendet werden und zur Auswertung des Vorhandenseins des gesuchten Monats verwendet werden.
Formel immer mit STRG / ALT / ENTER abschließen.

Grüße

Norbert
Antworten Top
#8
Hallo Dini,

so in der Art vielleicht?

Code:
Sub aaa()
  Dim bolM(1 To 12) As Boolean
  Dim i As Long
  Dim varD As Variant
  varD = Range(Cells(2, 3), Cells(Rows.Count, 3).End(xlUp)).Value
  For i = 1 To UBound(varD)
    If IsDate(varD(i, 1)) Then
      bolM(Month(varD(i, 1))) = True
    End If
  Next i
  For i = 1 To 12
    If bolM(i) Then
      MsgBox Format(DateSerial(2, i, 2), "mmmm") & " kommt vor."
    End If
  Next i
End Sub

Als Formel z.B. auch so:

=TEXT(DATUM(1;ZEILE(A1);1);"MMM")&": "&WAHL(1+(SUMMENPRODUKT((MONAT($C$1:$C$9999)=ZEILE(A1))*1;($C$1:$C$9999<>"")*1)<>0);"Nein";"Ja")

Gruß Uwe
Antworten Top
#9
Zitat:Formel immer mit STRG / ALT / ENTER abschließen.


Strg Shift Enter
Und nochmal: bei leeren Zellen wird für den Januar auch Ja ausgegeben.
Antworten Top
#10
Besten Dank Kuwer.

Funktioniert perfekt!!
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste