Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1316to1320
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

Laufzeitfehler 1004 ActiveSheet.Name Array..

Laufzeitfehler 1004 ActiveSheet.Name Array..
05.06.2013 13:03:37
Philip
Hallo liebes Forum!
Habe folgenden Code:
Option Explicit
Sub Stellplatz()
Dim i As Integer
Dim intTab As Integer
Dim k As Long, n As Long
Dim L As Long
Dim P As Long
Const Blatt1 = "Saldo-Datenblatt"
Const Blatt2 = "Berechnung1"
Const Blatt3 = "Berechnung2"
Const Reihen As Integer = 3
i = MsgBox _
("Möchten Sie den Stellplatzplan erstellen?", _
1 + vbQuestion, "Stellplatzplan?")
If i = vbCancel Then Exit Sub
Application.ScreenUpdating = False
ActiveSheet.UsedRange.Cells.UnMerge
Rows("1:2").Delete Shift:=xlUp
For L = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
If Len(Cells(L, 1).Value) = 0 Then
Rows(L).Delete
End If
Next L
P = Cells.Find("*", searchdirection:=xlPrevious).Row
Range("P2:P" & P).FormulaR1C1 = "=RC[-1]*1"
Range("P:P").NumberFormat = "#,##0.00 [$€-1];[Red]-#,##0.00 [$€-1]"
For intTab = 0 To 1
Worksheets.Add
ActiveSheet.Name = Array(Blatt2, Blatt3)(i)
Next intTab
Sheets(Blatt1).Range("B:B,C:C,D:D,P:P").Copy Sheets(Blatt2).Cells(1, 1)
Sheets(Blatt1).Visible = False
Application.CutCopyMode = False
With Sheets(Blatt2)
.Columns("D:D").Sort Key1:=.Range("D1"), Order1:=xlAscending, _
Header:=xlYes, OrderCustom:=1, MatchCase:=False, _
Orientation:=xlSortColumns
For k = 2 To .Cells(Rows.Count, 1).End(xlUp).Row Step Reihen
.Cells(k, 1).Resize(Reihen, 4).Copy Sheets(Blatt3).Cells(5, n * 4 + 3)
n = n + 1
Next
End With
End Sub


Bei folgender Stelle wirft mir Excel einen Laufzeitfehler 1004 vor die Füße:
For intTab = 0 To 1
Worksheets.Add
ActiveSheet.Name = Array(Blatt2, Blatt3)(i)
Next intTab

Der Fehler lautet wie folgt:
"Kann einem Blatt nicht den gleichen Namen geben wie einem anderen Blatt, einer Objektbibliothek oder einer Arbeitsmappe, auf die Visual Basic Bezug nimmt."
Ich verstehs nicht ganz, der Befehl definiert doch nur die aktiven Blätter, oder?
Wäre super wenn ihr mir helfen könntet!
LG Philip

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler 1004 ActiveSheet.Name Array..
05.06.2013 13:16:11
Hajo_Zi
Hallo Philip,
es werden neue Tabellen erstellt und den werden Namen gegeben.

AW: Laufzeitfehler 1004 ActiveSheet.Name Array..
05.06.2013 14:11:12
Philip
Hallo Hajo,
Wenn ich versuche
For intTab = 0 To 1
Worksheets.Add
ActiveSheet.Name = Array(Blatt2, Blatt3)(i)
Next intTab
zu ändern, zum Beispiel statt (Blatt2, Blatt3) in (Berechnung1, Berechnung2) bekomme ich den selben Laufzeitfehler.
wo mache ich den Fehler?
LG Philip

AW: Laufzeitfehler 1004 ActiveSheet.Name Array..
05.06.2013 14:18:44
Hajo_Zi
Halo Philip,
das kann ich Dir nicht sagen so eine Array Bezeichnung "Array(Blatt2, Blatt3)(i)" habe ich noch nicht gesehen.
Gruß Hajo

Anzeige
habe ich noch nicht gesehen
05.06.2013 14:26:43
Rudi
Hallo Hajo,
is ja auch vom mir ;-)
Gruß
Rudi

AW: Laufzeitfehler 1004 ActiveSheet.Name Array..
05.06.2013 14:25:23
Rudi
Hallo,
(i) muss (intTab) heißen. Ist doch logisch!
     For intTab = 0 To 1
Worksheets.Add
ActiveSheet.Name = Array(Blatt2, Blatt3)(intTab)
Next intTab

Gruß
Rudi

AW: Laufzeitfehler 1004 ActiveSheet.Name Array..
05.06.2013 14:41:26
Philip
Rudi! Gott sei dank! :)
Super, funktioniert einwandfrei! Danke dir vielmals!!!
Eine klitzekleine allerletzte Frage habe ich noch an dich, wenn ich darf:

For k = 2 To .Cells(Rows.Count, 1).End(xlUp).Row Step Reihen
.Cells(k, 1).Resize(Reihen, 4).Copy Sheets(Blatt3).Cells(5, n * 4 + 3)
n = n + 1
Der Befehl is super, jetzt gehts nur darum diese Reihen ein wenig druckfreundlicher zu gestalten, also mehr oder weniger untereinander anzubringen - wenn du mir den code ein wenig erklären könntest schaff ichs vielleicht auch alleine :)
Lg Philip

Anzeige
AW: Laufzeitfehler 1004 ActiveSheet.Name Array..
05.06.2013 16:07:42
Rudi
Hallo,
was gibt's da zu erklären?
Es werden immer die Anzahl der Reihen, 4 Spalten nach Blatt3 Zeile5, Spalte n*4+3 kopiert.
Im ersten Durchlauf ist n=0 ergo Spalte 3, im 2. DL ist n=1 ergo 1*4+3=7 etc.
Gruß
Rudi

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige