Ich hoffe auf Eure Hilfe zu einem VBA Problem. Habe schon ähnliche Einträge in anderen Foren gefunden, jedoch keine lösung, die bei mir funktioniert.
Problem ist folgendes:
Ich habe verschiedene Codes die einzeln einwandfrei funktionieren per call Befehl zusammen auf einen button gelegt.
Ein schrittweises durchgehen im VBA Editor via F8 funktioniert. Auch wenn in ich in den Abfragen, welche Makro1 aktualisiert, vorher manuell Daten lösche geht es.
Private Sub CommandButton4_Click()
Call Makro1 'aktualisiert alle Tabellenblätter und Abfragen über ActiveWorkbook.RefreshAll
Call Makro2 'Erstellt und benennt neue Tabellenblätter, kopiert Daten aus Vorlage in diese
End Sub
Nun ist es aber so, dass bei vorherigem manuellen löschen einiger Zellen der Abfragen (aus denen in Makro2 der Name für die neuen Tabellenblätter generiert wird), ein "Anwendungs- oder Objektdefinierter Fehler" bei der Benennung der Neuen Tabellenblätter auftritt.
Folglich vermute ich, dass Makro2 schon startet und die neuen Tabellenblätter benennt, während Makro1 noch beim refresh.all befehl ist.
Hier der Code:
Sub Makro1()
ActiveWorkbook.RefreshAll
End Sub
Sub Makro2()
Dim strName As String
Dim Anzahl As Byte
Dim i As Byte
Dim n As Byte
Dim ID As Byte
Sheets("NameNeueTabellenblätter").Select
ActiveSheet.Range("A2").Select
Range(Selection, Selection.End(xlDown)).Select
Anzahl = Selection.Rows.Count
n = 9
For i = 1 To Anzahl
Sheets.Add After:=Sheets(n)
n = n + 1
Next i
For i = 2 To Anzahl + 1
Sheets("NameNeueTabellenblätter").Select
ActiveSheet.Cells(i, 4).Select
strName = Left(ActiveCell.Value, 31)
Sheets(i + 8).Select
ActiveSheet.Name = strName
Next i
For i = 2 To Anzahl + 1
Sheets("Vorlage").Select
Cells.Select
Selection.Copy
Sheets(i + 8).Select
ActiveSheet.Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Next i
For i = 2 To Anzahl + 1
Sheets("NameNeueTabellenblätter").Select
ActiveSheet.Cells(i, 1).Select
ID = ActiveCell.Value
Sheets(i + 8).Select
ActiveSheet.Range("G3").Value = ID
Next i
End Sub
Kann das sein oder habe ich vielleicht einen anderen Mistbock irgendwo eingebaut?
Ich bin für jeden Lösungsvorschlag sehr sehr dankbar!
Viele Grüße, P.