mehrere Tabellen markieren über Array

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: mehrere Tabellen markieren über Array
von: MikeS
Geschrieben am: 16.03.2005 15:38:01
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

Bild

Betrifft: AW: mehrere Tabellen markieren über Array
von: u_
Geschrieben am: 16.03.2005 15:48:13
Hallo,
der Weg führt über 'Split'.

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

Gruß
Bild

Betrifft: AW: mehrere Tabellen markieren über Array
von: MikeS
Geschrieben am: 16.03.2005 16:00:39
Hallo u_,
leider funzt es bei mir nicht!?
Sub oder Funktion nicht definiert.
Split wird blau markiert
Ist das versionsabhängig?
Danke MikeS
Bild

Betrifft: noch offen
von: u_
Geschrieben am: 16.03.2005 16:32:35
Hallo,
entschuldigung, nicht auf die Version geachtet. Split gibt es in 97 nicht.
Gruß
Bild

Betrifft: AW: noch offen
von: MikeS
Geschrieben am: 16.03.2005 16:36:10
Danke Dir trotzdem.
Ciao MikeS
Bild

Betrifft: AW: noch offen
von: u_
Geschrieben am: 16.03.2005 16:48:28
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ß
Bild

Betrifft: AW: mehrere Tabellen markieren über Array
von: K.Rola
Geschrieben am: 16.03.2005 16:40:07
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


Bild

Betrifft: AW: mehrere Tabellen markieren über Array
von: MikeS
Geschrieben am: 16.03.2005 20:27:20
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
Bild

Betrifft: AW: mehrere Tabellen markieren über Array
von: MikeS
Geschrieben am: 16.03.2005 20:27:52
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
Bild

Betrifft: AW: mehrere Tabellen markieren über Array
von: K.Rola
Geschrieben am: 16.03.2005 21:08:22
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


Bild

Betrifft: AW: nur eines noch...
von: Mike
Geschrieben am: 16.03.2005 21:53:18
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
 Bild

Beiträge aus den Excel-Beispielen zum Thema "mehrere Tabellen markieren über Array"