Abfrage_über_mehrere_Tabellenblätter
17.08.2017 11:37:43
Hendrik
Robert hat mir gestern schon toll geholfen. Natürlich ist mir jetzt noch was zusätzliches eingefallen, wo ich natürlich auch direkt stümperhaft dran gescheitert bin :-D
Woran ich gerade scheitere:
Mit Robertss Lösung ist es möglich, das Tabellenblatt2 auf seine Spalte N nach allem, was im Februar liegt (01.02.2017-28.02.2017), zu durchsuchen.
Bei Treffer wird die entsprechende Zeile in das Tabellenblatt23 ("Versendungen") kopiert.
Anschließend wird die Anzahl der Treffer noch gezählt.
Nun wäre es toll, genau diese Abfrage nicht nur in Tabellenblatt2, sondern in den Tabellenblättern2 bis Tabellenblatt13 durchzuführen und weiterhin alle Treffer in Tabellenblatt23 zu kopieren inklusive Zählung.
Folgendes habe ich begonnen, aber das funktioniert natürlich nicht :-D
Fette Zeilen sind die von mir zu Roberts Lösung hinzugefügte Zeilen, damit ihr wisst, wo die Stümperei beginnt :)
Unten habe ich nochmal den ganzen Code hingeschrieben, für den Fall dass da etwas steht, was ihr braucht, um mir zu helfen, und ich eventuell übersehen habe mit zu bennen.
1)Aktuelle Frage
Sub FebruarVersendet()
Dim Zeile As Long
Dim ZeileMax As Long
Dim n As Long
Dim AnzahlGeplant
Dim WS_Count As Integer
Dim WS_CountMax As Integer
Dim i As Integer
WS_CountMax = 13
For i = 2 To WS_CountMax
Sheets(2).Select
'With Tabelle2 (Aus voriger Lösung, habe ich einfach nur dringelassen)
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 Cells(1, 1) = i
Next i
With Sheets("Versendungen")
.Range("T5") = AnzahlGeplant
End With
End Sub
2)Lösung der gestrigen Frage:
Sub JanuarVersendet()
Dim Zeile As Long
Dim ZeileMax As Long
Dim n As Long
Dim AnzahlGeplant As Long, AnzahlFrüher As Long, AnzahlSpäter As Long
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:=Sheets("Versendungen").Rows(n)
n = n + 1
AnzahlSpäter = AnzahlSpäter + 1
End If
Next Zeile
For Zeile = 2 To ZeileMax
If .Cells(Zeile, 14).Value "*" _
Then
.Rows(Zeile).Copy Destination:=Sheets("Versendungen").Rows(n)
n = n + 1
AnzahlFrüher = AnzahlFrüher + 1
End If
Next Zeile
End With
With Sheets("Versendungen")
.Range("R4") = "Monat"
.Range("R5") = "Januar"
.Range("S4") = "Alle Versendungen von Themenspeicher Januar"
.Range("T4") = "Davon Versendungen im Februar"
.Range("U4") = "Davon Versendungen später als Februar"
.Range("V4") = "Davon Versendungen früher als Februar"
.Range("S5") = AnzahlGeplant + AnzahlFrüher + AnzahlSpäter
.Range("T5") = AnzahlGeplant
.Range("U5") = AnzahlSpäter
.Range("V5") = AnzahlFrüher
End With
End Sub
Vielen Dank vorab für eure Hilfe! :)
Viele Grüße,
Hendrik