Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
760to764
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
760to764
760to764
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Blaetter ein/ausblenden mittels Makro
13.05.2006 00:05:34
Marita
Hallo,
im Archiv habe ich ein tolles Makro mit UserForm zum komfortalen Ein-/Ausblenden von Tabellenblaettern gefunden. siehe: https://www.herber.de/bbs/user/28030.xls
Da ist unter anderem folgendes Makro enthalten:

Private Sub cmdAction_Click()
Dim n As Integer
On Error GoTo ERRORHANDLER
Application.ScreenUpdating = False
With ListBox1
For n = 0 To .ListCount - 1
If .Selected(n) Then Sheets(.List(n)).Visible = False
Next
End With
With ListBox2
For n = 0 To .ListCount - 1
If .Selected(n) Then Sheets(.List(n)).Visible = True
Next
End With
ERRORHANDLER:
Application.ScreenUpdating = True
Unload Me
End Sub

2 Fragen dazu:
-wie muss ich das Makro aendern, dass immer nur ein Tabellenblatt angeklickt und somit aus-/eingeblendet werden kann?
-das Makro wuerde ich gerne ausbauen, dafuer muesste nur der Name des angeklickten, einzublendenden Tabellenblattes uebergeben werden an eine andere Anweisung. Den Term .Selected(n) kann ich ja nicht in einer Formel einfach so hinter ein Gleichheitszeichen schreiben. Wie kann ich den Wert der Auswahl (vorausgesetzt, es wurde nur ein Tabellenblatt selektiert) an z.B. normale if then else Anweisungen uebergeben?
Vielen, lieben Dank vorab. Schoenes Wochenende, Marita

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

Betreff
Datum
Anwender
Anzeige
AW: Blaetter ein/ausblenden mittels Makro
13.05.2006 08:42:56
Christoph
Hallo Marita,
zu 1: stelle die Multiselect-Eigenschaft der Listboxes auf "frmMultiSelectSingle"
Wenn das Eigenschaftsfenster der Form nicht angezeigt wird, dann zB mit Rechtklick auf Form -> "Eigenschaften" einblenden.
zu 2: Der Name des gewählten Sheets ist: Sheets(.List(n)).Name
Den könntest du dir in eine String-Variable schreiben.
also zB. so:
OptionExplicit
Private Sub cmdAction_Click()
Dim n As Integer
Dim strShow As String
Dim strHide As String
On Error GoTo ERRORHANDLER
Application.ScreenUpdating = False
With ListBox1
For n = 0 To .ListCount - 1
If .Selected(n) Then
Sheets(.List(n)).Visible = False
strHide = Sheets(.List(n)).Name
End If
Next
End With
With ListBox2
For n = 0 To .ListCount - 1
If .Selected(n) Then
Sheets(.List(n)).Visible = True
strShow = Sheets(.List(n)).Name
End If
Next
End With
'zum Testen
MsgBox "ausblenden: " & strHide
MsgBox "einblenden: " & strShow
ERRORHANDLER:
Application.ScreenUpdating = True
Unload Me
End Sub

Gruß
Christoph
Anzeige
AW: Blaetter ein/ausblenden (Zusatzfrage)
13.05.2006 14:46:10
Max
Hallo,
um keinen eigenen Thread aufzumachen benutze ich mal diesen:
Wie muss das Makro in der hochgeladenen Originaldatei geändert werden, damit Tabellenblätter mit dem Attribut "very hidden" nicht in der Auswahl angezeigt werden?
Danke für eure Hilfe!
Gruß
Max
AW: Blaetter ein/ausblenden (Zusatzfrage)
13.05.2006 15:27:26
Christoph
hallo,
einfach beim Activate- bzw. Initialize-Ereignis der UserForm die versteckten Sheets ausschließen:
zB:
If wks.Name  "Statistik" And Not wks.Visible = xlVeryHidden Then
Gruß Christoph
AW: Zusatzfrage (erledigt)
13.05.2006 19:02:26
Max
Hallo Christoph,
vielen Dank für die Codezeile. Funktioniert einwandfrei!
Noch ein schönes Wochenende ;-))
Gruß
Max
Anzeige
ganz toll!!!
15.05.2006 19:33:33
Marita
hallo,
echt toll, ihr habt mir sehr geholfen! Danke, Marita

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige