Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Ermitteln Name der letzten Tabelle

Forumthread: Ermitteln Name der letzten Tabelle

Ermitteln Name der letzten Tabelle
08.12.2022 17:26:15
Dietrich
Hallo,
ich möchte den Namen der letzten Tabelle in einer Arbeitsmappe ermitteln und mache das mit folgendem Code:
i = .Sheets.Count
oldName = .Sheets(i).Name
Aber beim Debuggen bekomme ich bei der zweiten Zeile den Fehler: "Laufzeitfehler 40036".
Ich sehe aber keinen Fehler im Code. Die Mappe enthält 2 Tabellen.
Grüße - Dietrich
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ermitteln Name der letzten Tabelle
08.12.2022 17:49:05
onur
WO steht denn der Code? Wie lautet er vollständig?
AW: Ermitteln Name der letzten Tabelle
08.12.2022 19:03:32
Luschi
Hallo Dietrich,
bei mir funktioniert der Code so:

With ThisWorkbook
i = .Sheets.Count
oldName = .Sheets(i).Name
End With
Debug.Print oldName
Gruß von Luschi
aus klein-Paris
AW: Ermitteln Name der letzten Tabelle
09.12.2022 09:25:39
Dietrich
Ich habe mir gedacht, eine Abkürzung reicht...
Nun gut, hier der komplette Code:

Sub TabelleErstellen()
'neue Tabelle ergänzen
Dim i As Integer, newName, oldName As String
With ThisWorkbook
i = .Sheets.Count
oldName = .Sheets(i).Name
newName = CInt(oldName) + 1
.Sheets.Add After:=.Sheets(i)
ActiveSheet.Name = newName
.Sheets(i).Range("A1:O30").Copy Destination:=ActiveSheet.Range("A1")
ActiveWindow.Zoom = 130
ActiveSheet.Range("A1:O30").Select
Call LöschenWerte
.Sheets(i).Shapes("CommandButton1").Copy
With .Sheets(newName)
.Paste
.Shapes(.Shapes.Count).Top = .Range("N2").Top
.Shapes(.Shapes.Count).Left = .Range("N2").Left
End With
End With
End Sub
Die Zeile oldName = .Sheets(i).Name
wird beim Debuggen stets als fehlerhaft (gelb markiert) angezeigt.
Wenn ich testhalber in dieser Zeile statt i eine 1 eingebe, kommt der richtige Name der Tabelle. Gebe ich 2 ein kommt der Fehler, obwohl ein Name natürlich da ist.
Grüße- Dietrich
Anzeige
AW: Ermitteln Name der letzten Tabelle
09.12.2022 09:39:59
Steffen
Es könnte sein, dass der Fehler auftritt, weil Sie versuchen, auf ein Blatt zuzugreifen, das nicht existiert. In Excel beginnt die Indexierung der Blätter bei 1, nicht bei 0. Wenn die Mappe zwei Blätter enthält, wird das letzte Blatt mit dem Index 1 angesprochen, nicht mit dem Index 2.
Um den Fehler zu beheben, empfehle ich Ihnen, den Index des letzten Blatts auf 1 zu ändern, wie im folgenden Codebeispiel gezeigt:

i = .Sheets.Count
oldName = .Sheets(i-1).Name
Dadurch wird sichergestellt, dass der Code auf das letzte Blatt zugreift, das tatsächlich in der Mappe vorhanden ist.
Anzeige
so ein Unsinn
09.12.2022 15:10:09
Rudi
In Excel beginnt die Indexierung der Blätter bei 1
korrekt.
Wenn die Mappe zwei Blätter enthält, wird das letzte Blatt mit dem Index 1 angesprochen, nicht mit dem Index 2.
widerspricht der ersten Aussage.
Außerdem wird in diesem Forum nicht gesiezt.
Gruß
Rudi
Anzeige
AW: so ein Unsinn
09.12.2022 15:32:35
onur
Der schreibt hier leider öfters Quatsch bzw verfehlt das Thema..... Will sich wohl mit Anfängerkenntnissen auch mal als Helfer versuchen.
AW: Ermitteln Name der letzten Tabelle
09.12.2022 15:38:27
Rudi
Hallo,
ein wenig objektorientierter:

Sub TabelleErstellen()
'neue Tabelle ergänzen
Dim wksLast As Worksheet, wksNeu As Worksheet
With ThisWorkbook
Set wksLast = .Worksheets(.Worksheets.Count)
Set wksNeu = Worksheets.Add(After:=wksLast)
End With
wksNeu.Name = wksLast.Name + 1   'geht schief wenn es keine Zahl ist
'  oder
'  wksNeu.Name = wksNeu.Index
wksLast.Range("A1:O30").Copy Destination:=wksNeu.Range("A1")
ActiveWindow.Zoom = 130
'ActiveSheet.Range("A1:O30").Select
'Call LöschenWerte
wksLast.Shapes("CommandButton1").Copy
With wksNeu
.Paste
.Shapes(.Shapes.Count).Top = .Range("N2").Top
.Shapes(.Shapes.Count).Left = .Range("N2").Left
End With
End Sub
Gruß
Rudi
Anzeige
AW: Ermitteln Name der letzten Tabelle
10.12.2022 10:17:12
Dietrich
Vielen Dank Rudi, für den Tipp!!
Ich habe mein Programm entsprechend geändert und nun funktioniert die Sache!
Schönes Wochende!
Grüße- Dietrich
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige