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

Formula1 mit variablen zellen Bereich

Forumthread: Formula1 mit variablen zellen Bereich

Formula1 mit variablen zellen Bereich
21.03.2018 10:40:38
Anina
Hallo,
ich möchte per VBA ein dropdown erstellen. Das funktioniert auch alles so weit, aber nur wenn ich für Formula!:="=B4:G4" angebe. Ich hab mir überlegt das Formula1 ja ein string ist also müsste ich es ja durch & verknüpft werden können, aber irgendwo habe ich einen Fehler:
'über dem "+/-" soll das dropdown menü hin
Set Ergebnis = ThisWorkbook.Sheets("EU_BB").Cells.Find(what:="+/-", lookat:=xlWhole)
d = Ergebnis.Column
a = d - 1
With ThisWorkbook.Sheets("EU_BB").Range(Cells(4, d), Cells(4, d)).Validation
.Delete
.Add _
Type:=xlValidateList, _
Formula1:="=" & ThisWorkbook.Sheets("EU_BB").Cells(5, 2) & ":" & ThisWorkbook.Sheets("EU_BB").Cells(5, a)
End With
Vielen Dank für eure Hilfe!
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Es fehlt am Ende jeweils .Address - o.w.T.
21.03.2018 10:51:55
Beverly


Danke!!!
21.03.2018 11:06:42
Anina
Es funktioniert! Tausend Dank
Danke für die Rückmeldung - o.w.T.
21.03.2018 12:25:41
Beverly


Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Dynamische Dropdown-Listen mit VBA in Excel erstellen


Schritt-für-Schritt-Anleitung

Um ein dynamisches Dropdown-Menü in Excel mithilfe von VBA zu erstellen, folge diesen Schritten:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste in den Projekt-Explorer und wähle Einfügen > Modul.

  3. Füge den folgenden Code ein:

    Sub ErstelleDropdown()
       Dim Ergebnis As Range
       Dim d As Long
       Dim a As Long
    
       ' Suche nach dem "+" Zeichen
       Set Ergebnis = ThisWorkbook.Sheets("EU_BB").Cells.Find(what:="+/-", lookat:=xlWhole)
       d = Ergebnis.Column
       a = d - 1
    
       ' Erstelle die Validierung für das Dropdown
       With ThisWorkbook.Sheets("EU_BB").Range(Cells(4, d), Cells(4, d)).Validation
           .Delete
           .Add _
           Type:=xlValidateList, _
           Formula1:="=" & ThisWorkbook.Sheets("EU_BB").Cells(5, 2).Address & ":" & ThisWorkbook.Sheets("EU_BB").Cells(5, a).Address
       End With
    End Sub
  4. Führe das Makro aus: Gehe zu Run > Run Sub/UserForm oder drücke F5.


Häufige Fehler und Lösungen

  • Fehler: „Objekt nicht gefunden“

    • Lösung: Stelle sicher, dass die Zelle mit dem „+/-“ tatsächlich existiert. Überprüfe die Schreibweise und die Referenzen.
  • Fehler: Dropdown zeigt keine Werte an

    • Lösung: Überprüfe, ob die Zellen, die du in der Formula1-Eigenschaft angibst, tatsächlich Werte enthalten. Achte darauf, dass die Adressierung korrekt ist.
  • Fehler: Keine gültige Validierung

    • Lösung: Stelle sicher, dass die Range für die Validation korrekt definiert ist und die Zellen, auf die verwiesen wird, gültig sind.

Alternative Methoden

Wenn du eine Alternative zur Verwendung von VBA für die Erstellung eines Dropdowns suchst, kannst du auch die Funktion „Datenüberprüfung“ in Excel verwenden:

  1. Wähle die Zelle aus, die das Dropdown-Menü enthalten soll.
  2. Gehe zu „Daten“ > „Datenüberprüfung“.
  3. Wähle „Liste“ aus dem Dropdown-Menü.
  4. Gib die Quelle für die Liste ein (z.B. =B5:G5).

Diese Methode ist einfacher, bietet jedoch weniger Flexibilität als die VBA-Lösung.


Praktische Beispiele

Hier sind einige Beispiele für die Anwendung der vba formula1:

  • Beispiel 1: Wenn du ein Dropdown mit Werten aus Zellen B5 bis E5 erstellen möchtest, kannst du die Formula1-Eigenschaft wie folgt anpassen:

    Formula1:="=" & ThisWorkbook.Sheets("EU_BB").Cells(5, 2).Address & ":" & ThisWorkbook.Sheets("EU_BB").Cells(5, 5).Address
  • Beispiel 2: Um ein Dropdown von einer variablen Anzahl an Zellen zu erstellen, kannst du die a-Variable dynamisch anpassen, wie im obigen Code gezeigt.


Tipps für Profis

  • Verwende benannte Bereiche: Anstatt Zellreferenzen direkt zu verwenden, kannst du benannte Bereiche in Excel erstellen. Das verbessert die Lesbarkeit und Wartbarkeit deines Codes.

  • Nutze Fehlerbehandlung: Verwende On Error Resume Next, um mögliche Fehler abzufangen und das Makro robuster zu gestalten.

  • Automatisiere das Makro: Du kannst das Makro so anpassen, dass es automatisch beim Öffnen der Arbeitsmappe ausgeführt wird.


FAQ: Häufige Fragen

1. Frage Was ist der Unterschied zwischen Validation.Formula1 und Formula1 in VBA?

Antwort: Validation.Formula1 ist der spezifische Zugriff auf die Formel innerhalb der Datenvalidierung, während Formula1 eine allgemeinere Bezeichnung für die Eingabe von Formeln in VBA ist.

2. Frage Kann ich mehrere Dropdowns in verschiedenen Zellen gleichzeitig erstellen?

Antwort: Ja, du kannst eine Schleife in deinem VBA-Skript verwenden, um mehrere Dropdowns in verschiedenen Zellen zu erstellen, indem du die Zellreferenzen dynamisch anpasst.

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