AW: Auswahlboxen in Spalten verbergen
14.04.2010 02:11:23
fcs
Hallo Werner,
die Namen der Formular-Steuerelemente(Shapes) bekommst du angezeigt, wenn du mit der rechten Maustaste auf die Elemente klickst (Element selektierst). Der deutsche Name wird dann im Zelladressfeld angezeigt. Für Anzeige des vollständigen Namens muss du ggf. die Breite des Anzeigefelds verbreitern.
Das folgende Makro zeigt dir die Position (linke obere Zelle) und den englischen Namen der Shapes an.
Sub Shapes_NamenListen()
Dim objShape As Shape, AktiveZelle As Range
Set AktiveZelle = ActiveCell
For Each objShape In ActiveSheet.Shapes
With objShape
ActiveWindow.ScrollColumn = .TopLeftCell.Column
ActiveWindow.ScrollRow = .TopLeftCell.Row
If MsgBox("Name Shape : " & .Name & vbLf _
& "TopLeftCell : " & .TopLeftCell.Address, _
vbOKCancel + vbInformation, "Liste der Shape-Namen") _
= vbCancel Then GoTo Ende
End With
Next
AktiveZelle.Select
Ende:
Set AktiveZelle = Nothing: Set objShape = Nothing
End Sub
Die folgenden Prozeduren blenden Shapes und Spalten aus abhängig von gewählter Personenzahl.
Gruß
Franz
Option Explicit
Sub Einblenden()
'Alle Spalten und Shapes einblenden
Dim wks As Worksheet, oShape As Shape
Set wks = Worksheets("Eingabe")
wks.Columns.Hidden = False
For Each oShape In wks.Shapes
oShape.Visible = True
Next
End Sub
Sub Ausblenden()
'Ausblenden gemäß Auswahl in Combobox
Call Einblenden
Select Case Worksheets("Daten").Range("A8").Value
Case 1
Call Aus_Shapes(Worksheets("Eingabe"), Array("Drop Down 3", "Check Box 10", _
"Check Box 11", "Check Box 12", "Check Box 13"))
Call Aus_Shapes(Worksheets("Eingabe"), Array("Drop Down 4", "Check Box 14", _
"Check Box 15", "Check Box 16", "Check Box 17"))
Call Aus_Shapes(Worksheets("Eingabe"), Array("Drop Down 5", "Check Box 18", _
"Check Box 19", "Check Box 20", "Check Box 21"))
With Worksheets("Eingabe")
.Range(.Columns(9), .Columns(17)).EntireColumn.Hidden = True
End With
Case 2
Call Aus_Shapes(Worksheets("Eingabe"), Array("Drop Down 4", "Check Box 14", _
"Check Box 15", "Check Box 16", "Check Box 17"))
Call Aus_Shapes(Worksheets("Eingabe"), Array("Drop Down 5", "Check Box 18", _
"Check Box 19", "Check Box 20", "Check Box 21"))
With Worksheets("Eingabe")
.Range(.Columns(12), .Columns(17)).EntireColumn.Hidden = True
End With
Case 3
Call Aus_Shapes(Worksheets("Eingabe"), Array("Drop Down 5", "Check Box 18", _
"Check Box 19", "Check Box 20", "Check Box 21"))
With Worksheets("Eingabe")
.Range(.Columns(15), .Columns(17)).EntireColumn.Hidden = True
End With
Case 4
'do nothing
End Select
End Sub
Sub Aus_Shapes(wks As Worksheet, arrNames)
'Ausblenden der genannten Shapes im Blatt
Dim iI As Long
For iI = LBound(arrNames) To UBound(arrNames)
wks.Shapes(arrNames(iI)).Visible = False
Next
End Sub