Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1820to1824
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
Inhaltsverzeichnis

VBA Zeilen und Tabellenblatt einblenden

VBA Zeilen und Tabellenblatt einblenden
23.03.2021 16:31:10
TheAccountant
Hallo Zusammen,
ich habe folgende Problematik zu der ich bisher keine passende Lösung finden konnte (VBA Neuling).
1. Problematik
Ich habe in meiner Excel-Datei eine Cover Page.
In diesem Tabellenblatt kann in der Zelle C5 die Anzahl der Gesellschaften eingegeben werden.
Darunter sind die Zeilen 7 bis 17 ausgeblendet.
Basierend auf dem Wert der in Zelle C5 eingetragen wird sollen nun die Zeile 7 (Überschriften) und je nach Wert weitere Zeilen eingeblendet werden. Zum Beispiel bei der Eingabe 5 soll die Zeile 7 und 5 weitere Zeilen (Zeilen 8 - 12) eingeblendet werden.
2. Problematik
In den dann eingeblendeten Zeilen soll der User in Spalte C die jeweilige Firma eintragen, d.h. bei 5 eingeklappten Zeilen ist in C8, C9, C10, C11 und C12 jeweils die Firma einzutragen. Wenn der Nutzer nun die jeweilige Bezeichnung einträgt, also z.B. in C8 und somit die Zelle befüllt, soll sich ein neues Tabellenblatt einblenden, welches bisher ausgeblendet ist. Der Tabellenname lautet in diesem Fall "1". Wenn C9 befüllt wird soll logischerweise "2" eingeblendet werden und so weiter.
Ich hoffe der Zusammenhang zwischen den beiden Themen wird deutlich :)
Sowohl bei 1. als auch bei 2. ist der maximale Wert 10.
Vielen Dank im Voraus für Eure Hilfe!
The Accountant

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

Betreff
Datum
Anwender
Anzeige
AW: VBA Zeilen und Tabellenblatt einblenden
23.03.2021 18:28:52
ralf_b
Hallo,
was sagt denn der Recorder zu deinem Vorhaben?
In wie fern muß man denn die Zeilen einblenden? Wenn es eh eine bestimmte Anzahl nur sein kann, dann reicht es doch den Platz gleich frei zu lassen und bei Änderung im bestimmten Bereich die Blätter entsprechend einzublenden. Wodurch werden die Blätter ausgeblendet? Wird auf den eingeblendeten Blättern weitergearbeitet?
gruß
rb

AW: VBA Zeilen und Tabellenblatt einblenden
23.03.2021 19:59:20
fcs
Hallo Buchhalter,
hier mal eine Beispiel-Datei mit Makro.
Das Ereignismakro, das auf Eingabe in Zellen reagiert findest du unter dem Code-Modul von Blatt "CoverSheet".
https://www.herber.de/bbs/user/145062.xlsm
LG
Franz

Anzeige
AW: VBA Zeilen und Tabellenblatt einblenden
24.03.2021 08:51:00
TheAccountant
Hallo Franz,
vielen Dank, dass ist genau das was ich gesucht habe.
Ich habe nur eine Frage. In der Spalte B im Bereich B8 bis B17 ist eine fortlaufende Referenzierung von 1 bis 10 hinterlegt (auch wenn die Zeilen ausgeblendet sind). Wenn nun jemand allerdings seine Eingabe in C5 wieder rückgängig macht oder anpasst (z.B. von 3 auf 2 Gesellschaften), wird der Inhalt dieser Spalte auch gelöscht. Lässt sich das verhindern? Die anderen Spalten je Zeile können gelöscht werden, nur die erste Spalte möchte ich immer mit diesen Werten (1-10) beibehalten.
Vielen Dank für Deine Hilfe, das war echt super!
The Accountant

Anzeige
AW: VBA Zeilen und Tabellenblatt einblenden
24.03.2021 09:46:10
GerdL
Moin,
so werden nur die Einträge ab Spalte C und rechts davon entfernt.
If anzFirmen = 0 Then 'Inhalt in Zelle C5 wurde gelöscht
Range(Cells(8, 3), Cells(17, Columns.Count)).ClearContents

Gruß Gerd

AW: VBA Zeilen und Tabellenblatt einblenden
24.03.2021 11:46:58
fcs
Hallo,
du musst 2 Zeilen anpassen.
Für den Fall, dass die Anzahl reduziert wird, dann werden ggf. auch Zellinhalte gelöscht.
Die 10 in den beiden Zeilen musst du anpassen entsprechend der letzten Spalte mit Inhalt in der Titelzeile.
LG
Franz

Private Sub Worksheet_Change(ByVal Target As Range)
Dim anzFirmen As Integer, nrBlatt As Integer
Dim ZeileTitel As Long, ZeileLetzte As Long, Zeile As Long
If Target.Cells.Count = 1 _
And Target.Address(False, False, xlA1) = "C5" Then
ZeileTitel = 7
anzFirmen = Target.Value
If anzFirmen = 0 Then 'Inhalt in Zelle C5 wurde gelöscht
            Range(Cells(8, 3), Cells(17, 10)).ClearContents             'geändert
            Range(Rows(7), Rows(17)).EntireRow.Hidden = True
For nrBlatt = 1 To 10
If Worksheets(Format(nrBlatt, "0")).Visible = xlSheetVisible Then
Worksheets(Format(nrBlatt, "0")).Visible = xlSheetHidden
End If
Next
Else
'Anzahl in C5 wurde geändert
Range(Rows(7), Rows(ZeileTitel + 10)).EntireRow.Hidden = False
ZeileLetzte = ZeileTitel + anzFirmen
'Prüfen ob Zeilen mit Inhalt unterhalb von letzter Zeile
Zeile = Cells(ZeileTitel + 11, 3).End(xlUp).Row
If Zeile > ZeileLetzte Then
Do Until Zeile = ZeileLetzte
nrBlatt = Zeile - ZeileTitel
'Blatt  ggf. ausblenden
Worksheets(Format(nrBlatt, "0")).Visible = xlSheetHidden
'Daten in Zeile löschen
               Range(Cells(Zeile, 3), Cells(Zeile, 10)).ClearContents  'geändert
               Zeile = Zeile - 1
Loop
End If
Range(Rows(7), Rows(ZeileTitel + 10)).EntireRow.Hidden = True
Range(Rows(7), Rows(ZeileLetzte)).EntireRow.Hidden = False
End If
ElseIf Target.Cells.Count = 1 _
And Not Intersect(Target, Range("C8:C17")) Is Nothing Then
'Name einer Firma wurde in Spalte C eingegeben bzw. gelöscht
ZeileTitel = 7
nrBlatt = Target.Row - ZeileTitel
If Target.Text = "" Then
'Firma-Name in Zeile gelöscht
Worksheets(Format(nrBlatt, "0")).Visible = xlSheetHidden
Else
'Firma-Name eingetragen
Worksheets(Format(nrBlatt, "0")).Visible = xlSheetVisible
End If
End If
End Sub

Anzeige

320 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige