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

Mehrfachtabellenauswahl abfragen ...

Mehrfachtabellenauswahl abfragen ...
Peter
Guten Tag
Angenommen, ich habe eine Datei mit 25 Tabellen, von denen 11 verschiedene gleichzeitig angewählt sind.
Wie kann ich diesen Zustand einer Variable übergeben und dann wieder später aufrufen (z.B. beides im Direktbereich)?
Gruss, Peter
AW: Mehrfachtabellenauswahl abfragen ...
10.09.2010 09:28:24
Rudi
Hallo,
etwa so:
Sub ttx()
Dim objSheets
Set objSheets = ActiveWindow.SelectedSheets
Sheets(1).Select
objSheets.Select
End Sub

Gruß
Rudi
AW: Mehrfachtabellenauswahl abfragen ...
10.09.2010 10:45:05
Peter
Hallo Rudi
Vielen Dank.
Gibt es eine Möglichkeit, den Inhalt von objSheets anzuzeigen (z.B. mit der MsgBox)?
Gruss, Peter
AW: Mehrfachtabellenauswahl abfragen ...
10.09.2010 10:55:39
JogyB
Hallo Peter,
Sub ttx()
Dim objSheets As Sheets
Dim mySheet
Dim ausGabe As String
Set objSheets = ActiveWindow.SelectedSheets
For Each mySheet In objSheets
ausGabe = ausGabe & IIf(ausGabe = "", "", vbNewLine) & mySheet.Name
Next
MsgBox ("Folgende Sheets sind ausgewählt:" & vbNewLine & ausGabe)
End Sub

Gruß, Jogy
Anzeige
AW: Mehrfachtabellenauswahl abfragen ...
10.09.2010 12:10:08
Peter
Hallo Jogy
Vielen Dank.
Der Code ist hilfreich. Hilfreich wäre nun, wenn ich die Variable "ausGabe" in den Direktbereich schreiben könnte, beispielsweise:
Sheet1, Sheet3, Berechnung1, Berechnung2
Dann würde mich interessieren, ob ich im Direktbereich so etwas wie:
Sheets(Sheet1, Sheet3, Berechnung1, Berechnung2).select
oder ähnlich eingeben kann, wenn ich zwischenzeitlich andere Tabellen angewählt habe.
Gruss, Peter
AW: Mehrfachtabellenauswahl abfragen ...
10.09.2010 12:36:22
Rudi
Hallo,
wozu soll die Ausgabe gut sein?
Sei's drum: Debug.Print ausGabe
2.
Sheets(array("Sheet1", "Sheet3", "Berechnung1", "Berechnung2")).select
Gruß
Rudi
Anzeige
AW: Mehrfachtabellenauswahl abfragen ...
10.09.2010 12:39:56
JogyB
Hallo Peter,
im Direktbereich ist das problematisch, aber Du kannst doch obiges Makro nehmen, die MsgBox-Ausgabe rauswerfen und Debug.Print(Ausgabe) an deren Stelle setzen. Dann ersetzt Du noch das vbNewLine inder For-Schleife durch ", " und schon hast Du die gewünschte Darstellung.
Mehrere Blätter kannst Du z.B. so auswählen:
Sheets(Array("Tabelle1","Tabelle2","Tabelle3")).Select
Gruß, Jogy
AW: Mehrfachtabellenauswahl abfragen ...
10.09.2010 14:56:34
Peter
Hallo Jogy
Vielen Dank. Das hat mir geholfen, mein "Endprodukt" zusammenzustellen.
@ Rudi:
mit diesem Code gebe ich eine bestimmte Mehrtabellenauswahl im Direktbereich aus; gleich "umgeben" mit dem Code, durch dessen Anwählen ich die Mehrfachauswahl wiederherstellen kann.
Beispiel eines Praxisbezugs:
1. Ich bearbeite verschiedene Tabellen gleichzeitig (Mehrfachauswahl)
2. Bevor ich zwischendurch an einer einzelnen Tabelle etwas ändern muss, starte ich diesen untenstehenden Sub
3. Nun will ich in die gleiche Mehrfachauswahl zurück und betätige den Code im Direktbereich.
Vielleicht gibt es ja ein besseres Vorgehen, aber man behilft sich mit dem, was man sich vorstellen kann.
Gruss, Peter
Sub tabMFA_in_Direktbereich()
Dim objSheets As Sheets
Dim mySheet
Dim ausGabe As String
Set objSheets = ActiveWindow.SelectedSheets
For Each mySheet In objSheets
ausGabe = ausGabe & IIf(ausGabe = "", "", ", ") & mySheet.Name
Next
'MsgBox ("Folgende Sheets sind ausgewählt:" & vbNewLine & ausGabe)
ausGabe = "Sheets(Array(""" & ausGabe & """)).Select"
ausGabe = Replace(ausGabe, ", ", """, """)
Debug.Print ausGabe
End Sub

Anzeige
AW: Mehrfachtabellenauswahl abfragen ...
10.09.2010 09:32:51
xr8k2
Hallo Peter,
funktioniert so in der Art:
Sub AusgewaehlteBlaetterAuswaehlen()
Dim varSHT As Sheets
Set varSHT = ActiveWindow.SelectedSheets
varSHT.Select
End Sub
Gruß,
xr8k2
Oder als kleine Funktion...
10.09.2010 09:46:17
JogyB
Hallo Peter,
' Liest die ausgewählten Sheets aus
Function getSelectedSheets(Optional myWbk, Optional ByVal WindowNr As Integer = 1) As Sheets
' Wenn keine Arbeitsmappe übergeben, dann aktives Fenster
If IsMissing(myWbk) Or Not TypeOf myWbk Is Workbook Then
Set getSelectedSheets = ActiveWindow.SelectedSheets
' Ansonsten nach Angabe
Else
Set getSelectedSheets = myWbk.Windows(WindowNr).SelectedSheets
End If
End Function

Gruß, Jogy
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige