Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
1800to1804
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

Sheets(x)

Sheets(x)
20.12.2020 12:07:54
Thomas
Guten Tag,
ich kann mir etwas wieder einmal nicht selber erklären und habe einfach mal experimentiert, komme aber trotzdem nicht weiter.
Ich kann einen Code schreiben, egal ob in einem Modul oder direkt auf der der Tabelle (ohne Modul)
Zum Beispiel das:
Sheets(1).Range("A1").ClearContents
Wenn ich dieses Makro ausführe dann funktioniert das einwandfrei und habe übrigens diesen Sommer schon ein größeres Projekt gemacht das ich mit dieser Sheets- Methode programmiert habe.
Nun habe ich vor kurzem eine Tabelle Arbeitsmappe bearbeitet die ich vor einem Jahr aufgebaut habe. Dort habe ich mit der Methode Tabelle1.irgendwas gearbeitet und nicht mit Sheets(1).irgendwas.
Jetzt bei diversen Ergänzungen in dieser Arbeitsmappe habe ich dann mit der Methode Sheets(1).irgendwas gearbeitet weil mir das auf den 1. Blich mit der Tabelle1 gar nicht aufgefallen ist.
Das Problem nun ist das, dass es nicht funktioniert, ich muss all diese Sheets Angaben ersetzen mit Tabellen Angabe.
Wie kann man sich das erklären dass es mit Sheets Angabe funktioniert wenn ich eine neue Arbeitsmappe erstelle und bei bereits erstellen Arbeitsmappen wo aber die Versionen die gleichen sind dann nicht funktioniert?
Für eine Erklärung bin ich sehr dankbar.

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Syntax Codename - Blattindex
20.12.2020 13:15:31
GerdL
Hallo Thomas,
aktiviere ein betreffendes Tabellenblatt.
Lass die beiden Codezeilen laufen.
Msgbox ActiveSheet.Codename
Msgbox ActieSheet.Index
Gruß Gerd
AW: Syntax Codename - Blattindex
20.12.2020 13:36:12
Thomas
Hallo Gerd,
danke für deine Antwort.
Das gibt mir aus auf welchem Tabellen Blatt und welchem Tabellenindex ich mich befinde. Soweit so gut aber das ist nicht das Problem.
Für mich ist es absolut unverständlich wieso jetzt plötzlich Tabelle1 nicht mehr gleich Sheets(1) sein soll?
Nur mal zum Verständnis, ich kann zum Beispiel das Tabellenblatt1 (was den Index 1 besitzt) "Max" benennen und es ansprechen mit Tabelle1. Ich nennen es aber grundsätzlich immer Sheets(1) was sonst immer ohne Problem benutzt werden konnte um das Tabellenblatt Index 1 anzusprechen. Es geht jetzt einfach plötzlich nicht mehr. Und warum? Wenn ich eine neue Mappe öffne und mit Sheets(1) arbeite dann geht es aber.
Anzeige
AW: Syntax Codename - Blattindex
20.12.2020 18:10:35
ralf_b
weil in einer neuen Datei das Sheet(1) auch die "Tabelle1" ist. Sobald du die Sheets umsortierst oder eines einfügst, verändert sich die Reihenfolge.
dann ist z.b. Sheets(1) die "Tabelle2"
AW: Syntax Codename - Blattindex
20.12.2020 19:17:44
Thomas
Hallo Ralf,
Habe das gerad einmal simuliert.
Also das Sheets(1) ist solange das Sheets(1) bis man unten im Reiter die Tabellen untereinander mischt. Wenn man das tut, oder auch mal eine Tabellenblatt löscht und wieder welche hinzufügt ist der Index nicht mehr der Reihe nach. Ist das wirklich so?
denn dann habe ich ein kapitaler Überlegungsfehler gemacht, ich bin bis jetzt davon ausgegangen dass die Sheets() Zifferbezeichnung statisch ist und unverwechselbar bleibt. Dabei ist das nur der Fall wenn ich das Tabellenblatt selber benenne und diesen Namen benutze für den Bezug, oder was ich auch noch herausgefunden habe, dass die aufgeführte Angabe Tabelle1, Tabelle2 usw. statisch bleiben aber keines Wegs die Bezeichnung Sheets(Ziffer).
Eigentlich meinte ich dass der Begriff Sheets und die Ziffer in Klammer (1) usw. nur aus dem Englischen begriff abgeleitet und das die Tabelle1 usw. überblendet.
Dem ist aber nicht so?
Anzeige
AW: Syntax Codename - Blattindex
20.12.2020 19:38:23
Thomas
Oder anders gesehen und gesagt, die Angabe mit Sheets(1) usw. ist sehr wohl statisch. Die 1 bleibt an erster Stelle im Reiterregister und die 2 an zweiter Stelle usw. Nur wenn ich die Tabelle an erster Stelle eins nach hinten verschiebe ist diese automatisch nicht mehr Sheets(1) sondern wird zu Sheets(2) Und eine andere Tabelle nimmt dann Automatisch den Platz von Sheets(1) ein.
Ja wenn man das mal gemerkt und begriffen hat kann man ja auch besser damit umgehen. Die Bezugsangabe mit Sheets() ist daher nur zu bevorzugen wenn es im Prozess für etwas bestimmtes gefordert wird. Ansonsten besser nicht so.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige