Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

[?] Produkt-Konfigurator über Dropdown

Forumthread: [?] Produkt-Konfigurator über Dropdown

[?] Produkt-Konfigurator über Dropdown
16.11.2020 14:19:54
Fabian
Hallo zusammen!
Ich bin immer wieder mal in Excel unterwegs und habe vor kurzem auch etwas angefangen mit VBA zu experimentieren.
Aktuell stehe ich vor dem Problem, dass ich für ein kleines Projekt gerne Excel nutzen würde, um eine Art Produkt-Konfigurator zu entwerfen.
Ich habe also eine Liste an Artikeln, welche unterschiedliche Optionen zur Auswahl haben. Jede gültige (machbare) Kombination hat eine Artikelnummer. Wenn man nun die Artikelnummer nicht kennt und in einer langen Liste nicht manuell suchen möchte, würde ich gerne einen Konfigurator nutzen.
Meine Idee sind verlinkte (also "intelligente") Dropdownfelder. Ich wähle so zB als erstes das Basis-Produkt, bekomme dann in weiteren Dropdowns daneben für die verschienenen Optionen alle verfügbaren angezeigt. Mit jeder Auswahl schränke ich die anderen Felder immer weiter ein, bis am Ende ein eindeutiger Artikel bleibt zu dem ich dann aus einer Spalte die Artikelnummer anzeigen möchte.
Eine Datei, wie das Ganze aussehen soll (keine Funktion, nur Dummy zu Illustrationszwecken) ist hier:
https://www.herber.de/bbs/user/141600.xlsx
Anfangs dachte ich an die Funktion INDIREKT bzw. die verschiedenen VERWEISE, aber da es ja dynamisch sein soll, dass mehrere Felder aufeinander reagieren, denke ich, dass das nur über VBA machbar ist. Und hier hört mein Wissen dann sehr schnell auf, leider.
Wenn mir jemand die Richtung zeigen könnte oder es sowas gar schon gibt als einfaches Beispiel, wäre ich sehr dankbar. :)
Beste Grüße,
Fabian
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: [?] Produkt-Konfigurator über Dropdown
16.11.2020 15:00:46
ralf_b
google nach abhängige bzw. dynamische Dropdownlisten
AW: [?] Produkt-Konfigurator über Dropdown
16.11.2020 15:04:16
Daniel
Hi
welche Excelversion hast du?
Gruß Daniel
AW: [?] Produkt-Konfigurator über Dropdown
16.11.2020 15:46:00
Fabian
@Ralf: Wie schon geschrieben: Die Idee von dynamischen Dropdowns ist mir bekannt, nur diese Komplexität bekomme ich damit einfach nicht abgebildet.
@Daniel: Ich nutze Excel 2016.
Anzeige
AW: [?] Produkt-Konfigurator über Dropdown
16.11.2020 17:36:12
Daniel
Hast du nur eine Eingabezeile oder mehrere, die unterschiedlich befüllt sein können und für die jedes DropDown individuell gefüllt sein muss?
Gruß Daniel
AW: [?] Produkt-Konfigurator über Dropdown
16.11.2020 18:37:49
Daniel
Hi
hier mal eine VBA-Lösung für deine Beispieldatei.
bevor du den Code einfügst, musst du alle notwendigen DropDowns mit dem Typ "Liste" anlegen.
die Liste ist egal.
Wenn du so eine Zelle anklickst, ermittelt der Code die aktuell notwendigen Werte und fügt sie in die Liste des DropDowns ein.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim arr
Dim z As Long, s As Long
Dim arrDaten
Dim arrAuswahl
Dim rngAuswahl As Range
Dim Pos As Long
Dim dicWerte
Set dicWerte = CreateObject("Scripting.dictionary")
Set rngAuswahl = Intersect(Target.EntireRow, Range("B:G"))
If Target.CountLarge > 1 Then Exit Sub
If Intersect(Target, rngAuswahl) Is Nothing Then Exit Sub
Application.EnableEvents = False
If Intersect(Target, Cells.SpecialCells(xlCellTypeAllValidation)) Is Nothing Then
Application.EnableEvents = True
Exit Sub
End If
Application.EnableEvents = True
If Target.Validation.Type  3 Then Exit Sub
arrDaten = Cells(2, 2).CurrentRegion.Value
arrAuswahl = rngAuswahl.Value
Pos = Target.Column - rngAuswahl.Column + 1
For z = 2 To UBound(arrDaten, 1)
For s = 1 To UBound(arrDaten, 2) - 1
If s = Pos Then
ElseIf arrAuswahl(1, s) = "" Then
ElseIf arrAuswahl(1, s) = arrDaten(z, s) Then
Else
Exit For
End If
Next
If s > UBound(arrDaten, 2) - 1 Then dicWerte(arrDaten(z, Pos) & "") = 0
Next
Target.Validation.Modify Formula1:=Join(dicWerte.keys, ",")
End Sub

Gruß Daniel
Anzeige
AW: [?] Produkt-Konfigurator über Dropdown
17.11.2020 15:58:45
Fabian
Hi Daniel!
Wow, das tut genau, was es soll, vielen Dank dafür! Ich sehe, dass ich im Zweifel bei mehr SPalten nur den Bereich entsprechend (bei Set rngAuswahl) erweitern muss.
Aktuell bekomme ich damit die einzelnen Dropdowns wie ich es mir vorgestellt habe. Wenn ich den Bereich entsprechend auf die Spalte mit den Artikelnummern erweitere, dan sehe ich diese diese auch in einem Dropdown. Was ich nicht hinbekomme ist die Artikelnummer (sobald es nur ein Ergebnis gibt; also sobald die Auswahl bereits eindeutig ist) anzuzeigen ohne dass ich das Dropdown benutzen muss. Also dass in H16 die Artikelnummer auftaucht, die zur passenden Konfiguration gehört.
Ich habe nun schon eine Weile nach Lösungen gesucht, wie man über VBA den ersten Wert eines Dropdown automatisch auswählt bzw kopiert. Aber da langen fast alle Suchanfragen in die Richtung, wie man den Standard-Wert vorbelegen kann etc. Bzw die anderen Lösungen setzen darauf, dass man die Liste nicht rein über VBA erzeugt hat, sondern die Werte aus Spalten kommen, auf die man verweisen kann. Ich werd mal weiterlesen, aber sehe noch keine LÖsung hierfür, obwohl es vermutlich sehr einfach ist.
So oder so vielen Dank schonmal, das ist super!
Anzeige
AW: [?] Produkt-Konfigurator über Dropdown
18.11.2020 16:22:31
Fabian
So, ich habe dafür nen mit etwas mehr Suche und Gebastel eine Lösung gefunden die funktioniert. Ob das schön ist ... hm, gute Frage. ;)
Wenn in F16 (Dropdown wo die Artikelnummer wäre) nur mehr ein Wert (sprich Artikel ist eindeutig) im Dropdown ist, dann kopiere diesen Wert in eine andere Zelle, sonst leere diese Zelle.
validationListValues = Range("F16").Validation.Formula1
myDelimiter = ";"
mySplit = Split(validationListValues, myDelimiter)
first = LBound(mySplit)
last = UBound(mySplit)
lengthOfArray = last - first + 1
If lengthOfArray = 1 Then
Range("H16").Value = mySplit(0)
Else
Range("H16").Value = ""
End If

Anzeige
AW: [?] Produkt-Konfigurator über Dropdown
18.11.2020 16:30:33
Daniel
HI
kannst du auch mit Formel machen.
dazu musst du noch eine Hilfsspalte einfügen, in welcher die Zeilennummer steht.
die Formel sieht dann im Prinzip so aus (Achtung, alle Optionen müssen Texte sein, keine Zahlen)
=Wenn(ZählenWenns(Spalte1;Wenn(Auswahl1="";"*";Auswahl1);Spalte2;Wenn(Auswahl2="";"*";Auswahl2);...) =1;INindex(Artikelspalte;SummeWenns(Hilfsspalte_ZeilenNummer;Spalte1;Wenn(Auswahl1="";"*";Auswahl1); Spalte2;Wenn(Auswahl2="";"*";Auswahl2);...));"Auswahl noch nicht eindeutig")
Gruß Daniel
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Produkt-Konfigurator über Dropdown in Excel erstellen


Schritt-für-Schritt-Anleitung

Um einen Produktkonfigurator in Excel zu erstellen, folge diesen Schritten:

  1. Vorbereitung der Daten: Erstelle eine Tabelle mit deinen Produkten und Optionen. Achte darauf, dass jede Kombination eine eindeutige Artikelnummer hat.

  2. Dropdown-Listen einrichten:

    • Wähle die Zelle aus, in der das Dropdown erscheinen soll.
    • Gehe zu Daten > Datenvalidierung.
    • Wähle Liste und gib den Bereich deiner Daten ein.
  3. VBA aktivieren: Aktiviere die Entwicklertools in Excel, falls sie noch nicht sichtbar sind. Gehe zu Datei > Optionen > Menüband anpassen und aktiviere die Entwicklertools.

  4. Code einfügen: Füge den folgenden VBA-Code in das entsprechende Arbeitsblatt ein:

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim arr
    Dim z As Long, s As Long
    Dim arrDaten
    Dim arrAuswahl
    Dim rngAuswahl As Range
    Dim Pos As Long
    Dim dicWerte
    Set dicWerte = CreateObject("Scripting.dictionary")
    Set rngAuswahl = Intersect(Target.EntireRow, Range("B:G"))
    If Target.CountLarge > 1 Then Exit Sub
    If Intersect(Target, rngAuswahl) Is Nothing Then Exit Sub
    Application.EnableEvents = False
    If Intersect(Target, Cells.SpecialCells(xlCellTypeAllValidation)) Is Nothing Then
       Application.EnableEvents = True
       Exit Sub
    End If
    Application.EnableEvents = True
    If Target.Validation.Type <> 3 Then Exit Sub
    arrDaten = Cells(2, 2).CurrentRegion.Value
    arrAuswahl = rngAuswahl.Value
    Pos = Target.Column - rngAuswahl.Column + 1
    For z = 2 To UBound(arrDaten, 1)
       For s = 1 To UBound(arrDaten, 2) - 1
           If s = Pos Then
           ElseIf arrAuswahl(1, s) = "" Then
           ElseIf arrAuswahl(1, s) = arrDaten(z, s) Then
           Else
               Exit For
           End If
       Next
       If s > UBound(arrDaten, 2) - 1 Then dicWerte(arrDaten(z, Pos) & "") = 0
    Next
    Target.Validation.Modify Formula1:=Join(dicWerte.keys, ",")
    End Sub
  5. Testen: Teste die Dropdowns, indem du verschiedene Optionen auswählst und überprüfst, ob die Liste dynamisch aktualisiert wird.


Häufige Fehler und Lösungen

  • Dropdown zeigt keine Werte an: Stelle sicher, dass die Datenquelle korrekt in der Datenvalidierung eingestellt ist.
  • VBA funktioniert nicht: Überprüfe, ob Makros in Excel aktiviert sind. Gehe zu Datei > Optionen > Trust Center > Einstellungen für das Trust Center und aktiviere die Makros.
  • Dropdown ist nicht dynamisch: Stelle sicher, dass die Zellen, die du zur Erstellung der Dropdowns verwendest, im richtigen Bereich sind.

Alternative Methoden

Falls du keinen VBA-Code verwenden möchtest, kannst du auch mit Formeln arbeiten. Eine Möglichkeit ist die Verwendung von WENN und ZÄHLENWENNS. Hier ein Beispiel:

=Wenn(ZählenWenns(Spalte1;Wenn(Auswahl1="";"*";Auswahl1);Spalte2;Wenn(Auswahl2="";"*";Auswahl2);...) =1;INDEX(Artikelspalte;SUMMEWENNS(Hilfsspalte_ZeilenNummer;Spalte1;Wenn(Auswahl1="";"*";Auswahl1); Spalte2;Wenn(Auswahl2="";"*";Auswahl2);...));"Auswahl noch nicht eindeutig")

Praktische Beispiele

Ein typisches Beispiel für einen Produktkonfigurator in Excel könnte so aussehen:

  • Basisprodukt: Auswahl eines Produkts (z.B. T-Shirt, Hose).
  • Farbe: Dropdown für verfügbare Farben (z.B. Rot, Blau).
  • Größe: Dropdown für Größen (z.B. S, M, L).
  • Artikelnummer: Die Artikelnummer wird automatisch angezeigt, sobald alle Optionen gewählt wurden.

Zusätzlich kannst du eine produktkonfigurator excel vorlage herunterladen, um Zeit zu sparen.


Tipps für Profis

  • Nutze benannte Bereiche für deine Dropdown-Listen, um die Übersichtlichkeit zu erhöhen.
  • Halte die Datenquelle für die Dropdown-Listen in einem separaten Blatt, um die Übersichtlichkeit zu verbessern.
  • Experimentiere mit Bedingter Formatierung, um Auswahlmöglichkeiten visuell hervorzuheben.

FAQ: Häufige Fragen

1. Wie kann ich einen Excel Konfigurator erstellen, der mehrere Produkte unterstützt? Du kannst mehrere Dropdowns erstellen und die Logik im VBA-Code erweitern, um verschiedene Produktoptionen zu berücksichtigen.

2. Gibt es Vorlagen für einen Produktkonfigurator in Excel? Ja, es gibt zahlreiche produktkonfigurator excel vorlagen online, die du anpassen kannst, um deine spezifischen Anforderungen zu erfüllen.

3. Ist es möglich, einen Excel-VBA-Produktkonfigurator für mobile Geräte zu erstellen? Die Nutzung von VBA ist auf Desktop-Versionen von Excel beschränkt. Für mobile Geräte empfiehlt es sich, auf Formeln und einfache Dropdowns zurückzugreifen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige