Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen

Tabellenarray an Tag der Ufrm übergeben | Herbers Excel-Forum


Betrifft: Tabellenarray an Tag der Ufrm übergeben von: Peter
Geschrieben am: 06.12.2009 10:04:05

Hallo Forum,

ich möchte bestimmte Tabellenblätter, die als Array zusammengefasst sind,
einer Variable zuordnen.
Diese Variable soll bei Aufruf der Ufrm durch eine
Schaltfläche der Tag Eigenschaft der Ufrm übergeben werden und entsprechende
Tabellenblätter ein bzw. ausblenden.
Geht das überhaupt? Bisher habe ich diesen Vorgang mit einer Suche mit ForEach
erledigt.

Wenn es irgendwie geht würde ich mich über ein kleines Bsp. mit kurzer Erklärung
(zum Nachvollziehend des Vorganges) sehr freuen.

Danke Peter

Sub Makro2()
'
' Makro2 Makro
' Makro am 06.12.2009 aufgezeichnet
'
    Sheets(Array("Vorl Z 13", "Vorl Z eS 01", "Vorl Z 09", "Vorl Z 08", "Vorl Z 07", _
        "Vorl Z 06", "Vorl Z 05", "Vorl Z 04", "Vorl Z 02 ", "Vorl Z 01")).Select
    Sheets("Vorl Z 01").Activate
    ActiveWindow.SelectedSheets.Visible = False
End Sub

  

Betrifft: AW: Tabellenarray an Tag der Ufrm übergeben von: Nepumuk
Geschrieben am: 06.12.2009 10:29:57

Hallo,

ein Beispiel:

In einem Standardmodul:

Option Explicit

Public Sub Beispiel()
    With UserForm1
        'hier werden die Sheets an die SheetArray-Eigenschaft des Userforms übergeben
        Set .SheetArray = Worksheets(Array("Tabelle1", "Tabelle2", "Tabelle3"))
        'Userform anzeigen
        .Show
    End With
End Sub

Im Modul des Userforms:

Option Explicit

Private mobjSheetArray As Sheets

Friend Property Set SheetArray(objSheetArray As Sheets)
    Set mobjSheetArray = objSheetArray
End Property

Private Sub CommandButton1_Click()
    Dim objSheet As Object
    'Einblenden
    For Each objSheet In mobjSheetArray
        objSheet.Visible = True
    Next
End Sub

Private Sub CommandButton2_Click()
    Dim objSheet As Object
    'Ausblenden
    For Each objSheet In mobjSheetArray
        objSheet.Visible = False
    Next
End Sub


Ein Userform ist eine Klasse (ein Objekt) und du kannst einer Klasse eigene Eigenschaften geben. In diesem Fall ist die Eigenschaft selbst wieder ein Objekt, nämlich dein Array aus Sheets. Um dieses Array zu füllen, benötigst du eine Property-Set Prozedur (Property~Eigenschaft).

Gruß
Nepumuk


  

Betrifft: AW: Danke Nepumuk von: Peter
Geschrieben am: 06.12.2009 12:47:12

Vielen Dank für die Erklärung und dem Beispiel.

Peter


Beiträge aus den Excel-Beispielen zum Thema "Tabellenarray an Tag der Ufrm übergeben"