Microsoft Excel

Herbers Excel/VBA-Archiv

Grundwissen VBA | Herbers Excel-Forum


Betrifft: Grundwissen VBA von: Uwe Siebers
Geschrieben am: 13.11.2009 13:02:49

Hallo zusammen,

für die Profis hier im Forum sicher eine unverständliche, da ganz bestimmt einfache Frage... Aber, zugegeben, mich plagt immer noch mein kaum vorhandenes Grundwissen. Nun denn:

Vielfach finde ich hier im Forum in zahlreichen Codes die Anweisung

With ThisWorkbook.Sheets("Name des Tabellenblattes")

Selber ist mir die inzwischen durchaus geläufig (Stolz!!!) Aber, genau da schließt sich meine Frage an:

Diese Anweisung verweist nunmal auf nur eben ein einziges Tabellenblatt. Mein Problem besteht aber darin, das es mitunter bis zu 50 Tabellenblätter (eines pro Mitarbeiter) sind, für die diese Anweisung(en) dann gelten (sollen)
Zum Überfluss käme ich ja nun auf die Idee, diese Anweisung(en) für die gesamte Arbeitsmappe gelten zu lassen (wie lautet denn blos wieder diese Anweisung???),

wäre da nicht dieses eine Blatt ("Zeitdaten"), was diese Anweisung nicht "braucht"... Tja...

Zudem sind`s nicht nur "mal eben" bis zu 50 Mitarbeiter in einer Datei, die betroffen sind, sondern insgesamt weit über 80 Dateien mit durchschnittlich 30 Tabellenblätter (eines pro Mitarbeiter)

Gemeinsam haben alle 80 Dateien, das pro Datei die Tabellenblätter einer Namensstruktur (in VBA) unterliegen. Angefangen von z.B. tb31100010 bis z.B. tb31100500.

Schreibe ich die obrige Anweisung mit z.B. With ThisWorkbook.Sheets("tb31100010") um, geht gar nix mehr. Die einzelne Anweisung pro Tabellenblatt (Mitarbeiter) zu kopieren führt zum "Stapelüberlauf"

Und nun? Irgendwie habe ich immer noch keine Vorstellung davon, wie ich mir dieses fehlende Grundwissen in Eigenregie aneignen kann. Die (zeitliche) Gelegenheit für Kurse, Kurse, Kurse, die fehlt einfach...

Für Hinweise wäre ich Euch seeehr dankbar.

Gruß

Uwe

  

Betrifft: Das hatte ich dir schon einmal beantwortet von: NoNet
Geschrieben am: 13.11.2009 13:37:44

Hallo Uwe,

Du erinnerst Dich sicherlich, dass ich Dir das schon einmal beantwortet habe :

https://www.herber.de/forum/archiv/1108to1112/t1111801.htm#1111982

Das Argument "keine (zeitliche) Gelegenheit" kann Dir niemand (hier im Forum) annehmen, da musst Du durch !
Und glaube mir : Keiner der Profis hier im Forum hat "Programmierung" (egal ob VBA oder andere Programmiersprache) "einfach mal so über Nacht" gelernt - dazu gehört einfach eine Menge Zeit zu investieren (je nachdem wie tief Du da einsteigen möchtest !).

In anderen Bereichen des Lebens ist das genauso : Besuche ein gutes Konzert mit vielen Musikern.
Glaubst Du, dass diese Musiker ohne viel Übung ihre Leistung bringen könnten ?
Oder nimm einen Arzt (keinen "Quacksalber") : Meinst Du, der hat nur 1 Woche lang "studiert" ? ;-)

Viel Erfolg, Gruß NoNet


  

Betrifft: AW: Grundwissen VBA von: David
Geschrieben am: 13.11.2009 13:41:27

Hallo Uwe,

Profi bin ich sicher nicht, aber so von Laie zu Laie:

Die Sheets sind intern in Excel auch durchnummeriert, somit kann man diese über eine Schleife ansprechen:

Sheets(1)...

Auch könnten man per

For Each ws in Worksheets
ws.???
Next

jedes Blatt ansprechen.
Wenn es ein oder mehrere bestimmte Blätter gibt, die dann nicht betroffen sein sollen, könnte man die so ausklammern:

If Not ...sheets(1).Name = "???" Then

Vielleicht hilft dir das ja schon weiter.

Gruß
David