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

Forumthread: Makro ausführen nach Auswahl aus Dropdown

Makro ausführen nach Auswahl aus Dropdown
24.10.2008 20:55:51
PeterO
Hallo Leute!
Ich verzweifle langsam und habe auch im Forum keine Lösung für mich gefunden. Folgendes Problem:
Der Benutzer einer Tabelle muss in B5 per Gültigkeitslistendropdown den Begriff "PKW" bzw. "Anhänger" wählen. Je nach Auswahl soll in D5 das Zellformat entweder auf 0 "kW" oder 0,0 "to." gesetzt werden.
Die Formatierung an sich ist nicht das Problem. Das würde ich z.B. mit Selection.NumberFormat = "0,0 ""to.""" über VBA lösen können.
Mein Problem besteht jedoch darin, dass ich nicht weis, wie ich den Code "auslösen" soll. Zudem sollte die Änderung auch bei späterer Änderung des Dropdownfeldes automatisch erfolgen.
Wäre echt nett, wenn mir da jemand helfen könnte.
Gruß PeterO
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Makro ausführen nach Auswahl aus Dropdown
24.10.2008 21:05:00
Hajo_Zi
Hallo Peter,
benutze

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$3" Then
'Dein Code
End If
End Sub



AW: Makro ausführen nach Auswahl aus Dropdown
24.10.2008 21:13:23
PeterO
Hallo Hajo,
mein VBA ist wirklich bescheiden...
Deinen Ansatz verstehe ich im Grunde schon, nur wie bringe ich ihm bei, bei der Auswahl PKW in B5 die Zelle D5 in "kW" zu formatieren. Mir fehlt quasi die Funktion um die Zelle B5 auszulesen, zu interpretieren und dann D5 zu ändern.
Peter
Anzeige
AW: Makro ausführen nach Auswahl aus Dropdown
24.10.2008 21:31:00
Hajo_Zi
Hallo Peter,
bei
' Dein Code
Select CAse Target
case "PKW"
Range(D5")="KW"
End Select
Eine Formatierung "KW" ist mir nicht bekannt.
Gruß Hajo
AW: Makro ausführen nach Auswahl aus Dropdown
24.10.2008 21:55:00
Uwe
Hi Peter,
ich habe mal anhand von Hajos Vorschlägen eine Code zusammengebastelt, der meiner Meinung nach funktioniert:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$5" Then
With ActiveSheet
Select Case Target
Case "PKW"
.Range("D5").NumberFormat = "0 ""KW"""
Case "Anhänger"
.Range("D5").NumberFormat = "0.0 ""to."" "
End Select
End With
End If
End Sub


?
Gruß
Uwe
(:o)

Anzeige
AW: Makro ausführen nach Auswahl aus Dropdown
25.10.2008 12:29:00
PeterO
Hallo Hajo, hallo Uwe,
sieht sehr gut aus, werde es aber erst am Montag testen können. Melde mich dann noch mal.
Gruß Peter
AW: Makro ausführen nach Auswahl aus Dropdown
27.10.2008 20:35:00
PeterO
Nochmals ein freundliches "Hallo" an alle!
vielen Dank für eure Hilfe. Natürlich auch an Chris. Hat prima geklappt.
Peter
AW: Makro ausführen nach Auswahl aus Dropdown
24.10.2008 21:08:00
chris
Hallo Peter,
würde das funktionieren ?
Weil ein ereigniss für dropdown gibt es soweit ich weiß nicht.
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = ("$B$5") Then
MsgBox ("wechsel erfolgte")
Else
End If
End Sub


gruß Chris

Anzeige
;

Forumthreads zu verwandten Themen

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

Makro ausführen nach Auswahl aus Dropdown


Schritt-für-Schritt-Anleitung

  1. Erstelle das Dropdown-Menü:

    • Wähle die Zelle B5 aus.
    • Gehe zu Daten > Datenüberprüfung.
    • Wähle Liste und gib die Werte "PKW, Anhänger" ein.
  2. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  3. Füge den Code ein:

    • Doppelklicke auf das Tabellenblatt im Projektfenster, in dem du das Dropdown erstellt hast (z.B. Tabelle1).
    • Füge folgenden Code in das Fenster ein:
    Private Sub Worksheet_Change(ByVal Target As Range)
       If Target.Address = "$B$5" Then
           With ActiveSheet
               Select Case Target.Value
                   Case "PKW"
                       .Range("D5").NumberFormat = "0 ""KW"""
                   Case "Anhänger"
                       .Range("D5").NumberFormat = "0.0 ""to."""
               End Select
           End With
       End If
    End Sub
  4. Teste das Makro:

    • Wechsle zurück zu Excel und wähle in B5 "PKW" oder "Anhänger". Die Zelle D5 sollte sich entsprechend formatieren.

Häufige Fehler und Lösungen

  • Error: Das Makro wird nicht ausgelöst.

    • Stelle sicher, dass du die richtige Zelle (B5) im Code angegeben hast.
  • Fehler bei der Formatierung.

    • Überprüfe den Formatierungsstring im Code. Er sollte den korrekten Syntax verwenden, z.B. 0 ""KW""" für kW.
  • Dropdown funktioniert nicht.

    • Achte darauf, dass die Gültigkeitsprüfung korrekt eingerichtet ist und dass die Zellen die richtigen Werte enthalten.

Alternative Methoden

  • Verwende ein Formularsteuerelement:

    • Anstelle eines Dropdowns kannst du auch ein Kombinationsfeld verwenden, welches mehr Optionen bietet.
  • Nutze die Worksheet_SelectionChange-Ereignisprozedur:

    • Damit kannst du andere Aktionen auslösen, wenn eine Zelle selektiert wird, nicht nur bei einer Änderung.

Praktische Beispiele

  • Beispiel 1: Automatische Berechnung

    • Wenn du in B5 "PKW" auswählst, könnte D5 nicht nur das Format ändern, sondern auch automatisch einen Wert wie 200 einfügen.
  • Beispiel 2: Mehrere Dropdowns

    • Du kannst mehrere Dropdowns in verschiedenen Zellen haben, die jeweils unterschiedliche Zellen beeinflussen.
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Me.Range("B5:B10")) Is Nothing Then
        Dim cell As Range
        For Each cell In Target
            Select Case cell.Value
                Case "PKW"
                    cell.Offset(0, 1).NumberFormat = "0 ""KW"""
                Case "Anhänger"
                    cell.Offset(0, 1).NumberFormat = "0.0 ""to."""
            End Select
        Next cell
    End If
End Sub

Tipps für Profis

  • Verwende Option Explicit:

    • Das hilft, Fehler zu vermeiden, da du alle Variablen deklarieren musst.
  • Debugging:

    • Nutze Debug.Print oder setze Haltepunkte, um den Code zu überprüfen und Fehler schneller zu finden.
  • Dokumentation:

    • Kommentiere deinen Code gut, damit du und andere ihn später leichter verstehen können.

FAQ: Häufige Fragen

1. Wie fülle ich andere Zellen automatisch aus, wenn ich Werte in der Excel Dropdownliste auswähle? Du kannst den obigen VBA-Code anpassen, um zusätzliche Zellen automatisch zu füllen, indem du .Offset oder .Range verwendest.

2. Kann ich mehrere Dropdowns in einer Tabelle verwenden? Ja, du kannst mehrere Dropdowns in einer Excel-Tabelle verwenden. Jeder Dropdown kann unabhängig voneinander andere Zellen beeinflussen.

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