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

Tabellennamen in Datenfeld einlesen

Tabellennamen in Datenfeld einlesen
28.09.2012 18:11:20
Charly
Hallo
Ich möchte alle Tabellennamen, der Tabellen größer Sheets("Formular").Index
in ein Datenfeld einlesen.
Wie stelle ich das an?
Könnt ihr mir bitte helfen.
MfG Charly

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Blattnamen in Datenfeld einlesen
28.09.2012 18:33:31
Erich
Hi,
probier mal

Option Explicit
Sub BlattNamen()
Dim ff As Long, ii As Long, strNamen() As String
ff = Sheets("Formular").Index
ReDim strNamen(1 To Sheets.Count - ff)
For ii = 1 To UBound(strNamen)
strNamen(ii) = Sheets(ii + ff).Name
Next ii
End Sub
Zur Bezeichnung: "Tabelle" ist in Excel etwas anderes als "Blatt" oder "Tabellenblatt".
In einem Tabellenblatt kann es viele Tabellen geben.
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

AW: Blattnamen in Datenfeld einlesen
28.09.2012 19:12:17
Charly
Hallo Erich
Erstmal Danke.
Schreibfehler, ich meinte Tabellenblattnamen(Sheets.Name)
Ich denke strNamen ist das Datenfeld, oder?
Was schreibe ich wenn ich die Sheets mit dem Namen aus strNamen kopieren möchte?
Kannst du mir nochmal helfen?
MfG Charly

Anzeige
Blätter kopieren
28.09.2012 19:35:11
Erich
Hi Charly,
brauchst du die Liste der Arbeitsblätter (=Tabellenblätter) nur, damit du die Blätter dann kopieren kannst?
Dann reicht die kurze untere Prozedur völlig aus.
Wenn du die Liste noch für andere Zwecke haben musst, dann die obere Version:

Option Explicit
Sub BlattNamen()
Dim ff As Long, ii As Long, strNamen() As String
' Liste in Array strNamen erstellen
ff = Worksheets("Formular").Index
ReDim strNamen(1 To Worksheets.Count - ff)
For ii = 1 To UBound(strNamen)
strNamen(ii) = Worksheets(ii + ff).Name
Next ii
' alle Blätter der Liste kopieren
For ii = 1 To UBound(strNamen)
MsgBox strNamen(ii)              ' zum Testen
'      Worksheets(strNamen(ii)).Copy   ' wohin?
Next ii
End Sub
Sub KopierenBlaetter()
Dim ii As Long
' alle Blätter mit Index größer als "Formular"-Index kopieren
For ii = Worksheets("Formular").Index + 1 To Worksheets.Count
MsgBox Worksheets(ii).Name    ' zum Testen
'      Worksheets(ii).Copy          ' wohin?
Next ii
End Sub
(Die Copy-Zeilen habe ich zum Testen auskommentiert, ich weiß eh nicht, wohin.)
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

Anzeige
Danke ...
28.09.2012 20:05:48
Charly
... Erich
Mein VBA Level stimmt nicht ganz, wohl eher "sehr bescheiden"
Meine Idee war, wenn ich die Blattnamen im Datenfeld habe, dass ich alle Sheets in einem Zug und
nicht mit ner Schleife kopieren kann. Selectieren geht ja auch ohne Schleife.
Sub BlattNamen()
Dim ff As Long, ii As Long
Dim varNamen
ff = Sheets("Formular").Index
ReDim varNamen(1 To Sheets.Count - ff)
For ii = 1 To UBound(varNamen)
varNamen(ii) = Sheets(ii + ff).Name
Next ii
Sheets(varNamen).Select
End Sub

Ich bekomms schon noch hin.
Schönen Abend noch
MfG Charly
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige