Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1768to1772
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Makro funktioinert nicht mehr

VBA Makro funktioinert nicht mehr
08.07.2020 20:00:55
Dirk
Liebe Excel Profis,
ich habe mir gestern mit Hilfe dieser wunderbaren herber Seite einen VBA Code gebastelt, mit dem ich eine Vorlage (Tabellenblatt) erfolgreich mehrfach kopieren konnte und die neuen Tabellenblätter die in einer Liste eingetragenen Fussballvereine als Namen vergab.
Heute wollte ich daran weiter arbeiten, aber ich bekomme nur noch Laufzeitfehler.
Option Explicit
Sub tabneu()
Dim n As Byte
Dim nummer As Byte
Dim variable1 As String
Dim variable2 As Byte
Dim hilf As String
Dim ersatzname As String
Dim j As Byte
For n = 5 To 10
nummer = 0
variable2 = 0
variable1 = False
 Sheets("Vorlage").Select

Bei der letzten, fett markierten, Zeile kommt die Laufzeitmeldung
Mircrosoft Visual Basic Fenster
Laufzeitfehler '-2417319767 (80028029)
Automatisierungsfehler
Ungültige Vorreferenz oder Referenz zu unkomiliertem Typ.

Sheets("Vorlage").Copy After:=Sheets(Sheets.Count)
Sheets("Mannschaften im Spielbetrieb").Select
ersatzname = Range("B" & n).Text
hilf = ersatzname
Sheets("Vorlage (2)").Select
For j = 1 To n
If Sheets(n + 3 - j).Name = hilf Then
nummer = nummer + 1
hilf = ersatzname & nummer
End If
Next j
Sheets("Vorlage (2)").Range("b9") = Sheets("Mannschaften im Spielbetrieb").Range("c" & n). _
Text
Sheets("Vorlage (2)").Range("b10") = Sheets("Mannschaften im Spielbetrieb").Range("d" & n). _
Text
Sheets("Vorlage (2)").Range("b11") = Sheets("Mannschaften im Spielbetrieb").Range("e" & n). _
Text
Sheets("Vorlage (2)").Range("b12") = Sheets("Mannschaften im Spielbetrieb").Range("f" & n). _
Text
Next n
End Sub

29
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Makro funktioinert nicht mehr
08.07.2020 20:06:31
onur
Lass einfach weg - völlig überflüssig.
AW: VBA Makro funktioinert nicht mehr
08.07.2020 20:10:30
Dirk
Habe die Zeile weggelassen, der Fehler bleibt :(
AW: VBA Makro funktioinert nicht mehr
08.07.2020 20:11:58
onur
Wie kann denn der Fehler bleiben, wenn genau diese Zeile (wie du sagst) den Fehler verursacht?
AW: VBA Makro funktioinert nicht mehr
08.07.2020 20:16:56
Dirk
Sheets("Vorlage").Copy After:=Sheets(Sheets.Count)
Nun wird diese Zeile gelb markiert und als Laufzeitfehler angezeigt
AW: VBA Makro funktioinert nicht mehr
08.07.2020 20:18:11
onur
Gibt es überhaupt noch ein Blatt namens "Vorlage" ?
AW: VBA Makro funktioinert nicht mehr
08.07.2020 20:24:12
Dirk
Das Blatt "Vorlage" gibt es.
Gestern hat das ganz ja auc heinwandfrei funktioniert.
Heute nun plötzlich nicht mehr.
AW: VBA Makro funktioinert nicht mehr
08.07.2020 20:16:14
ralf_b
Dim variable1 As String
variable1 = False --- das ist ein String oder was?
AW: VBA Makro funktioinert nicht mehr
08.07.2020 20:28:03
Dirk
Ich habe nochmal alles bereinigt und nicht beötigte Variablen rausgelöscht.
Leider bricht er immer in der Zeile
Sheets("Vorlage").Copy After:=Sheets(Sheets.Count)

das ganze mit einem Laufzeitfehler ab.
Option Explicit
Sub tabneu()
Dim n As Byte
Dim nummer As Byte
Dim hilf As String
Dim ersatzname As String
Dim j As Byte
Dim strPfad As String
For n = 5 To 5
nummer = 0
Sheets("Vorlage").Copy After:=Sheets(Sheets.Count)
Sheets("Mannschaften im Spielbetrieb").Select
ersatzname = Range("B" & n).Text
hilf = ersatzname
Sheets("Vorlage (2)").Select
For j = 1 To n
If Sheets(n + 3 - j).Name = hilf Then
nummer = nummer + 1
hilf = ersatzname & nummer
End If
Next j
Sheets("Vorlage (2)").Range("b9") = Sheets("Mannschaften im Spielbetrieb").Range("c" & n). _
Text
Sheets("Vorlage (2)").Range("b10") = Sheets("Mannschaften im Spielbetrieb").Range("d" & n). _
Text
Sheets("Vorlage (2)").Range("b11") = Sheets("Mannschaften im Spielbetrieb").Range("e" & n). _
Text
Sheets("Vorlage (2)").Range("b12") = Sheets("Mannschaften im Spielbetrieb").Range("f" & n). _
Text
Sheets("Vorlage (2)").Range("b13") = Sheets("Mannschaften im Spielbetrieb").Range("g" & n). _
Text
Sheets("Vorlage (2)").Range("b14") = Sheets("Mannschaften im Spielbetrieb").Range("h" & n). _
Text
Sheets("Vorlage (2)").Range("b15") = Sheets("Mannschaften im Spielbetrieb").Range("i" & n). _
Text
Sheets("Vorlage (2)").Range("b16") = Sheets("Mannschaften im Spielbetrieb").Range("j" & n). _
Text
Sheets("Vorlage (2)").Range("b17") = Sheets("Mannschaften im Spielbetrieb").Range("k" & n). _
Text
Sheets("Vorlage (2)").Range("b18") = Sheets("Mannschaften im Spielbetrieb").Range("l" & n). _
Text
Sheets("Vorlage (2)").Range("b19") = Sheets("Mannschaften im Spielbetrieb").Range("m" & n). _
Text
Sheets("Vorlage (2)").Range("b20") = Sheets("Mannschaften im Spielbetrieb").Range("n" & n). _
Text
Sheets("Vorlage (2)").Range("b21") = Sheets("Mannschaften im Spielbetrieb").Range("o" & n). _
Text
Sheets("Vorlage (2)").Range("b21") = Sheets("Mannschaften im Spielbetrieb").Range("p" & n). _
Text
Sheets("Vorlage (2)").Range("b21") = Sheets("Mannschaften im Spielbetrieb").Range("q" & n). _
Text
Sheets("Vorlage (2)").Range("b21") = Sheets("Mannschaften im Spielbetrieb").Range("r" & n). _
Text
Sheets("Vorlage (2)").Range("b21") = Sheets("Mannschaften im Spielbetrieb").Range("s" & n). _
Text
Sheets("Vorlage (2)").Range("b21") = Sheets("Mannschaften im Spielbetrieb").Range("t" & n). _
Text
Sheets("Vorlage (2)").Range("b21") = Sheets("Mannschaften im Spielbetrieb").Range("u" & n). _
Text
Sheets("Vorlage (2)").Range("b21") = Sheets("Mannschaften im Spielbetrieb").Range("v" & n). _
Text
Sheets("Vorlage (2)").Range("b1") = Sheets("Mannschaften im Spielbetrieb").Range("b" & n). _
Text
Sheets("Vorlage (2)").Range("c1") = Sheets("Mannschaften im Spielbetrieb").Range("a" & n). _
Text
Sheets("Vorlage (2)").Name = hilf
Next n
End Sub

Anzeige
AW: VBA Makro funktioinert nicht mehr
08.07.2020 20:31:23
onur
poste die datei.
läuft astrein durch
08.07.2020 20:48:36
ralf_b
AW: läuft astrein durch
08.07.2020 20:53:08
Dirk
dir schonmal Danke für die Hilfe, dann scheint es an meinem Rechner zu liegen.
Ich nutze Microsoft 365 in der aktuellsten Version.
Daran dürfte es ja nicht liegen.
AW: läuft astrein durch
08.07.2020 20:56:48
onur
Am Rechner? Scherzkeks!
Wie rufst du das Makro überhaupt auf? Ist keinem Button oder sowas zugewiesen.
AW: läuft astrein durch
08.07.2020 20:57:39
Dirk
Aufruf über Schaltfläche "Datenblätter anlgen" im Tabelleblat "Mannschaften im Spielbetrieb"
Anzeige
AW: läuft astrein durch
08.07.2020 21:05:49
ralf_b
was ist deine aktive Mappe zum Zeitpunkt ?
AW: läuft astrein durch
08.07.2020 21:07:09
onur
Bei mir kommt ein Fehler bei
Sheets("Vorlage (2)").Name = hilf
.
Aber der Code ist so chaotisch, dass ich mich wundere, dass nicht noch viel mehr Fehler kommen (Tut es wahrscheinlich auch, sobald der erste Fehler behoben wird, kommt garantiert die nächste Meldung)
AW: läuft astrein durch
08.07.2020 21:09:44
Dirk
mich wundert nur, dass der Code eben noch bei ralf_b durchlief.
AW: läuft astrein durch
08.07.2020 21:11:05
onur
Beschreibe doch einfach mal genau, was dieses Makro machen soll.
AW: läuft astrein durch
08.07.2020 21:25:15
Dirk
Vom Tabellenblatt "Vorlage" soll eine Kopie angelegt, als letztes Tabellenblatt eingefügt und mit den Namen aus dem Tabellenblatt Mannschaften im Spielbetrieb" umbenannt werden.
Im Moment läuft die Schleife ja nur über den Verein in Zelle B2.
Habe dies so zum Testen eingestellt.
Die Anzahl der Vereinsnamen und somit anzulegenden Tabellenblätter sollen später automatisch erkannt und angelegt werden.
***
Weitere Pläne sind schon zum Teil umgesetzt und funktionieren auch.
Da ich diese aus der alten Datei übernehmen konnte, jedoch hatte ich damals alles händisch anlegen müssen und für jedes Tabellenblatt den VBA Code händisch ändern müssen. Und sowas geht besser un deinfacher und da versiche ich mich gerade dran.
Später sollen auf die Art dann für 72 Fussballvereine jeweils ein tabellenblat angelegt werden.
Nach der j Schleife befüllt er das jewieloige Tabellenblatt mit Werten aus der Grundübersicht.
Die Tabelleblätter Stammdaten werden regelmäßig aus zwei externen Tabellen durch Datenimport befüllt und die Daten in die Vereinsblätter übertragen.
Anzeige
AW: läuft astrein durch
08.07.2020 21:01:38
ralf_b
Sheets("Vorlage (2)").Name = hilf , jetzt bleibt er hier stehen. also mit deiner Namensvergabe stimmt was nicht.
was genau soll der code machen
For j = 1 To n
If Sheets(n + 3 - j).Name = hilf Then
nummer = nummer + 1
hilf = ersatzname & nummer
End If
Next j

AW: läuft astrein durch
08.07.2020 21:07:41
Dirk
hier fängt er ab, falls ein Name bereits vorhanden ist und setze dann eine Zahl dran.
AW: läuft astrein durch
08.07.2020 21:18:49
ralf_b
aber das geht nicht oft. dann fehler.
die erste schleife geht von 5 bis 5 was schon bissel komisch ist.
die zweite schleife geht nur bis 5 also nicht bis sheets.count um alle Blattnamen abzufragen.
Anzeige
AW: läuft astrein durch
08.07.2020 21:27:35
Dirk
die erste habe ich aus Testzwecken so niedrig gesetzt, später sollen alle Vereine ein eigenes Blatt bekommen, wenn die von 5 bis 10 läuft sind es ja 6 Vereine. Später werden die Anzahl der Vereine automatisch ermittelt und die Schleife läuft dann in der richtigen Anzahl.
AW: läuft astrein durch
09.07.2020 13:20:36
Dirk
ich schau mir das nachher zuhause an, auf der Arbeit kann ich nicht auf die Exceltabellen im Internet zugreifen.
AW: VBA Makro funktioinert nicht mehr
08.07.2020 20:50:47
Dirk
wieso läuft bei mir dann ein Laufzeitfehler auf?
Ich krieg hier gerade die Krise.
Anzeige
AW: VBA Makro funktioinert nicht mehr
09.07.2020 00:50:48
Werner
Hallo,
versuch mal das:
Public Sub aaa()
Dim i As Long
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
With Worksheets("Mannschaften im Spielbetrieb")
For i = 5 To .Cells(.Rows.Count, "B").End(xlUp).Row
Sheets("Vorlage").Copy after:=Sheets(Sheets.Count)
ActiveSheet.Name = .Cells(i, "B")
.Range(.Cells(i, "C"), .Cells(i, "V")).Copy
ActiveSheet.Range("B9").PasteSpecial Paste:=xlPasteValues, Transpose:=True
ActiveSheet.Range("B1") = .Cells(i, "B")
ActiveSheet.Range("C1") = .Cells(i, "A")
Next i
End With
Application.CutCopyMode = False
Application.Calculation = xlCalculationAutomatic
End Sub
Gruß Werner
Anzeige
AW: VBA Makro funktioinert nicht mehr
09.07.2020 13:13:34
Dirk
Hallo Werner,
Viele Dank, das funktioniert wunderbar.
Danke schön
Gerne u. Danke für die Rückmeldung. o.w.T.
09.07.2020 13:43:16
Werner

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige