Hallo.
Ich habe von Reinhard ein Makro bekommen, welches super funktioniert (In Tabelle 3 steht in der Spalte a éin fortlaufendes Datum.)
IN Zelle b1 schreibe ich, welches Monat ich benötige (zb 4 für April)
Das Makro copiert mir jetzt die Zeilen von 1. April bis zum letzten in die Tabelle 2.
Soweit so gut.
Nur möchte ich das Makro zu meinen Programm hinzufügen, und da pasiert gar nichts.
Ich kann das Makro zwar starten (es läuft auch ab)
aber es copiert mir keine Zeilen in Tabelle2.
ja, es löscht mir nicht einmal die Tabelle 2.
Woran kann das liegen?
Sub Monatübernehmen()
Sheets(„Tabelle3“).Select
With Worksheets(„Tabelle3“)
M = Month(„1.“ & .Range(„b1“).Value & „.2007“)
While Month(.Cells(Von + 1, 1)) M
Von = Von + 1
If Von = .Rows.Count Then
MsgBox „Monat nicht vorhanden“
Exit Sub
End If
Wend
Von = Von + 1
Bis = Von
While (Month(.Cells(Bis + 1, 1)) = M) And (Bis „“)
Bis = Bis + 1
Wend
Tabelle2.UsedRange.ClearContents
.Rows(Von & „:“ & Bis).Copy Tabelle2.[A1]
End With
End Sub
Hallo Krisam,
möglicherweise stimmen die Namen der Tabellen nicht ganz mit denen im Makro überein, so dass Aktionen in einer anderen Tabelle stattfindne, oder das Makro bricht ab weil es Tabellen nicht findet.
Tabelle2 im Makro ist die Tabelle in der Arbeitsmappe, die den internen Excel-Namen Tabelle2 hat, diesen findest im VBA-Editor im Projektexplorer. Dies muss nicht die Tabelle mit der Registerbezeichnung „Tabelle2“ sein und auch nicht unbedingt die Tabelle an der 2. Registerposition. Du muss im Makro entweder Worksheets(2) verwenden wenn es immer das 2. Tabellenregister sein soll oder auch den Namen der Tabelle.
Gruß
Franz
Schaut dann etwa so aus:
Sub Monatübernehmen()
Dim wks3 As Worksheet, wks2 As Worksheet
Set wks3 = Worksheets("Tabelle3")
Set wks2 = Worksheets(2) ' oder falls Name immer gleich auch wks2 = Worksheets("Tabelle2")
wks3.Activate
With wks3
M = Month("1." & .Range("b1").Value & ".2007")
While Month(.Cells(Von + 1, 1)) M
Von = Von + 1
If Von = .Rows.Count Then
MsgBox "Monat nicht vorhanden"
Exit Sub
End If
Wend
Von = Von + 1
Bis = Von
While (Month(.Cells(Bis + 1, 1)) = M) And (Bis "")
Bis = Bis + 1
Wend
wks2.UsedRange.ClearContents
.Rows(Von & ":" & Bis).Copy wks2.Range("A1")
End With
End Sub
Hallo.
Zuerst einmal Danke. Es war so wie du geschrieben hast (Tabelle2 war unter anderem Namen gespeichert)
Jetzt noch ein Problem:
Ich bekomme immer eine fehlermeldung:
Laufzeitfehler 13 , Typen unverträglich.
Und immer bei dieser Zeile:
M = month(„1.“ & .Range(„S1“).Value & „.2007“)
Wieso?
Wenn ich das Prg in einem leeren Programm starte und ausführen lasse, dann funktioniert es, aber ich brauche es in meinem Programm, und da bekomme ich immer diese Fehlermeldung
Sub Monatübernehmen()
Dim Arbeitername As String
Sheets(„Tabelle1“).Select
Arbeitername = Range(„I48“).Value
Dim von As Long
Sheets(Arbeitername).Select
'eee = Range(„a2“).Value
With Worksheets(Arbeitername)
M = month(„1.“ & .Range(„S1“).Value & „.2007“)
While month(.Cells(von + 1, 1)) M
von = von + 1
If von = .Rows.Count Then
MsgBox „Monat nicht vorhanden“
Exit Sub
End If
Wend
von = von + 1
Bis = von
’ Ohne And „“ läuft es bei M=12 bis > 65537 ???
While (month(.Cells(Bis + 1, 1)) = M) And (Bis „“)
Bis = Bis + 1
Wend
Tabelle6.UsedRange.ClearContents
.Rows(von & „:“ & Bis).Copy Tabelle6.[A1]
End With
End Sub
Hallo Krisam,
Jetzt noch ein Problem:
Ich bekomme immer eine fehlermeldung:
Laufzeitfehler 13 , Typen unverträglich.
Und immer bei dieser Zeile:
M = month(„1.“ & .Range(„S1“).Value & „.2007“)
Wieso?
Wenn ich das Prg in einem leeren Programm starte und ausführen
lasse, dann funktioniert es, aber ich brauche es in meinem
Programm, und da bekomme ich immer diese Fehlermeldung
Ich nehem an, in der Zelle „S1“ steht der Monat als Langtest (Januar, Februar, März. usw.) oder als Kurzzeichen(Jan, Feb, Mrz, usw.).
Die Schreibweise der Monatsnamen muss mit der Sprache unter der Windows-Systemeinstellung bzw. des Betriebssystems übereinstimmen. Die Verwendung Englischer Monatsnamen bei Betriebssystem-Einstellung Deutsch führt mit der Formel zu einem Typfehler, da z.B. März/March bzw. Mrz/Mar ggf. nicht korrrekt interpretiert werden können.
Gruß
Franz