Wie kann man das vereinfachen?
17.05.2015 19:05:38
Peter
Ich stehe gerade auf dem Schlauch und bin über jede Hilfe dankbar. Das ist wahrscheinlich für einen VBA Profi in 2 min gelöst.
Ich habe ein Worksheet, wo man in Zelle C8 eine Anzahl von Themen eingibt. Dies ist von 1 bis 50 möglich.
Die Zeilen:
13 - 62 (1.Abschnitt)
74 - 223 (2.Abschnitt)
229 - 278 (3.Abschnitt)
sind ausgeblendet.
Es sollen je nach der eingetragenen Themenanzahl von oben immer entsprechend Zeilen eingeblendet werden. Vom 1. und 3. Abschnitt genauso viel wie die eingetragene Themenanzahl (C8) und beim 2.Abschnitt (Themenanzahl x 3 Zeilen).
Ich habs hier mal beispielhaft bis 10 versucht, aber das ist zu redundant...
' Zeilen einblenden
Sub einblenden()
Dim anzahl As Integer
Dim startdatei As String
startdatei = ThisWorkbook.Name
anzahl = Workbooks(startdatei).Sheets(1).Range("C8").Value
If anzahl = 1 Then
ActiveSheet.Rows(13).EntireRow.Hidden = False
ActiveSheet.Rows("74:76").EntireRow.Hidden = False
ActiveSheet.Rows(229).EntireRow.Hidden = False
ElseIf anzahl = 2 Then
ActiveSheet.Rows(14).EntireRow.Hidden = False
ActiveSheet.Rows("77:79").EntireRow.Hidden = False
ActiveSheet.Rows(230).EntireRow.Hidden = False
ElseIf anzahl = 3 Then
ActiveSheet.Rows(15).EntireRow.Hidden = False
ActiveSheet.Rows("80:82").EntireRow.Hidden = False
ActiveSheet.Rows(231).EntireRow.Hidden = False
ElseIf anzahl = 4 Then
ActiveSheet.Rows(16).EntireRow.Hidden = False
ActiveSheet.Rows("83:85").EntireRow.Hidden = False
ActiveSheet.Rows(232).EntireRow.Hidden = False
ElseIf anzahl = 5 Then
ActiveSheet.Rows(17).EntireRow.Hidden = False
ActiveSheet.Rows("86:88").EntireRow.Hidden = False
ActiveSheet.Rows(233).EntireRow.Hidden = False
ElseIf anzahl = 6 Then
ActiveSheet.Rows(18).EntireRow.Hidden = False
ActiveSheet.Rows("89:91").EntireRow.Hidden = False
ActiveSheet.Rows(234).EntireRow.Hidden = False
ElseIf anzahl = 7 Then
ActiveSheet.Rows(19).EntireRow.Hidden = False
ActiveSheet.Rows("92:94").EntireRow.Hidden = False
ActiveSheet.Rows(235).EntireRow.Hidden = False
ElseIf anzahl = 8 Then
ActiveSheet.Rows(20).EntireRow.Hidden = False
ActiveSheet.Rows("95:97").EntireRow.Hidden = False
ActiveSheet.Rows(236).EntireRow.Hidden = False
ElseIf anzahl = 9 Then
ActiveSheet.Rows(21).EntireRow.Hidden = False
ActiveSheet.Rows("98:100").EntireRow.Hidden = False
ActiveSheet.Rows(237).EntireRow.Hidden = False
ElseIf anzahl = 10 Then
ActiveSheet.Rows(22).EntireRow.Hidden = False
ActiveSheet.Rows("101:103").EntireRow.Hidden = False
ActiveSheet.Rows(238).EntireRow.Hidden = False
Else
End If
End Sub
Außerdem noch ein kleines Anliegen:In den Zellen B13 bis B62 steht immer dasselbe (bis auf die Zahl): Thema 1, Thema 2, Thema 3, ..., Thema 50. Wenn dieses geändert wird, möchte ich dass das wieder per Knopfdruck zurückgesetzt wird.
Hier hab ich das auch versucht, aber für jede Zelle zählt es bis 49 hoch, anstatt wie gewünscht...
Sub Reset()
Dim ThemenZahl As Integer
For Each zelle In Range("B13:B62")
For ThemenZahl = 1 To 50
zelle.Value = "Thema" & ThemenZahl
ThemenZahl = ThemenZahl + 1
Next ThemenZahl
Next zelle
End Sub
Ich hoffe jemand kann mir weiterhelfen :) Danke schon mal!
Viele Grüße
Peter