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

Tabelle in VBA ansprechen

Tabelle in VBA ansprechen
Niko
Hallo zusammen,
im Projektexplorer werden die Tabellen mit Tabelle1 usw. angezeigt und dahinter steht in Klammern der individuelle Blattname in Klammern - z.B. (Fach 1).
Im Code beziehe ich mich normalerweise mit Worksheets ("Fach 1")... auf diese Tabelle.
Ich möchte nun den Blattnamen variabel gestalten und mich im Code auf den Tabellennamen 'Tabelle1' beziehen. Dabei erhalte ich allerdings die Meldung 'Index außerhalb des gültigen Bereichs' angezeigt.
Wie muss der Code lauten wenn ich mich auf den Namen 'Tabelle1' beziehen will?
Vielen Dank für eure Mühe und schönen Tag.
Gruß
Niko
AW: Tabelle in VBA ansprechen
03.04.2012 09:30:28
ChrisL
Hi Niko
Diese Bezeichnung wird durch die Reihenfolge der Tabellen bestimmt (ein Verschieben ändert die Nummer). Somit kannst du direkt die Nummer ansprechen.
Worksheets(1)
Worksheets(2)
usw.
cu
Chris
vielen Dank für deinen Tipp (owT)
03.04.2012 09:57:40
Niko
Hi
Falsch
03.04.2012 11:02:14
Rudi
Hallo,
Tabelle1 bleibt immer Tabelle1, egal an welcher Position sich das Blatt befindet.
Die Liste ist alphabetisch nach Codenamen.
Die Worksheets mit ihrem Index anzusprechen halte ich nicht für sinnvoll.
Gruß
Rudi
teilweise falsch :)
03.04.2012 11:06:16
ChrisL
Hi Rudi
Habe eben deine Antwort gelesen und du hast natürlich recht. Mit Codename unabhängig von Reihenfolge zu arbeiten ist eindeutig die besser Lösung.
Wenn ich aber den Codename nicht verändere (Default) und z.B. Tabelle1 auf Platz 3 schiebe, dann ändert sich bei mir der Codename auf Tabelle3, während die Tabellenbezeichnung weiterhin Tabelle1 ist. Daher meine Schlussfolgerung :)
Danke für die Ergänzung und Gruss
Chris
Anzeige
AW: teilweise falsch :)
03.04.2012 11:15:53
Rudi
Hallo,
dann ändert sich bei mir der Codename auf Tabelle3,
bei mir nicht. Wäre auch fatal.
Gruß
Rudi
AW: teilweise falsch :)
03.04.2012 11:35:55
ChrisL
Hi Rudi
Ich öffne eine neue Mappe (3 Tabellenblätter Standard). Verschiebe Tabelle1 auf Platz 3, dann zeigt der VBA Editor:
Tabelle1 (Tabelle2)
Tabelle2 (Tabelle3)
Tabelle3 (Tabelle1)
Version Excel 2003
Gruss
Chris
AW: teilweise falsch :)
03.04.2012 12:14:06
Reinhard
Hallo Chris,
in XL 2000:
Userbild
Gruß
Reinhard
genauso in 2007 owT
03.04.2012 12:16:36
Rudi
Bei mir nicht
03.04.2012 12:19:41
Reinhard
Hallo Rudi, Chris,
in XL 2007:
Userbild
Gruß
Reinhard
Anzeige
nicht in meinem 2007
03.04.2012 12:36:55
Rudi
Hallo,
wie schon gesagt: Ein derartiges Verhalten wäre fatal.
Der 1.4. ist doch schon vorbei!
Gruß
Rudi
Alle haben Recht :-)
03.04.2012 13:03:29
Reinhard
Hallo Rudi,
ich schließe in XL 2007 alle Mappen und den Editor, in der Schnellstartleiste auf das Symbol für neu.
Nun Rechtsklick auf "tabelle1", Verschieben wählen dann "ans Ende stellen".
Nun den Editor mit Alt+F11.
Im Projektexplorer sieht man nun:
Tabelle1 (Tabelle2)
Tabelle2 (Tabelle3)
Tabelle3 (Tabelle1)
Wenn ich nur die Mappen schließe aber den Editor offen lassen, dann "Neu", wieder Tabelle1 verschiebe
ergibt sich im Editor:
Tabelle1 (Tabelle1)
Tabelle2 (Tabelle2)
Tabelle3 (Tabelle3)
Gruß
Reinhard
Anzeige
kann ich bestätigen, nicht gut ;-( oT.
03.04.2012 18:20:56
Tino
AW: kann ich bestätigen, nicht gut ;-( oT.
03.04.2012 18:42:50
Reinhard
Hallo Tino,
danke dir.
In XL2007 ist der "Fehler" reprozudierbar. Also XL2007 beenden, Neu starten und dann wie beschrieben
vorgehen. Immer das Gleiche. Je nachdem ob der Editor geschlossen ist oder nicht wenn ich da verschiebe
so gibt es unterschiedliche Reihenfolgen/Zuweisungen im Editor.
In XL2000 passiert das nicht, da passiert das was Rudi sagt, egal was ich mit dem Editor mache
während ich verschiebe.
Hast du die Vollversion von Office 2007?
Ich nehme an Rudi hat die. Ich habe nur Office 2007 Home und Student, gekauft bei dem Blöd-Markt.
Vielleicht liegt es daran?
Andererseits hat ja ChrisL auch das Problem mit seinem XL2003.
Und "nicht gut" ist das in der Tat :-(
Wer Code codiert der auf Fremdrechnern laufen soll und der im Code die Tabellencodenamen benutzt
hat ein echtes Problem.
Deshalb Frage noch offen.
Gruß
Reinhard
Anzeige
AW: kann ich bestätigen, nicht gut ;-( oT.
03.04.2012 19:02:05
Tino
Hallo,
privat habe ich auch nur die Home und Student.
Habe jetzt aber mal etwas Code in ein Modul gepackt und diesen die Tabelle1 zugewiesen,
jetzt passt die Zuweisung, wahrscheinlich also nur solange kein Code enthalten ist, also halb so schlimm. ;-)
Sub Test()
Tabelle1.Cells(1, 1).Value = Now
End Sub
Gruß Tino
AW: kann ich bestätigen, nicht gut ;-( oT.
03.04.2012 19:35:35
Reinhard
Hallo Tino,
"privat" klingt sehr gut :-)
Ich deute das so daß du in der Firma Vollversionen hast.
Wenn du so nett bist und das daran testest kann man je nachdem die H&S Version als Fehlergrund ausschließen.
"wahrscheinlich" klingt nicht ganz so gut, ist halt nicht 1000 ‰ig für mich :-(
Gruß
Reinhard
Anzeige
...und warum legt ihr den internen TabNamen ...
03.04.2012 19:28:00
Luc:-?
…nicht selbst fest, Leute?
Dann ändert sich der 1. nicht mehr und ist 2. auch eindeutig.
Gruß Luc :-?
AW: ...und warum legt ihr den internen TabNamen ...
03.04.2012 19:40:13
Reinhard
Hallo Luc,
ich bin nicht der Schnellste, bislang war es nur Trockentraining mit leeren Modulen.
Tino geht die Sache schon mit Makros an. Ich eile ihm nach *schlecht zu Fuß* :-))
Gruß
Reinhard
Vollversion
03.04.2012 20:04:45
Rudi
Hallo,
die Version hat imho nur was mit den Umfang des Office-Pakets zu tun. Die Funktion der Komponenten bleibt (außer 2010 Starter und die kann kein VBA)
Ich habs in der Firma getestet und da ist sicherlich kein H&S. Enterprise soviel ich weiß.
Gruß
Rudi
Anzeige
AW: Tabelle in VBA ansprechen
03.04.2012 11:03:48
Beverly
Hi Niko,
du kannst ein Tabellenblatt prinzipiell auch direkt mit dem Internen Namen ansprechen. Z.B. gibt die folgende Codezeile
MsgBox Tabelle1.Name

den Namen des Worksheets wieder, der auf dem Tabellenreiter steht (bzw. im VBA-Editor der in Klammern stehende Name) - also in deinem Fall "Fach 1". Der Vorteil dieser Variante ist, dass du die Reihenfolge der Tabellenblätter beliebig verändern kannst - im Gegensatz zu Chris' Vorschlag - ohne dass sich dann möglicherweise auf das falsche Tabellenblatt bezogen wird.


Anzeige
vielen Dank für den Tipp - alles bestens (owT)
03.04.2012 15:45:52
Niko
Hi
ohne Worksheets
03.04.2012 10:56:41
Rudi
Hallo,
was du da siehst sind die Codenamen der Tabellen. Die kannst du einfach so verwenden.
Ich würde sie aber individuell anpassen. z.B.wsFach01
wsFach01.Range("A1")="x"
Vorteil: Weder die Namen der Blätter noch die Reihenfolge spielen eine Rolle.
Gruß
Rudi
funktioniert einwandfrei - vielen Dank (owT)
03.04.2012 15:41:55
Niko
Hi

28 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige