Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1320to1324
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

Tabellen (Name) ansprechen

Tabellen (Name) ansprechen
16.07.2013 16:07:10
Andre´
Hallo alle zusammen,
ich möchte die Tabellenblätter von 2 bis 12 durchgehen
und dabei den (Name) ansprechen.
Userbild
Dim a As Long
Dim x As Long
For a = 2 To 12
'nachfolgend funktioniert, aber nur für die eine Tabelle:
x = Tabelle2.Cells(Rows.Count, 1).End(xlUp).Row
'durch die Schleife möchte ich die Zahl ranhängen
'folgendes habe ich probiert aber ohne Erfolg

x = Tabelle & a.Cells(Rows.Count, 1).End(xlUp).Row
'...
Wie muss das geschrieben werden.
Vielen Dank im Voraus!
MFG André

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellen (Name) ansprechen
16.07.2013 16:16:20
Hajo_Zi
Hallo André,
benutze
Worksheets (1)
mit Worksheets(1).CodeName bekommst Du den internen Namen raus.

AW: Tabellen (Name) ansprechen
16.07.2013 16:26:54
Andre´
Hallo Hajo,
erstmal Danke für die Meldung.
Wird aber eine Tabelle verschoben so funktioniert es nicht mehr.
MFG Andre

AW: Tabellen (Name) ansprechen
16.07.2013 16:29:10
Hajo_Zi
Hallo André,
das verstehe ich jetzt nicht.
Es ist immer die erste Tabelle in der Datei, auch wenn sie vorher an Position 20 war und jetzt an Position 1.
Gruß Hajo

Anzeige
AW: Tabellen (Name) ansprechen
16.07.2013 16:36:29
Hajo_Zi
Hallo André,
ich habe nochmal in mein Archiv geschaut.
Tabelle mit Codenamen ansprechen
dazu musst du das Array als Variant deklarieren und auf das Objekt mit einer Set - Anweisung verweisen. Du sprichst ja ein Objekt an und das darf kein String sein.
Public Sub test()
Dim x(1 To 2)
Set x(1) = Tabelle1
x(2) = "ABC"
x(1).Cells(1, 1) = x(2)
End Sub

Von Nepumuk
Gruß Hajo

Das stimmt nicht, ...
16.07.2013 16:53:16
Luc:-?
…André,
weil es hier um den internen CodeName der Tabelle geht. Der ändert sich nicht, wenn du es nicht selbst im VBE in den Blatt-Eigenschaften tust, was ohnehin zu empfehlen ist, wenn du mit mehreren Mappen gleichzeitig arbeiten und dabei die internen BlattNamen benutzen willst. Was sich beim Umsortieren ändert, ist der BlattIndex, aber das macht nichts, weil das, was du vorhast ohnehin nicht funktioniert, denn ein Name ist ein Objekt und kein Text. Also kannst du so mit BlattTiteln (Reiter bzw Lasche), aber nicht mit Namen verfahren. Das haben andere vor dir schon vergeblich versucht! :->
Das geht höchstens unter Zuhilfename der vbMethode/Fkt CallByName.
Gruß Luc :-?

Anzeige
ok, .. dann
16.07.2013 17:52:11
Andre´
gehe ich über alle Tabellenblätter und arbeite noch eine Wenn-Bedingung ein.
Nochmals vielen Dank für die Beiträge!
MFG André

AW: Tabellen (Name) ansprechen
16.07.2013 21:25:20
Gerd
Hallo André!
For Each X In ThisWorkbook.Worksheets
Select Case Mid(X.CodeName, 8)
Case 2 To 12
MsgBox "Codename: " & X.CodeName & " Blattname: " & X.Name & " letzteZeile: " & X.Cells(X.Rows. _
Count, 1).End(xlUp).Row
End Select
Next
Gruß Gerd

Vielen lieben Dank _Gerd, schön...
16.07.2013 23:01:49
Andre´
das es eine Lösung gibt, es funktioniert wie gewünscht :-))
MFG André

Mit den CodeNames eines meiner Projekte würde ...
17.07.2013 03:38:32
Luc:-?
…das aber kaum funktionieren, André (& Gerd), [ ;-) ]
und generell nur bei flfd Zählung (egal, ob Zahlen oder Buchstaben) ab immer der gleichen Stelle. Das muss aber nicht so sein und ist es hier nur, weil die StandardCodeNamen beibehalten wurden. Schon bei einer anderssprachigen XlInstallation könnte das versagen und bei Ansteuerung einer Mappe aus einem AddIn bzw der Personal.xlsm/b schon wg ThisWorkbook.
Sobald man mit mehreren Mappen gleichzeitig arbeitet, wird das und meine Umbenennungsempfehlung akut.
Im Moment besticht Gerds Lösung aber durch eine gewisse Eleganz und zeigt außerdem einen - auch etwas anders als üblich eingesetzten (u.einsetzbaren) - Vorteil von Select Case-Konstrukten (in anderem Zusammenhang hatte ich das gelegentl auch so gemacht). ;-)
Gruß Luc :-?

Anzeige
AW: CodeNames in deinem Projekte ...
17.07.2013 20:16:51
Gerd
Hi Luc,
mein Vorschlag war eben für die Konstellation des Fragestellers gedacht.
Es hat hier bestimmt keiner etwas dagegen, falls du deine CallByName-Lösung (mit Klassemodul?) zeigst.
Andere Standard-Codenamen (wie Sheet12, Hoja88 etc.) wären indes mit geringfügiger Anpassung des SelectCase in meiner kleinen Prozedur auswertbar.
Gruß Gerd

Ich schrieb ja, ist OK, nur, dass er die ...
18.07.2013 00:03:39
Luc:-?
CodeNames so belässt, Gerd,
ist weniger OK. Wird er aber noch irgendwann merken… ;-)
Was CallByName betrifft – das hatte ich nur erwähnt, weil hierbei der Name eines untergeordneten Objekts einem übergeordneten als Text nachgestellt wdn kann, um so seine Eigenschaften auszulesen bzw zu ändern. Das wäre dann die prinzipiell einzige Möglichkeit für so etwas! Hier dürfte das aber kaum hilfreich sein, da die InternNamen singulär zu sein (deshalb habe ich das Obere auch geschrieben) und deshalb kein übergeordnetes Objekt zu kennen scheinen (jedenfalls habe ich noch keins entdeckt). Aber darum ging's mir ja auch nicht, sondern eher um's Anwendungsprinzip.
Dagg hast du natürlich einen pragmatischen Ansatz verfolgt, der bei unveränderten Standard-InternNamen (wie hier) ja auch fktioniert.
Übrigens konnte man weiland bei WordStar, das, was André tun wollte, problemlos in den Dot-Kommandos machen. ;-)
Gruß Luc :-?
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige