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

mehrere Blätter per VBA auswählen

mehrere Blätter per VBA auswählen
21.06.2013 09:31:08
winnimom
Hallo Freaks,
ich möchte gerne per VBA mehrere Blätter auswählen (deren Name ich erstmal nicht kenne) und dann diese als pdf-Datei speichern. Z.Zt. habe ich folgenden code, der auch funktioniert, der aber noch nicht optimal ist, und zwar :
sheets(array(sheets(6),sheets(7),sheets(8))).select ...... und dann speichern.
ABER: da ich zukünftig unbestimmt viele Tabellenblätter auswählen möchte, bin ich an einer variablen Schreibweise interessiert - so z.B.
sheets(array(sheets(1 to 17)).select oder so ähnlich ?! So funktioniert's aber nicht. Hat einer nen Tip ?
Vielen Dank im Voraus

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: mehrere Blätter per VBA auswählen
21.06.2013 09:45:27
JACKD
So als Hilfestellung
Der Blattsammler ist dann dein Array was du ansprechen kannst =)
Sub sammeln()
Dim Blattsammler()
Dim i As Integer
For i = 0 To 1
ReDim Preserve Blattsammler(i)
Blattsammler(i) = Worksheets(i + 1).Name
Next
End Sub
Grüße
Grüße

AW: mehrere Blätter per VBA auswählen
21.06.2013 09:48:50
winnimom
Hi JACKD
aber wie muss dann mein select-Befehl aussehen ?
Sorry - steh' wohl auf'm Schlauch - DANKE

AW: mehrere Blätter per VBA auswählen
21.06.2013 09:56:59
JACKD
Hallo Winnimon
Worksheets(Blattsammler).Select
Grüße

AW: mehrere Blätter per VBA auswählen
21.06.2013 10:05:25
winnimom
Sorry - mein code lautet (weil ich auch nicht alle Tabellenblätter auswählen möchte, sondern hier z.B. nur das 6. , 7. und 8.) - deren Name schreibe ich ich eine dimensionierte Variable - funktioniert ja auch "zu Fuß"
dim tbs(3) as variant
tbs(1)=sheets(6).name
tbs(2)=sheets(7).name
tbs(3)=sheets(8).name
wenn ich jetzt analog zu deinem Vorschlag schreibe: sheets(tbs).select
dann sagt Excel "Index ausserhalb des gültigen Bereichs" - und nu ?

Anzeige
AW: mehrere Blätter per VBA auswählen
21.06.2013 10:09:19
JACKD
Ich glaube (weiss es aber nicht 100%ig)
Das der Index Arrays immer bei "0" beginnt(im Gegensatz zu Worksheets, die bei 1 Anfangen)
(wie dir sicher auch in meinem Code aufgefallen ist, den du aufmerksam studiert hast ) :-D
Also musst du die indexwerte deines Arrays jeweils um 1 reduzieren
Grüße

AW: mehrere Blätter per VBA auswählen
21.06.2013 10:13:45
winnimom
das stimmt (und weiss ich auch) - aber wie schreibe ich im Aufruf, dass ich nur die Blätter 1 bis 3 haben=aussuchen will:
zu Fuß : sheets(array(tbs(1),tbs(2),tbs(3))).select funktioniert ja auch !!
aber verkürzt ? : sheets(tbs(k),k=1,3)).select das funktioniert nicht !!
sorry für die Mühe
winnimom

Anzeige
AW: mehrere Blätter per VBA auswählen
21.06.2013 10:18:09
JACKD
so..?!
Dim tbs(2) As Variant
tbs(0) = Sheets(1).Name
tbs(1) = Sheets(2).Name
tbs(2) = Sheets(3).Name
Worksheets(tbs).Select

AW: mehrere Blätter per VBA auswählen
21.06.2013 10:21:09
winnimom
so klappt's - DANKE
aber dann muss ich vorher schon beim dimensionieren wissen,
wie gross die Dimension sein muss sprich wieviele Tabellenblätter ich auswählen möchte !?!?!
oder wie kann ich das mit "redim" machen ?
winnimom

AW: mehrere Blätter per VBA auswählen
21.06.2013 10:28:59
JACKD
Ja wäre schon hilfreich wenn du das weißt...
Zumal wenn du es eh zu Fuß machen willst (dann gibst du halt erst die Blätter ein, und anschliessend den index deines Array)
anders, wenn du es über eine Schleife machst dann kannst du das wie im beispiel immer weiter erhöhen
Grüße

Anzeige
AW: mehrere Blätter per VBA auswählen
21.06.2013 10:35:25
winnimom
Hi JACKD
ich hab's mit "redim preserve" hingekriegt !!!
Vielen Dank für deine Geduld
winnimom

AW: mehrere Blätter per VBA auswählen
21.06.2013 10:39:18
JACKD
Nur interesse Halber ..
wie sieht dein Code jetzt aus?
Grüße

AW: mehrere Blätter per VBA auswählen
21.06.2013 10:47:34
winnimom
dim tbs() as variant, k as integer
dim ws as worksheet
redim tbs(200) (nur vorsorglich so groß)
dann kommt ne Schleife, die unvorhersehbar "lang" wird
k=0
for each ws in worksheets
tbs(k) = ws.Name
k 0 k + 1
next ws
und dann das Wichtigste (hatte ich erst vergessen)
k = k - 1 !!!!!!
und dann :
redim preserve tbs(k)
sheets(tbs).select
und das klappt dann !! bei mir werden die gewünschten 74 Tabellenblätter ausgewählt
Vielen Dank nochmals
winnimom

Anzeige
AW: mehrere Blätter per VBA auswählen
21.06.2013 11:31:05
JACKD
Jetzt verstehe ich dein Ansinnen =)
Sub sammeln()
Dim tbs()
Dim i As Integer
For i = 0 To Worksheets.Count - 1
ReDim Preserve tbs(i)
tbs(i) = Worksheets(i + 1).Name
Next
Worksheets(tbs).Select
End Sub
So gehts auch =)
Ich wusste nicht das du einfach alle auswählen willst =)
Grüße

AW: mehrere Blätter per VBA auswählen
21.06.2013 12:50:27
winnimom
Prima - Danke
aber alle Tabellenblätter möchte ich nicht aus wählen !!
In der Schleife frage ich noch nach bestimmten Namen ab.
Diese lasse ich dann aus - deshalb war's ein wenig komplizierter.
Aber jetzt passt's !!!

11 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige