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

Bildung eines Arrays

Bildung eines Arrays
28.04.2008 09:54:34
Salim

Hallo zusammen,
ich habe folgendes Makro geschrieben:
In der tabelle:

Private Sub CommandButton74_Click()
Dim x As String
x = "One"
Call Printer(x)
End Sub


Als Modul:
Sub Printer (x As String)
Dim wks As Worksheet
Application.ScreenUpdating = False
Call unProtect
For Each wks In ThisWorkbook.Worksheets
If wks.Range("A3") = x Or wks.Range("A2") = x Or wks.Range("A1") = x Then
wks.Visible = True
wks.Select
GoTo Continue
End If
Next wks 'Diese Part damit einer der bestroffenen Blätter selektiert wird
Continue:
For Each wks In ThisWorkbook.Worksheets
If wks.Range("A3") = x Or wks.Range("A2") = x Or wks.Range("A1") = x Then
wks.Visible = True
wks.Outline.ShowLevels RowLevels:=1
wks.Outline.ShowLevels ColumnLevels:=1
wks.Select (False)
End If
Next wks
ActiveWindow.SelectedSheets.PrintPreview
For Each wks In ThisWorkbook.Worksheets
If wks.Index 1 Then
wks.Visible = False
End If
Next wks
Tabelle1.Select
Call Protection
Application.ScreenUpdating = True
End Sub


Trotz wks.Select (False) ist zum Schluss immer nur der erste und der letzte Blatt markiert. Alle andere Blätter sind zwar zu sehen (visible = true funktioniert) aber nicht markiert. Wäre eine Lösung, diese Blätter in einen Array zu tun, den man dann markiert? Wie würde das gehen bzw. alternative Lösung?
Danke für die Unterstützung und Gruss
Salim

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bildung eines Arrays
28.04.2008 10:13:44
Renee
Hi Salim,
Das geht ungefähr nach diesem Prinzip:

Sheets(Array("Tabelle1", "Tabelle3")).Select
ActiveWindow.SelectedSheets.PrintPreview


Übrigens gibt es sowas wie einen Makrorekorder!
GreetZ Renée

AW: Bildung eines Arrays
28.04.2008 10:19:09
Salim
Hallo Renée,
Danke für deine Antwort. Leider hatte ich es schon mit dem Makrorekroder versucht: der liefert aber folgendes:
Sheets(Array("Tabelle1", "Tabelle3")).Select
Es nützt mir aber nichts da ich nicht weiss wie man Blätter dem Array hinzufügt, die mal selektiert werden und mal nicht. Bitte schau dir meinen Code an...sonst komme ich nicht weiter
Gruss
Salim

Anzeige
AW: Bildung eines Arrays
28.04.2008 11:00:41
dan
Hallo Salim,
hier ein Beispliel, wie man die Array Funktion benutzt um mehrere Sheets gleichzeitig auswahlen.
Gruss Dan, cz.
...
Dim sheetsToSelect() As Variant
Dim sheetsCounter As Integer
sheetsCounter = 0
For Each wks In ThisWorkbook.Worksheets
If wks.Range("A3") = x Or wks.Range("A2") = x Or wks.Range("A1") = x Then
wks.Visible = True
wks.Outline.ShowLevels RowLevels:=1
wks.Outline.ShowLevels ColumnLevels:=1
wks.Select (False)
ReDim Preserve sheetsToSelect(sheetsCounter)
sheetsToSelect(sheetsCounter) = wks.Name
sheetsCounter = sheetsCounter + 1
End If
Next wks
Sheets(sheetsToSelect).Select
...

Anzeige
AW: Bildung eines Arrays
28.04.2008 11:03:00
dan
Hallo Salim,
hier ein Beispliel:
...
Dim sheetsToSelect() As Variant
Dim sheetsCounter As Integer
sheetsCounter = 0
For Each wks In ThisWorkbook.Worksheets
If wks.Range("A3") = x Or wks.Range("A2") = x Or wks.Range("A1") = x Then
wks.Visible = True
wks.Outline.ShowLevels RowLevels:=1
wks.Outline.ShowLevels ColumnLevels:=1
wks.Select (False)
ReDim Preserve sheetsToSelect(sheetsCounter)
sheetsToSelect(sheetsCounter) = wks.Name
sheetsCounter = sheetsCounter + 1
End If
Next wks
Sheets(sheetsToSelect).Select
...
Gruss Dan, cz.

Anzeige
AW: Bildung eines Arrays
28.04.2008 12:51:00
Salim
Herzlichen Dank,
werde ich gleich mal ausprobieren und dir dann bescheid geben.
Gruss
Salim

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige