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

Forumthread: Drop Down Bereich mit Makro ändern

Drop Down Bereich mit Makro ändern
Borat
Hallo zusammen,
ich bin noch ein VBA Anfänger und hoffe Ihr könnt mir helfen.
Ich habe eine Downdrop Liste die auf ein Datensatz zugreif(A1:L374).
Ich würde jetzt gern ein Makro haben das den Bereich der Downdrop Liste automatisch
auf die größe meines Datensatzes anpasst, weil im Datensatz können noch Zeilen hinzukommen.
Ich kann den Bereich so eingrenzen.
Worksheets("nach ADName").Range(Cells(1, 1), Cells(Cells.Find("*", searchdirection:=xlPrevious).Row, 12)).Select
Aber bekomm den Bereich einfach nicht in das Makro:
ActiveSheet.Shapes("Drop Down 1").Select
With Selection
.ListFillRange = "'nach ADName'!$A$1:$L$374"
.LinkedCell = "$A$1"
.DropDownLines = 25
.Display3DShading = False
End With
End Sub
Hoffe hier hat jemand eine Idee
Gruß
Borat
Anzeige
AW: Drop Down Bereich mit Makro ändern
11.02.2011 16:37:19
Beverly
Hi Borat,
definiere doch einen dynamischen Bereich mittels BEREICH.VERSCHIEBEN(), der sich automatisch an die Anzahl deiner Daten anpasst und gib diesen Bereich fest als ListFillRange an. Dann musst du nichts per VBA ändern.


Anzeige
AW: Drop Down Bereich mit Makro ändern
11.02.2011 17:32:46
Borat
Hey Beverly,
danke für deine schnelle Antwort aber kann du das mit dem Bereich.Verschieben() bitte nochmal erklären?
Die Formel sagt mir nichts und als ich es probiert hab bekamen bei mir nur Fehlermeldungen.
Ich versteh auch leider gar nicht wie ich diese formel hier anwenden kann.
Könntest du vll mal eine Beispiel Formel schreiben?
Vielen Dank
Gruß
Borat
Anzeige
AW: Drop Down Bereich mit Makro ändern
12.02.2011 10:16:34
Beverly
Hi Borat,
der Inhalt des DropDown-Listenfeldes E1 passt sich an die Anzahl der in Spalte F vorhandenen Einträge an:
Tabelle1
 EF
1ba
2  b
3  c
4  d
5  e
6  f

definierte Namen
Name Bezieht sich auf Tabelle Z1S1-Formel
Liste=BEREICH.VERSCHIEBEN(Tabelle1!$F$1;;;ANZAHL2(Tabelle1!$F:$F);1) =BEREICH.VERSCHIEBEN(Tabelle1!Z1S6;;;ANZAHL2(Tabelle1!S6);1)

Daten, Gültigkeit
Zelle Zulassen Daten Wert1 Wert2 Leere Zellen ignorieren Zellendropdown Titel Eingabemeldung Eingabemeldung Titel Fehler Fehlermeldung
E1Liste   =Liste     Wahr   Wahr          

Tabellendarstellung in Foren Version 5.38




Anzeige
AW: Drop Down Bereich mit Makro ändern
14.02.2011 12:05:29
Borat
Hey,
ich glaub ich hab mich etwas falsch ausgedrückt.
Was ich eigentlich wollte ist keine typische Downdrop liste sondern eine Kombinationsfeld,
dass ich als Auswahlliste benutze.
Ich benutz diese Auswahl auf einem anderen Worksheet um mir dann mit =INDEX nur die ausgewählte Zeile wiederzugeben.
Nur ändert sich der Bereich bei =INDEX und im Kombinationsfeld nicht automatisch wenn Daten hinzukommen.
Vll kann man alles auch anders lösen wie ich das versucht habe.
Ich bin da für jeden Änderungsvorschlag offen.
Mit dem Bereich.Verschieben kam ich hier leider nicht weiter.
Da man jetzt bei wahrscheinlich gar nicht mehr mitkommt habe ich ein Beispiel Datei hochgeladen wie
es im Moment aussieht.
https://www.herber.de/bbs/user/73536.xls
Gruß
Borat
Anzeige
AW: Drop Down Bereich mit Makro ändern
14.02.2011 13:56:13
Beverly
Hi Borat,
und wo liegt da das Problem, dass du bei dem Kombinationsfeld als Eingabebereich einen per Namen definierten Bereich verwendest, der sich dynamisch nach unten erweitert - so wie in dem geposteten Ausschnitt? Es spielt doch keine Rolle, ob das ein DropDown-Listenfeld aus der Gültigkeitsprüfung oder ein Kombinationsfeld aus der Formular-Symbolleiste ist. Die Formel in deinem Fall bezieht sich nur auf eine andere Spalte und ein anderes Tabellenlatt:
=BEREICH.VERSCHIEBEN('nach ADName'!$D$1;;;ANZAHL2('nach ADName'!$D:$D);1)


Anzeige
AW: Drop Down Bereich mit Makro ändern
14.02.2011 15:18:05
Borat
Hey Beverly,
danke das du mir versuchst zu helfen.
Mein Problem ist es funktioniert irgendwie nicht.
Wenn ich auf mein Kombinationsfeld (siehe Bsp. Datei oben) klick und den Bereich auf deine Formel
=BEREICH.VERSCHIEBEN('nach ADName'!$D$1;;;ANZAHL2('nach ADName'!$D:$D);1)
ändern will übernimmt Excel es einfach nicht.
Auch wenn ich den Bereich per VBA ändern will.
Sub Makro1()
Sheets("nach AD").Select
ActiveSheet.Shapes("Drop Down 3").Select
With Selection
.ListFillRange = "=BEREICH.VERSCHIEBEN('nach ADName'!$D$1;;;ANZAHL2('nach ADName'!$D:$D) _
_
;1)"
.LinkedCell = "$N$2"
.DropDownLines = 25
.Display3DShading = True
End With
End Sub

Bekomm ich keine Fehlermeldung er nimmt es nur einfach nicht an.
Ich schaff es auch nicht den Bereich in die INDEX Formeln einzubauen.
Anzeige
AW: Drop Down Bereich mit Makro ändern
15.02.2011 09:21:53
Beverly
Hi Borat,
nicht die BEREICH.VERSCHIEBEN-Forml dort eintragen sondern einen Namen definieren (z.B. Liste), bei dem du unter Bezieht sich auf diese Formel eingibst. Und im Konbinationsfeld trägst du als Eingabebereich ein: Liste


Anzeige
AW: Drop Down Bereich mit Makro ändern
15.02.2011 10:17:48
Borat
Hey,
wie soll ich das den definieren (Sorry bin noch ein VBA Anfänger)
Habs mal so probiert funktioniert aber nicht.
Dim Liste As Range
Liste.Formula = "=BEREICH.VERSCHIEBEN('nach ADName'!$D$1;;;ANZAHL2('nach ADName'!$D:$D);1)"
Gruß
Borat
VBA Anfänger hin und her...
15.02.2011 10:22:43
robert
Hi,
aber lesen kannst du doch-oder?
Beverly hat dir doch die lösung geschrieben:
Excel-Menü:
Einfügen-Namen-Definieren usw...
gruß
robert
Anzeige
AW: VBA Anfänger hin und her...
15.02.2011 10:48:00
Borat
Ahhhhh dankeschön. Hab mir schon gedacht das ich irgendwie auf dem Schlauch steh ^^
Hab noch nie im Excel Menü: Einfügen-Namen-Definieren verwendet deswegen wusste ich erstmal nichts damit anzufangen.
Jetzt klappts aber Wunderbar vielen Dank euch beiden.
Gruß
Borat
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Drop Down Bereich in Excel dynamisch bearbeiten


Schritt-für-Schritt-Anleitung

Um ein Excel Drop Down Menü dynamisch zu bearbeiten, kannst Du die Funktion BEREICH.VERSCHIEBEN() verwenden. Diese Methode ermöglicht es Dir, den Bereich Deiner Dropdown-Liste automatisch anzupassen, wenn neue Daten hinzugefügt werden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Erstelle eine Tabelle mit Deinen Daten: Lege Deine Daten in einer Spalte, z.B. in Spalte F, an.

  2. Definiere einen dynamischen Bereich: Gehe zu Formeln > Namensmanager > Neu.

    • Name: Liste
    • Bezieht sich auf:
      =BEREICH.VERSCHIEBEN(Tabelle1!$F$1;;;ANZAHL2(Tabelle1!$F:$F);1)
  3. Füge das Dropdown-Menü ein:

    • Wähle die Zelle aus, in der das Dropdown-Menü erscheinen soll.
    • Gehe zu Daten > Datenüberprüfung.
    • Wähle Liste und gebe als Quelle =Liste ein.
  4. Makro zur Anpassung des Dropdown-Bereichs (optional): Wenn Du VBA verwenden möchtest, erstelle ein Makro:

    Sub Makro1()
       With ActiveSheet.Shapes("Drop Down 1")
           .ListFillRange = "Liste"
           .LinkedCell = "$A$1"
           .DropDownLines = 25
           .Display3DShading = False
       End With
    End Sub

Häufige Fehler und Lösungen

  • Fehler bei der Definition des Bereichs: Wenn Du die Formel für BEREICH.VERSCHIEBEN nicht korrekt eingibst, wird sie möglicherweise nicht akzeptiert. Stelle sicher, dass der Bezug auf die Zelle korrekt ist und dass Du keine Leerzeichen oder Tippfehler hast.

  • Dropdown-Menü zeigt keine Werte an: Überprüfe, ob der definierte Name korrekt auf die Daten verweist. Manchmal kann es nötig sein, Excel neu zu starten, um die Änderungen zu sehen.


Alternative Methoden

Es gibt mehrere Wege, ein Dropdown-Menü in Excel zu bearbeiten:

  • Verwendung von Tabellen: Du kannst Deine Daten in eine Excel-Tabelle umwandeln. Excel passt die Dropdown-Liste automatisch an, wenn Du Zeilen hinzufügst oder entfernst.

  • Direktes Bearbeiten der Datenquelle: Statt VBA zu verwenden, kannst Du die Datenquelle manuell anpassen und die Gültigkeitsprüfung erneut festlegen.


Praktische Beispiele

  1. Beispiel für eine Auswahlliste: Angenommen, Du hast eine Liste von Produkten in Spalte F. Mit der oben genannten Methode kannst Du ein Dropdown-Menü in Zelle E1 erstellen, das sich automatisch aktualisiert, wenn Du neue Produkte hinzufügst.

  2. Kombinationsfeld: Wenn Du ein Kombinationsfeld nutzt, um eine Auswahl zu treffen, kannst Du ebenfalls die BEREICH.VERSCHIEBEN-Formel verwenden, um sicherzustellen, dass das Kombinationsfeld immer die neuesten Daten anzeigt.


Tipps für Profis

  • Verwende benannte Bereiche: Das Arbeiten mit benannten Bereichen macht die Wartung und Übersichtlichkeit Deiner Formeln einfacher.

  • Nutze VBA sinnvoll: Wenn Du oft Änderungen in Deinen Daten hast, kann ein Makro, das die Dropdown-Listen aktualisiert, viel Zeit sparen.

  • Teste Deine Formeln: Bevor Du eine große Menge an Daten eingibst, teste Deine Formeln mit einer kleinen Datenmenge.


FAQ: Häufige Fragen

1. Kann ich mehrere Dropdown-Listen in einem Arbeitsblatt erstellen? Ja, Du kannst mehrere Dropdown-Listen in verschiedenen Zellen oder Bereichen auf demselben Arbeitsblatt erstellen.

2. Wie kann ich die Dropdown-Werte ändern, ohne die Datenquelle anzupassen? Du kannst die Werte in der Datenquelle selbst ändern, und das Dropdown-Menü wird automatisch aktualisiert, wenn Du die BEREICH.VERSCHIEBEN-Funktion korrekt definiert hast.

3. Was mache ich, wenn mein Makro nicht funktioniert? Überprüfe, ob Du die richtige Syntax verwendest und dass die Zellen richtig referenziert sind. Achte darauf, dass das Dropdown-Menü den korrekten Namen hat.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige