Blattnamen in VBA

Hallo Experten,

ich suche nach einer Möglichkeit, das umbenennen von Tabellenblattnamen zu verhindern.
Im VBA wird z.B. eine Tabelle aufgerufen ( Sheets(„Tabelle3“).Select ).

Wenn man nun den Blattnamen ändert funktioniert das Makro logischerweise nicht mehr.

Wie erreiche ich in VBA das ich immer die Tabelle3 anspreche auch wenn sich der Name
geändert hat.

Habe schon mit Worksheet statt Sheet herumprobiert, aber bisher ohne Erfolg.

Wer kann hier helfen?

Dankende Grüße Peter

Hallo Experten,

ich suche nach einer Möglichkeit, das umbenennen von
Tabellenblattnamen zu verhindern.
Im VBA wird z.B. eine Tabelle aufgerufen (
Sheets(„Tabelle3“).Select ).

Die dritte Tabelle im Workbook ist
ActiveWorkbook.Worksheets(3)
oder
Sheets(3).Select
BTW. Warum muss die Tabelle selektieren?

Gruß HW
ppt-user.de

Die dritte Tabelle im Workbook ist
ActiveWorkbook.Worksheets(3)
oder
Sheets(3).Select

wenn die Sheets vertauscht werden, dann wird aber immernoch die dritte Tabelle selektiert auch wenn es eine andere ist…

BTW. Warum muss die Tabelle selektieren?

warum nicht?
Manchmal muss man das einfach machen…

Grüsse
Munich

Hallo,

meine Güte kann das einfach sein ( schäm ).
Danke (*) dafür.

Gruß Peter

BTW. Warum muss die Tabelle selektieren?

Ich arbeite immer nur mit einem Blatt, während alle anderen
verschwinden.

Hallo Peter Bednarz.

Schau Dir bitte mal das Eigenschaften-Fenster von Deiner „Tabelle 3“ in VBA an. Dort findest Du zwei Eigenschaften:

  1. (Name)
    Diese Eigenschaft gibt den Namen der Tabelle in VBA zurück

  2. Name
    Diese Eigenschaft gibt den vom Benutzer veränderbaren Namen zurück.

In Deinem VBA-Code kannst Du direkt Tabelle 3 ansprechen, z.B. Tabelle3.Cells…
Dieser Name kann vom Benutzer von Excel aus nicht verändert werden und Du bist unabhängig von der Verwendung der Indizes.

MfG
Carsten

1 „Gefällt mir“

Rückfrage
funktioniert das auch wenn ich bei mir auf Deutsch entwickle und dann jemand auf Englisch öffnet…?

Nicht, dass Excel dann ein „table2“ erwartet wo ich „Tabelle2“ stehen habe…?

Grüsse und *
Munich

Hallo Munich.

Es wird funktionieren.

Es verhält sich so, dass Du den Namen in der „(Name)“-Eigenschaft selbst festlegen kannst. Wenn Deine Tabelle momentan „Tabelle2“ heisst, dann ist das der Standard-Name, den VBA dafür festgelegt hat. Wenn Du den Namen als VBA-Programmierer nun ändern willst, dann kannst Du das selbsverständlich tun.
Ein englisches Excel wird für die (Name)-Eigenschaft keinen anderen Wert erwarten.

Aber Achtung, es gibt einige Sachen, die befolgt werden müssen, wenn Du die (Name)-Eigenschaft ändern willst:

  1. Verwende keine Umlaute, die gibt es natürlich im Englischen nicht.
  2. Du musst dich an die Bedingungen für die Namensvergabe halten: Eine Name darf nicht mit einer Zahl beginnen und nicht mit einem Zeichen.
    3.Wenn Du die (Name)-Eigenschaft geändert hast, musst Du natürlich auch den Code anpassen.

Vielleicht noch eine Erleichterung: Wenn Du Dich im VBA-Code-Fenster von Deiner Tabelle2 befindest, dann kannst Du den Code verkürzen. Z.B.:

Tabelle2.Cells(1, 1) = „Bla“

ist dann dasselbe wie

Cells(1, 1) = „Bla“

weil Du dich ja im Code-Fenster von Tabelle2 befindest.

Ich hoffe, ich konnte Dir helfen.

Viele Grüße
Carsten Mehnert.

1 „Gefällt mir“