Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1580to1584
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

Variable Liste/Formular

Variable Liste/Formular
14.09.2017 13:49:23
Thorsten
Hallo liebe Community!
Ich habe folgendes Anliegen bzw. beschreibe euch meine Idee:
Ich würde gerne eine Exelliste in Form einen Formulars erstellen.
Es gibt eine Dropdown Box die verschiedenste Inhalte aufzeigt (Alles, Bau, Architekt, ...).
Sobald ich auf Alles klicke bekomme ich sämtliche Datenfelder im Formular angezeigt.
Sobald man auf Bau klickt eben nur die die für den Bau bestimmt sind.
Wie löse ich das so variabel auf einem Excelsheet?
Vielen Dank für eure Unterstützung!
Thorsten

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

Betreff
Datum
Anwender
Anzeige
AW: Variable Liste/Formular
15.09.2017 09:31:52
Thorsten
Morgen!
Eventuell hilft folgende Erklärung weiter:
Ich möchte quasi die auszufüllenden Inhalte von einer Dropdown abhängig machen.
Bei Total wird alles angezeigt und bei der Auswahl von "Bau" nur die deklarierten Baufelder.
Vielen Dank!
AW: Variable Liste/Formular
18.09.2017 09:46:54
Thorsten
Hallo Zusammen,
leider konnte mir noch niemand dazu einen Tipp geben.
Folgendes habe ich nun gefunden - und zwar in Abhängigkeit von einer Dropdown Box lasse ich entsprechende Zeilen ein & ausblenden.
Gibt es hier eine charmantere Lösung die es mir ermöglicht, im Falle von hinzukommenden Feldern, nicht nochmals alle Zeilen neu anzupassen.
Sub Worksheet_Change(ByVal Target As Range)
Dim C As Long
If Target.Count > 1 Then Exit Sub
If Target.Address = "$C$2" Then
'alle ausgeblendeten Zeilen einblenden
For C = 1 To Me.Cells(Rows.Count, 1).End(xlUp).Row
Rows(C).EntireRow.Hidden = False
Next
If Target.Value = "A" Then
Rows(13).EntireRow.Hidden = True
Rows(23).EntireRow.Hidden = True
Rows(29).EntireRow.Hidden = True
End If
If Target.Value = "B" Then
Rows(23).EntireRow.Hidden = True
Rows(31).EntireRow.Hidden = True
Rows(40).EntireRow.Hidden = True
End If
If Target.Value = "C" Then
Rows(13).EntireRow.Hidden = False
Rows(23).EntireRow.Hidden = False
Rows(29).EntireRow.Hidden = False
Rows(31).EntireRow.Hidden = False
Rows(40).EntireRow.Hidden = False
End If
End If
End Sub

Anzeige
AW: Variable Liste/Formular
18.09.2017 18:39:03
ChrisL
Hi Thorsten
Lange musstest du warten, dafür gibt es jetzt eine umso ausführlichere Antwort ;)
Das Problem war u.a., dass du bei deiner Erklärung im Forum vergessen hast das Kontrollkästchen "offen" zu aktivieren. So geht der Beitrag rasch unter.
Zudem war deine erste Frage sehr vage. Ich dachte an eine bedingte Formatierung (visueller Effekt) und Gültigkeitsprüfungen. Oder du erfasst die gemeinsamen Daten in Blatt A und hast dann branchenspezifische Zusatzblätter oder Gruppierungen. Oder wenn die Formulare zu heterogen sind, dann gleich Einzelformulare. Soweit nichts, was mit Excel-Standardfunktionen nicht zu lösen ist.
Weiter habe ich mich gefragt, wie du gedenkst die Formulardaten weiter zu verarbeiten. Wenn die Daten später in eine Datenbank müssen, dann müsste man erst mal die Datenfelder klären.
Was alle Lösungen gemeinsam haben. So lange kein Muster (z.B. jede x-te Zeile oder ein besonderes Merkmal wie Titel) erkennbar ist, lässt sich auch nichts optimieren oder vereinfachen. Was du jedoch machen kannst ist die Logik (was ist wann eingeblendet) in eine Hilfstabelle zur Verwaltung übertragen. Wenn du möchtest, kannst du mal so eine Hilfstabelle erstellen und hoch laden, dann mache ich dir die Ein-/Ausblendlogik rein.
Hilfstabelle z.B.
Typ A B C
Zeile13 1 0 1
Zeile23 1 0 1
Zeile29 1 1 0
Damit der Code nicht "flackert" kannst du noch folgende Zeile am Anfang einfügen.
Application.ScreenUpdating = False
Anstelle der For-Next Schleife zum Einblenden würde vermutlich folgende Zeile genügen:
Cells.EntireRow.Hidden = False
Wenn du vorher sowieso alles einblendest, dann brauchst du nur noch die Codezeilen mit
.Hidden = True
Target.Value = "C" ist somit überflüssig.
cu
Chris
Anzeige
AW: Variable Liste/Formular
18.09.2017 18:42:47
ChrisL
etwas konfus, dachte so...
Sub Worksheet_Change(ByVal Target As Range)
Dim C As Long
If Target.Count > 1 Then Exit Sub
If Target.Address = "$C$2" Then
Application.ScreenUpdating = False
'alle ausgeblendeten Zeilen einblenden
Cells.EntireRow.Hidden = False
If Target.Value = "A" Then
Rows(13).EntireRow.Hidden = True
Rows(23).EntireRow.Hidden = True
Rows(29).EntireRow.Hidden = True
End If
If Target.Value = "B" Then
Rows(23).EntireRow.Hidden = True
Rows(31).EntireRow.Hidden = True
Rows(40).EntireRow.Hidden = True
End If
End If
End Sub

AW: Variable Liste/Formular
18.09.2017 18:50:34
ChrisL
Mist :)
Die Variable braucht es dann natürlich auch nicht mehr (ohne "Dim")
Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Address = "$C$2" Then
Application.ScreenUpdating = False
'alle ausgeblendeten Zeilen einblenden
Cells.EntireRow.Hidden = False
If Target.Value = "A" Then
Rows(13).EntireRow.Hidden = True
Rows(23).EntireRow.Hidden = True
Rows(29).EntireRow.Hidden = True
End If
If Target.Value = "B" Then
Rows(23).EntireRow.Hidden = True
Rows(31).EntireRow.Hidden = True
Rows(40).EntireRow.Hidden = True
End If
End If
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige