Sub Datum_und_Werte_C_Q_kopieren()
Dim bis As Integer, m As String, monat As Date, von As Integer, z As Integer
m = InputBox("Eingabe von Monat und Jahr " & vbCrLf & "in der Form 01.2009 | Januar 2009 | Jan 2009", _
"Eingabe des Monats", CStr(Month(Date)) & "." & CStr(Year(Date)))
monat = DateValue("01." & m)
' Von welcher Zeile bis zu welcher Zeile kopieren?
von = 0
bis = 0
For z = 6 To ThisWorkbook.Worksheets("Tabelle1").Cells(Rows.Count, 2).End(xlUp).Row
If ThisWorkbook.Worksheets("Tabelle1").Cells(z, 2).Value >= monat Then
von = z
monat = DateAdd("m", 1, monat)
Do
z = z + 1
Loop Until ThisWorkbook.Worksheets("Tabelle1").Cells(z, 2).Value >= monat
bis = z - 1
Exit For
End If
Next z
' Daten B[von]:Q[bis] in Tabelle "MMJJ" kopieren
If (5 < von) And (von < bis) Then
If ThisWorkbook.Worksheets("MMJJ").Cells(1, 2).Value = "" Then
z = 0
Else
z = ThisWorkbook.Worksheets("MMJJ").Cells(Rows.Count, 2).End(xlUp).Row
End If
ThisWorkbook.Worksheets("Tabelle1").Range("B" & CStr(von) & ":Q" & CStr(bis)).Copy
' eine Leerzeile Zwischenraum lassen
ThisWorkbook.Worksheets("MMJJ").Range("B" & CStr(z + 2)).PasteSpecial Paste:=xlValues, Operation:=xlNone
' direkt unter vorhandene Daten ohne Zwischenraum kopieren
'ThisWorkbook.Worksheets("MMJJ").Range("B" & CStr(z + 1)).PasteSpecial Paste:=xlValues, Operation:=xlNone
Application.CutCopyMode = False
'ThisWorkbook.Worksheets("MMJJ").Select
'ThisWorkbook.Worksheets("MMJJ").Range("A1").Activate
'ThisWorkbook.Worksheets("Tabelle1").Select
ThisWorkbook.Worksheets("Tabelle1").Range("A1").Activate
Else
MsgBox "Kein Zeitbereich gefunden, es wird nichts kopiert."
End If
End Sub If ThisWorkbook.Worksheets("MMJJ").Cells(1, 2).Value = "" ThenSub Datum_und_Werte_C_Q_kopieren()
Dim bisZ As Integer, m As String, monat As Date, nachZ As Integer, vonZ As Integer, z As Integer
Dim nachTbl As String
m = InputBox("Eingabe von Monat und Jahr " & vbCrLf & "in der Form 01.2009 | Januar 2009 | Jan 2009", _
"Eingabe des Monats", CStr(Month(Date)) & "." & CStr(Year(Date)))
monat = DateValue("01." & m)
' In welche Tabelle "MMJJ" kopieren?
nachTbl = CStr(Month(monat)) & Right(CStr(Year(monat)), 2)
' von welcher Zeile bis zu welcher Zeile kopieren?
vonZ = 0
bisZ = ThisWorkbook.Worksheets("Tabelle1").Cells(Rows.Count, 2).End(xlUp).Row
For z = 6 To ThisWorkbook.Worksheets("Tabelle1").Cells(Rows.Count, 2).End(xlUp).Row
If ThisWorkbook.Worksheets("Tabelle1").Cells(z, 2).Value >= monat Then
vonZ = z
monat = DateAdd("m", 1, monat)
Do
z = z + 1
Loop Until ThisWorkbook.Worksheets("Tabelle1").Cells(z, 2).Value >= monat Or z > bisZ
bisZ = z - 1
Exit For
End If
Next z
' Daten B[vonZ]:Q[bisZ] in Tabelle "MMJJ" kopieren
If (5 < vonZ) And (vonZ < bisZ) Then
z = ThisWorkbook.Worksheets(nachTbl).Cells(Rows.Count, 2).End(xlUp).Row
If z = 1 And ThisWorkbook.Worksheets(nachTbl).Cells(1, 2).Value = "" Then z = 0
ThisWorkbook.Worksheets("Tabelle1").Range("B" & CStr(vonZ) & ":Q" & CStr(bisZ)).Copy
' eine Leerzeile Zwischenraum lassen
ThisWorkbook.Worksheets(nachTbl).Range("B" & CStr(z + 2)).PasteSpecial Paste:=xlValues, Operation:=xlNone
' direkt unter vorhandene Daten ohne Zwischenraum kopieren
'ThisWorkbook.Worksheets(nachTbl).Range("B" & CStr(z + 1)).PasteSpecial Paste:=xlValues, Operation:=xlNone
Application.CutCopyMode = False
ThisWorkbook.Worksheets(nachTbl).Select
ThisWorkbook.Worksheets(nachTbl).Range("A1").Activate
ThisWorkbook.Worksheets("Tabelle1").Select
ThisWorkbook.Worksheets("Tabelle1").Range("A1").Activate
Else
MsgBox "Kein Zeitbereich gefunden, es wird nichts kopiert."
End If
End Sub
Einen Monat addieren?
dvdh 20.05.2008 - 52 Hits - 1 Antwort
Excel: Nur letzte 100 Zeilen auswählen
DasWasserWiesel 08.01.2009 - 100 Hits - 1 Antwort
VBA Excel Alle Zeilen mit gleichem Datum (Monat) markieren und kopieren
Wetterigel 29.03.2009 - 869 Hits - 3 Antworten
Werte abhängig vom Datum auswählen
biggx 25.07.2009 - 194 Hits - 7 Antworten
Datumsbereich auswählen und entsprechende Datensätze kopieren
felixso 05.08.2009 - 243 Hits - 7 Antworten