Das ist mein erster Beitrag in einem Excel-Forum überhaupt.
Bitte entschuldigt, wenn ich bestimmte Regeln nicht einhalte! Einfach drauf hinweise, ich mach's dann nächstes mal besser :)
Zu meinem Problem:
Ich habe eine Excel-Date mit 12 Tabellenblättern, eins für jeden Monat.
In diesen Tabellenblättern werden Verbesserungsideen gesammelt und mit Datum versehen, wann sie weiterversendet wurden.
D.h.: Ideen kommen rein (Spalte E), werden geprüft, und dann weitergesendet (Spalte N).
Dies erfolgt immer um einen Monat versetzt, d.h. die Ideen, die im Januar eingegangen sind (Datum in Spalte E, z.B. 05.01.2017) werden erst im Februar versendet (Datum in Spalte N, z.B. 21.02.2017).
Mein Problem ist:
Manchmal dauert die Prüfung der Ideen länger
(werden also später als im folgenden Monat, hier also z.B. erst im März oder April) oder kürzer
(werden also früher als im folgenden Monat, hier also z.B. bereits im Januar) , bevor die Ideen weiterversendet werden.
Beispiel:
Tabelle Januar
Idee-Nr.____Spalte E_____Spalte N
123455 - 05.01.2017 - 25.02.2017
123456 - 05.01.2017 - 23.02.2017
654321 - 05.01.2017
123457 - 05.01.2017 - 12.02.2017
098765 - 05.01.2017
123458 - 05.01.2017 - 29.01.2017
123459 - 05.01.2017 - 03.03.2017
Wenn ich nun feststellen möchte: "Wieviele im Januar eingegangene Ideen wurden versendet?"
schaue ich in Spalte N und sehe da die Versendedaten.
Hier also: Von 7 eingegangenen Ideen wurden 5 versendet.
Von den 5 wurden 3 wie geplant im Folgemonat Februar, 1 zu früh im Januar und 1 zu spät im März versendet.
Meine Chefin möchte nun wissen, wie sich die 5 versendeten Maßnahmen der Tabelle Januar genau aufteilen.
Also auf die 3+1+1.
Danke bis hier hin schon mal für die Geduld!
In einem ersten Schritt wollte ich per Knopfdruck die Ideen, die die Prüfung überstanden haben und weiterversendet wurden, mir in ein anderes Tabellenblatt (Tabelle23) kopieren lassen.
Das habe ich geschafft, und sogar mit einer Auftrennung in "Im-Februar-Versndet" und "nicht-im-februar-versendet".
Mein Problem ist jetzt die Anzahlen zu zählen und in einer Zelle der Tabelle 23 (z.B. S5) darzustellen.
Also dass er die Anzahl der Ergebnisse der If-Schleife einfach nur zählt, hier im Beispiel also für die Ideen im Februar gab es ja drei Treffer, also eine 3.
Könnt ihr mir da bitte helfen?
Er schmeißt mir in der letzten Zeile gelb markiert den "Laufzeitfehler 13" raus.
Hier ist der unfertige Code, (ich weiß, gerade am Ende fehlen noch Abfragen. Ich komme aber leider schon bei der ersten Zählung nicht weiter).
Sub JanuarVersendet()
Dim Zeile As Long
Dim ZeileMax As Long
Dim Spalte As Long
Dim n As Long
Dim i As Long
Dim wksBlatt As Worksheet
Dim varArrC As Variant, varArrD As Variant, varArrM As Variant
Dim lngAnzahl As Double
Dim lngZahl As Double
Dim Ergebnis As Double
With Tabelle2
ZeileMax = .UsedRange.Rows.Count
n = 1
For Zeile = 2 To ZeileMax
If .Cells(Zeile, 14).Value >= CDate("01.02.2017") And .Cells(Zeile, 14).Value = CDate("01.03.2017") Then
.Rows(Zeile).Copy Destination:=Tabelle23.Rows(n)
n = n + 1
End If
Next Zeile
For Zeile = 2 To ZeileMax
If .Cells(Zeile, 14).Value "*" _
_
Then
.Rows(Zeile).Copy Destination:=Tabelle23.Rows(n)
n = n + 1
End If
Next Zeile
End With
Set wksBlatt = Tabelle23
varArrC = wksBlatt.Range("N1:N800").Value
varArrD = wksBlatt.Range("N1:N800").Value
varArrM = wksBlatt.Range("N1:N800").Value
For lngZahl = 1 To 800
If varArrC(lngZahl, 1) >= CDate("01.02.2017") Then
'If varArrD(lngZahl, 1)
Viele Grüße,
Hendrik