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

Index eines Blattes ermitteln (VBA)

Forumthread: Index eines Blattes ermitteln (VBA)

Index eines Blattes ermitteln (VBA)
03.12.2003 19:43:48
Ralf Junglas
Hallo,

wer kennt eine möglichst kompakte Art, vom Namen eines Worksheets auf
dessen Position in der Mappe zu schließen (das wievielte Blatt).
Bitte keine Vorschläge mit einer Schleife, in der der Name abgefragt wird.
Vielen Dank.

Grüße
Ralf Junglas
Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
suspekt !!...
03.12.2003 19:48:43
andreas e
Hallo Ralf,
wie soll das ganze funktionieren ?
Sieht für mich nach "Glaskugel" aus !
Mal flapsig : Sag mir deinen Namen und ich sag Dir wie du heisst ! "
Anders rum : sagst es mir nicht - na wie soll ich es erraten !
Gruß
Andreas E

http://www.skripteundaufgaben.de
viele kostenlose Downloads und Links zu EXCEL und mehr
http://www.fachforen.de
eine Linksammlung zu diversen fachforen
Anzeige
AW: suspekt !!...
03.12.2003 19:52:12
Nepumuk
Hallo Ralf,
ganz einfach:


Option Explicit
Public Sub test()
MsgBox Worksheets("Tabelle3").Index
End Sub



Code eingefügt mit: Excel Code Jeanie

Gruß
Nepumuk
Anzeige
@Nepumuk
03.12.2003 19:55:14
Michael
...einfach nur ...
hast du eigentlich auf alles in sachen excel eine antwort ??
spitze

cu Michael
AW: @Nepumuk
03.12.2003 19:59:05
Nepumuk
Hallo Michael,
nein, aber wenn ich noch 10 Jahre lerne dann könnte ich "fast" antworten.
Gruß
Nepumuk
AW: @Nepumuk *smile*
03.12.2003 20:23:20
NE
Hallo Nepumuk,

so nach dem Motto: ...er dachte er verstünde die Frauen, dann kam Excel ;-)

Ich geb Dir recht, Excel kann ein dermassen 'tiefgründiges Gewässer' sein ...

Aufrichtigen Respekt & nochmal thx für deine letzten Antworten (wenn auch nicht hier) ;-)

lg Nancy
Anzeige
bewundernd hochblick *blinzel*
03.12.2003 20:54:54
y
ähhh,
manche frage hätte ich ja auch beantworten können aber ...
1.) nicht so schnell
2.) nicht so ausgefeilt
3.) nicht so ... wie soll ich das ausdrücken... ich glaube "professionell" trifft es am Besten
weiter so
upps... und nicht übermütig werden :-)
bye y
nur nicht übertreiben
03.12.2003 21:34:37
Nepumuk
Hallo alle zusammen,
erst mal vielen Dank für die Blumen. Was mein Vorteil ist, ich schreibe seit 26 Jahren Computerprogramme in unterschiedlichen Sprachen und es ist einfach diese Erfahrung, die mich zu einem besseren Programmierer macht.
Ich habe hier aber auch schon mal Blödsinn geschrieben, weil ich irgendwie einen Knoten im Hirn hatte (man möge mir verzeihen).
VBA habe ich mir selbst angeeignet und 90% meines Wissens darüber, habe ich aus der Hilfe bezogen. Die ist nämlich gar nicht so schlecht, auch wenn ich mir einiges zusammenreimen musste. Der Rest stammt aus verschiedenen Foren, wo ich auf Lösungswege gestoßen bin, die ich vorher nicht kannte.
Wenn ich mir heute die Programm, die ich vor 10 Jahren geschrieben habe, ansehe, dann könnte ich mich kringeln vor lachen, über meinen damaligen Dilettantismus und ich weiß heute schon, das es mir in zehn Jahren mit den heute geschriebenen ebenso gehen wird. Programmieren ist eine permanente Entwicklung des Wissens und diese sollte, um geistig fit zu bleiben, Lebenslang weitergehen.
In diesem Sinne, arbeitet fleißig mit in den Foren, denn nur hier werdet ihr vor Probleme gestellt, die euch selbst niemals einfallen würden.
Herzlich
Nepumuk
Anzeige
Dein wort in Gotttes ohr ! ..
03.12.2003 22:53:25
andreas e
"In diesem Sinne, arbeitet fleißig mit in den Foren, denn nur hier werdet ihr vor Probleme gestellt, die euch selbst niemals einfallen würden"
da gibt es nix hinzu zu fügen !
gruß
andreas e
AW: Index eines Blattes ermitteln (VBA)
03.12.2003 19:50:49
Jochen
msgbox Sheets("Tabelle1").index

Gruß Jochen
echt genial ! und ich such meine Glaskugel ! oT
03.12.2003 19:53:39
andreas e
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Index eines Blattes ermitteln mit VBA


Schritt-für-Schritt-Anleitung

Um den Index eines Worksheets in Excel mithilfe von VBA zu ermitteln, kannst Du den folgenden Code verwenden:

Sub GetWorksheetIndex()
    MsgBox Worksheets("Tabelle3").Index
End Sub

In diesem Beispiel gibt der MsgBox-Befehl den Index des Arbeitsblatts "Tabelle3" zurück. Du kannst den Namen des Arbeitsblattes entsprechend anpassen.

Achte darauf, dass der Name exakt übereinstimmt, da VBA sonst einen Fehler ausgibt. Diese Methode ist effizient, da sie keine Schleifen benötigt und direkt den Index des gewünschten Worksheets zurückgibt.


Häufige Fehler und Lösungen

  1. Fehler: "Das angegebene Arbeitsblatt wurde nicht gefunden."

    • Lösung: Überprüfe den Namen des Arbeitsblattes auf Schreibfehler. Der Name muss genau so geschrieben werden, wie er in Excel angezeigt wird.
  2. Fehler: "Typkonflikt"

    • Lösung: Stelle sicher, dass Du die richtige Syntax für den Zugriff auf das Arbeitsblatt verwendest. Vermeide die Verwendung von Leerzeichen oder Sonderzeichen im Namen des Arbeitsblattes, es sei denn, Du umschließt den Namen in Anführungszeichen.
  3. Fehler: "Ungültiger Prozeduraufruf"

    • Lösung: Dies kann passieren, wenn das Arbeitsblatt in einer geschützten Arbeitsmappe ist. Stelle sicher, dass die Arbeitsmappe nicht geschützt ist oder dass Du die erforderlichen Berechtigungen hast.

Alternative Methoden

Eine alternative Methode zur Ermittlung des Index eines Arbeitsblattes besteht darin, die Index-Eigenschaft des Sheets-Objekts zu verwenden:

Sub GetSheetIndex()
    MsgBox Sheets("Tabelle1").Index
End Sub

Diese Methode funktioniert ähnlich wie die vorherige und ist nützlich, wenn Du mit mehreren Arbeitsblättern arbeitest.

Eine weitere Möglichkeit ist die Verwendung der WorksheetFunction.Index, um Werte aus einem bestimmten Bereich zu ermitteln, jedoch ist dies nicht direkt für die Ermittlung des Blatt-Indexes gedacht.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie Du den Blatt-Index in verschiedenen Situationen verwenden kannst:

  1. Index eines aktiven Arbeitsblatts ermitteln:

    Sub ActiveSheetIndex()
       MsgBox ActiveSheet.Index
    End Sub
  2. Alle Arbeitsblätter in einer Schleife durchlaufen und deren Indizes ausgeben:

    Sub ListAllSheetIndices()
       Dim ws As Worksheet
       For Each ws In ThisWorkbook.Worksheets
           MsgBox ws.Name & " hat den Index " & ws.Index
       Next ws
    End Sub

Diese Beispiele zeigen, wie Du den Index von Arbeitsblättern in unterschiedlichen Szenarien nutzen kannst, um Deine VBA-Programmierung effizienter zu gestalten.


Tipps für Profis

  • Verwende Variablen: Um den Code lesbarer zu machen, speichere den Index in einer Variablen, bevor Du ihn in einer MsgBox anzeigst.
  • Fehlerbehandlung: Implementiere On Error Resume Next, um Fehler abzufangen und eine benutzerfreundliche Fehlermeldung auszugeben.
  • Dokumentation: Kommentiere Deinen Code ausführlich, um die Wartbarkeit zu erhöhen, insbesondere wenn Du in großen Projekten arbeitest.
  • Verwende Option Explicit: Dadurch wird sichergestellt, dass alle Variablen deklariert sind, was Fehler beim Programmieren minimiert.

FAQ: Häufige Fragen

1. Wie kann ich den Index eines Arbeitsblatts in einer anderen Arbeitsmappe ermitteln?
Du kannst den Index eines Arbeitsblatts in einer anderen Arbeitsmappe ermitteln, indem Du das Workbook-Objekt referenzierst:

MsgBox Workbooks("andereArbeitsmappe.xlsx").Worksheets("Tabelle1").Index

2. Ist es möglich, den Index eines Arbeitsblatts zu ändern?
Ja, Du kannst den Index eines Arbeitsblatts ändern, indem Du das Arbeitsblatt an eine andere Position verschiebst:

Worksheets("Tabelle1").Move Before:=Worksheets(1)

Diese Zeile verschiebt "Tabelle1" an die erste Position in der Arbeitsmappe.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige