Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1824to1828
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

Tabellenblatt direkt ansprechen

Tabellenblatt direkt ansprechen
14.04.2021 02:24:43
Klexy
Moin zusammen.
Gegeben ist eine Datei mit 3 Tabellenblättern: Tabelle1, Tabelle2, Tabelle3
Die Reiter der Tabellenblätter sind umbenannt: AAA, BBB, CCC
Das Blatt Tabelle1(AAA) wurde an die zweite Position geschoben.
Problem: der Klarname (AAA) und die Position (zweites Blatt von links) von Tabelle1 kann variieren und ist deshalb für mich nicht brauchbar.
Wie kann ich das Tabellenblatt Tabelle1 aus einer anderen Datei heraus direkt ansprechen,
ohne den Klarnamen zu kennen und ohne die Position zu kennen?
Sub Blatt_ansprechen()
Dim wbk As Workbook
Set wbk = Workbooks("AAA_BBB_CCC.xlsm")
wbk.Activate
wbk.Sheets(2).Activate  ' funktioniert, ist aber für mich nicht brauchbar
wbk.Worksheets(2).Activate  ' funktioniert, ist aber für mich nicht brauchbar
wbk.Sheets("AAA").Activate  ' funktioniert, ist aber für mich nicht brauchbar
wbk.Worksheets("AAA").Activate  ' funktioniert, ist aber für mich nicht brauchbar
Tabelle1.Activate  ' funktioniert nur bei Aufruf aus dieser Datei, nicht aus einer anderen
wbk.Tabelle1.Activate  ' funktioniert nicht
End Sub

SIehe auch angehängte Beispieldatei, wo das Makro auch hinterlegt ist: https://www.herber.de/bbs/user/145500.xlsm

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

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblatt direkt ansprechen
14.04.2021 05:26:02
Hajo_Zi
Select, Activate usw. ist in VBA zu 99,8% nicht notwendig.
Der Cursor ist kein Hund der überall rumgeführt werden muss.
Hinweise zu select usw. Hajo-Excel.de
Hinweise zu select usw. Online-Excel.de
Hinweise zu select usw. Online-Excel.de
Der Cursor ist kein Hund, der überall rum geführt werden muss.
Falls Link nicht ausgeführt wird:
1. Link kopieren
2. rechte Maustaste neues Fenter.
3. Umschaltstaste drücken und Klick auf den Link
4. STRG+ Link mit Maus aktivieren
Sheets("AAA").Activate
GrußformelHomepage
Anzeige
@Hajo: Erläuterung des Wesens einer Beispieldatei
14.04.2021 10:20:51
Klexy
DIes ist nur ein stark verkürzter Code, um das Kernproblem herauszukristallisieren.
Ich hatte noch überlegt, ob ich folgenden Satz drunter schreiben soll:
"Dies ist natürlich nur ein vereinfachtes, symbolisches Beispiel, bei dem mit "Activate" schnell, einfach und deutlich die gewünschte Ansprache des Tabellenblatts gezeigt werden soll. Also klärt mich bitte nicht darüber auf, wie böse Select ist. "
Dann hab ich mir gedacht, dass das wohl offensichtlich und damit überflüssig ist.
Hatte mich wohl getäuscht.
Sorry.
Deshalb hier nochmal ausdrücklich:
Dies ist natürlich nur ein vereinfachtes, symbolisches Beispiel, bei dem mit "Activate" schnell, einfach und deutlich die gewünschte Ansprache des Tabellenblatts zeigen soll. Also klärt mich bitte nicht darüber auf, wie böse Select ist.
So, und jetzt schau ich mir die restlichen Antworten an.
Anzeige
AW: Tabellenblatt direkt ansprechen
14.04.2021 07:46:51
ralf_b
wenn du weist was auf dem Blatt steht, kannst du per Schleife über alle Blätter, die entsprechende Information auf dem Blatt abfragen und bei Treffer das Blatt referenzieren und die Schleife verlassen.
danke, aber hilft hier nicht.
14.04.2021 10:23:25
Klexy
Ich weiß gar nichts. Alles variabel. Ich weiß nur, dass es Tabelle1 sein muss.
AW: Tabellenblatt direkt ansprechen
14.04.2021 09:32:10
Herbert_Grom
Hallo,
oder du gibst dem Sheet einen Namen im VBA-Editor (mit F4, s. Bild)!

Servus
danke, aber das hilft mir nicht
14.04.2021 13:03:14
Klexy
Manuell ist keine Option und umbenennen auch nicht.
Und wenn sie umbenannt wäre, hätte ich immer noch das Problem, sie anzusprechen. Nur mit "Tab_DeinName" statt mit "Tabelle1".
Die Datei ist wie sie ist, kann von mir nicht geändert werden und soll in ihrem Blatt "Tabelle1" angesprochen werden.
Anzeige
AW: danke, aber das hilft mir nicht
14.04.2021 15:18:16
Luschi
Hallo Klexy,
bei mir klappt das so:

Sub Machmal()
Dim wbQ As Workbook, wsQ As Worksheet
Set wbQ = Workbooks("145412.xlsx")
For Each wsQ In wbQ.Worksheets
If wsQ.CodeName = "Tabelle1" Then
Exit For
End If
Next wsQ
If Not wsQ Is Nothing Then
MsgBox "Tab-Name  = " & wsQ.Name & vbCrLf & _
"Code-Name = " & wsQ.CodeName
Else
MsgBox "gewünschte Tabelle nicht vorhanden!"
End If
Set wsQ = Nothing
Set wbQ = Nothing
End Sub
Gruß von Luschi
aus klein-Paris
PS: Da man aber auch die 'CodeName-Property ändern kann, ist das also nicht 1005ig wasserdicht!
Anzeige
Danke, perfekt
14.04.2021 15:30:29
Klexy
.CodeName ist mir beim Googeln nicht über den Weg gelaufen.
.CodeName ist (in diesem Fall) safe. Da geht keiner ran.
Sub Blatt_ansprechen3()
Dim wbk As Workbook, Blatt As Worksheet
Set wbk = Workbooks("AAA_BBB_CCC.xlsm")
For Each Blatt In wbk.Worksheets
If Blatt.CodeName = "Tabelle1" Then
Blatt.Activate
Exit For
End If
Next Blatt
Set Blatt = Nothing
Set wbk = Nothing
End Sub

53 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige