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

Hilfe ich verzweifel!

Hilfe ich verzweifel!
04.05.2016 15:33:33
Andy
Guten Tag Community,
zuerst einmal möchte ich euch mitteilen, dass ich ein absoluter Anfänger in Sachen VBA programmierung bin. Daher verzweifel ich auch seid Tagen.
Problem:
Über ein Drop-Down-Menü kann ich 4 Produkte auswählen ( a,b,c,d)
Je nach Produkt benötige ich unterschiedliche Datenfelder die automatisch gefüllt werden. ( Teilaufgabe schon gelöst)
Um eine schöne Darstellung der Ergebnisse zu ermöglichen, wollte ich aber bei Auswahl des Produktes z.B. a nur diese Felder anzeigen lassen. Dementsprechend müssen dann die Felder bzw. Zeilen für b,c und d ausgeblendet werden. Bzw. wenn kein Produkt ausgewählt ist soll auch nichts angezeigt werden.
Überlegte Lösung:
Ich habe die Datenfelder für die verschiedenen Produkte in Zeilen angelegt.
Produkt a Datenfelder in Zeile 5 bis 7 (5:7)
Produkt b Datenfelder in Zeile 8 bis 10 (8:10)
Produkt c Datenfelder in Zeile 11 bis 13 (11:13)
Produkt d Datenfelder in Zeile 14 bis 16 (14:16)
Nun möchte ich realisieren, dass wenn ich über das Drop-Down-Menü Produkt b auswähle nur die Zeilen 8 : 10 angezeigt werden.
Dies konnte ich mit den folgenden Code erfolgreich durchführen.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim varAusblend As Range
Dim varSchalter As Range
Set varAusblend = ActiveSheet.Rows("8:10")
Set varSchalter = ActiveSheet.Cells(2, 1)
If varSchalter.Value = "b" And varAusblend.Hidden = True Then
varAusblend.Hidden = False
Else
If varSchalter.Value  "b" And varAusblend.Hidden = False Then
varAusblend.Hidden = True
End If
End If
End Sub

Das ungelöste Problem ist nun, die Verkettung der Produkte bzw. eine übersichtliche Programmierung, um Zukünftig weitere Produkte zu ergänzen.
Vielen Dank für euere Unterstützung. Ich hoffe ich konnte mein Problem genau erläutern.
Mit freundlichen Gruß
Andy

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
zeig doch bitte eine Bsp.Datei ... owT
04.05.2016 15:40:07
Matthias

AW: Hilfe ich verzweifel!
04.05.2016 15:40:42
Fennek
Hallo,
mein erster Gedanke wäre "autofilter". Der kann sowohl von Hand gesteuert werden als auch über vba.
Falls das nicht klappen sollte, gibt es sicher auch andere Möglichkeiten.
mfg

AW: Hilfe ich verzweifel!
04.05.2016 16:26:21
Rudi
Hallo,
so?

Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngAusblend As Range
Dim varSchalter
varSchalter = Cells(2, 1)
Select Case LCase(varSchalter)
Case "a": Set rngAusblend = Rows(5).Resize(3)
Case "b": Set rngAusblend = Rows(8).Resize(3)
Case "c": Set rngAusblend = Rows(11).Resize(3)
Case "d": Set rngAusblend = Rows(14).Resize(3)
End Select
Range(Rows(5), Rows(16)).Hidden = True
If Not rngAusblend Is Nothing Then
rngAusblend.Hidden = False
End If
End Sub

Gruß
Rudi

Anzeige
AW: Hilfe ich verzweifel!
04.05.2016 16:34:27
Andy
Vielen Dank Rudi :)
das funktioniert :)
könntest du mir die Progammierung etwas erläutert, damit ich Sie genau verstehe :)
Bzw. auf weitere Beispiele anpassen könnte :) Wäre super nett :)
Ihr seid echt der Hammer :)

AW: Hilfe ich verzweifel!
04.05.2016 16:46:47
Rudi
Hallo,
eigentlich müsste rngAusblend ja rngEinblend heißen.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngEinblend As Range
Dim varSchalter
varSchalter = Cells(2, 1) 'der Artikel
Select Case LCase(varSchalter)  'Artikel in Kleinschreibung!!!!!
'setzen der sichtbaren Bereiche anhand Artikel
Case "a": Set rngEinblend = Rows(5).Resize(3)   'Zeile 5:7
Case "b": Set rngEinblend = Rows(8).Resize(3)   'Zeile 8:10
Case "c": Set rngEinblend = Rows(11).Resize(3)  'Zeile 11:13
Case "d": Set rngEinblend = Rows(14).Resize(3)  'Zeile 14:16
End Select
'erst mal alles ausblenden
Range(Rows(5), Rows(16)).Hidden = True
'wenn der Einblendbereich definiert ist dann einblenden
If Not rngEinblend Is Nothing Then
rngEinblend.Hidden = False
End If
End Sub
Gruß
Rudi

Anzeige
AW: Hilfe ich verzweifel!
04.05.2016 17:12:29
Werner
Hallo Rudi,
da zeigt sich mal wieder der Meister. Bin auch gerade dran gesessen und habe mit Select Case probiert.
Sieht bei dir aber irgendwie eleganter aus - das ist halt der Unterschied zwischen dem Lehrling und einem Meister.
Ich danke auch - wieder was gelernt
Gruß Werner

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige