Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
584to588
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
584to588
584to588
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

mehrere Tabellen markieren über Array

mehrere Tabellen markieren über Array
16.03.2005 15:38:01
MikeS
Hallo Leute,
ich möchte per VBA mehrere Tabellenblätter markieren, was mit dem Befehl
Sheets(Array("Tabelle1", "Tabelle2")).Select funktioniert.
Ich hole mir die Tabellennamen aus einer Listbox, in der alle markierten
Zeilen ausgelesen werden. Nun möchte ich einen String wie folgt verwenden.
Sheets(Array(strTabellen)).Select
Ich krieg aber die Schreibweise nicht zustande :o( und bitte um Hilfe.
Vielen Dank
MikeS

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: mehrere Tabellen markieren über Array
16.03.2005 15:48:13
u_
Hallo,
der Weg führt über 'Split'.

Sub test()
Dim strTab As String
strTab = "Tabelle1,Tabelle2,Tabelle3"
Sheets(Split(strTab, ",")).Select
End Sub

Gruß
AW: mehrere Tabellen markieren über Array
16.03.2005 16:00:39
MikeS
Hallo u_,
leider funzt es bei mir nicht!?
Sub oder Funktion nicht definiert.
Split wird blau markiert
Ist das versionsabhängig?
Danke MikeS
noch offen
16.03.2005 16:32:35
u_
Hallo,
entschuldigung, nicht auf die Version geachtet. Split gibt es in 97 nicht.
Gruß
AW: noch offen
16.03.2005 16:36:10
MikeS
Danke Dir trotzdem.
Ciao MikeS
AW: noch offen
16.03.2005 16:48:28
u_
Hallo,
ein wenig kompliziert, sollte aber gehen.

Sub test2()
Sheets(1).Select
Sheets(3).Select False
Sheets(4).Select False
Sheets(6).Select False
End Sub

Gruß
Anzeige
AW: mehrere Tabellen markieren über Array
16.03.2005 16:40:07
K.Rola
Hallo,
''=====================================================
''Erforderliche controls:
''Eine Listbox mit Namen ListBox 1
''Commandbutton1
''Commandbutton2
''Commandbutton3
''Der Code muss ins Modul des userforms
Option Explicit
Dim aSh As Object
Private Sub CommandButton1_Click()
'Alle Blätter werden selektiert
Dim i As Long
With Listbox1
For i = 0 To .ListCount - 1
If .Selected(i) Then
Sheets(.List(i, 0)).Select False
End If
Next
End With
End Sub
Private Sub CommandButton2_Click()
'Auswahl wird aufgehoben
Dim i As Long
aSh.Select
With Listbox1
For i = 0 To .ListCount - 1
.Selected(i) = False
Next
End With
End Sub
Private Sub CommandButton3_Click()
'Alle ausgewählten werden selektiert
Dim i As Long
With Listbox1
For i = 0 To .ListCount - 1
Sheets(.List(i, 0)).Select False
Next
End With
End Sub
Private Sub UserForm_Activate()
'Blattnamen in die Listbox lesen
Set aSh = ActiveSheet
Dim sh As Object
With Listbox1
.Clear
For Each sh In Sheets
.AddItem sh.Name
Next
End With
End Sub

Gruß K.Rola

Der Fleiß ist die Wurzel aller Häßlichkeit.

Oscar Wilde


Anzeige
AW: mehrere Tabellen markieren über Array
16.03.2005 20:27:20
MikeS
Hallo K.Rola,
danke für Deine Hilfe.
Hab Deinen Code in eine UserForm kopiert und die Steuerelemente angeordnet. Aber es hat sich der Fehlerteufel eingschlichen.
Markierst Du Tabelle1, rufst dann die UF auf, wählst dann im Listenfeld Tabelle2+3 und klickst dann auf Button1, sollten Tabelle2+3 selektiert sein (OHNE Tabelle1).
Tabelle1 bleibt aber weiterhin selektiert!?
Vielen Dank für Deine Mühe.
LG MikeS
AW: mehrere Tabellen markieren über Array
16.03.2005 20:27:52
MikeS
Hallo K.Rola,
danke für Deine Hilfe.
Hab Deinen Code in eine UserForm kopiert und die Steuerelemente angeordnet. Aber es hat sich der Fehlerteufel eingschlichen.
Markierst Du Tabelle1, rufst dann die UF auf, wählst dann im Listenfeld Tabelle2+3 und klickst dann auf Button1, sollten Tabelle2+3 selektiert sein (OHNE Tabelle1).
Tabelle1 bleibt aber weiterhin selektiert!?
Vielen Dank für Deine Mühe.
LG MikeS
https://www.herber.de/bbs/user/19767.xls
Anzeige
AW: mehrere Tabellen markieren über Array
16.03.2005 21:08:22
K.Rola
Hallo,
richtig, ist mir gar nicht aufgefallen.
''Erforderliche controls:
''Eine Listbox mit Namen ListBox 1
''Commandbutton1
''Commandbutton2
''Commandbutton3
''Der Code muss ins Modul des userforms
Option Explicit
Dim aSh As Object
Private Sub CommandButton1_Click()
'Alle ausgewählten werden selektiert
Dim i As Long
With Listbox1
For i = 0 To .ListCount - 1
If .Selected(i) Then
Sheets(.List(i, 0)).Select
Exit For
End If
Next
For i = 0 To .ListCount - 1
If .Selected(i) Then
Sheets(.List(i, 0)).Select False
End If
Next
End With
End Sub
Private Sub CommandButton2_Click()
'Auswahl wird aufgehoben
Dim i As Long
aSh.Select
With Listbox1
For i = 0 To .ListCount - 1
.Selected(i) = False
Next
End With
End Sub
Private Sub CommandButton3_Click()
'Alle Blätter werden selektiert
Dim i As Long
With Listbox1
For i = 0 To .ListCount - 1
Sheets(.List(i, 0)).Select False
Next
End With
End Sub
Private Sub UserForm_Activate()
'Blattnamen in die Listbox lesen
Set aSh = ActiveSheet
Dim sh As Object
With Listbox1
.Clear
For Each sh In Sheets
.AddItem sh.Name
Next
End With
End Sub

Gruß K.Rola

Der Fleiß ist die Wurzel aller Häßlichkeit.

Oscar Wilde


Anzeige
AW: nur eines noch...
16.03.2005 21:53:18
Mike
Supi, so funktionierts prima, doch wie kann ich nun alle selektierten Blätter kopieren?
Da ich in der Firma Excel97 habe ist die Split-Funktion für mich nicht zu verwenden.
Wahrscheinlich in einer Schleife Blatt für Blatt ungefähr so:
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then
Sheets(.List(i, 0)).Copy
...
End If
Next
End With
Auf jeden Fall hast Du mir sehr geholfen.
Ciao MikeS

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige