VBA-Form mit Dropdown und Prozentanzeige erstellen
Schritt-für-Schritt-Anleitung
-
Dropdown-Menü erstellen:
- Gehe zu der Zelle, in der das Dropdown-Menü erscheinen soll (z. B. J1).
- Wähle
Daten > Datenüberprüfung.
- Setze die zulässigen Werte auf "Won, Lost, Open, Inhouse".
-
VBA-Editor öffnen:
- Drücke
ALT + F11, um den VBA-Editor zu öffnen.
- Doppelklicke auf das entsprechende Arbeitsblatt in der Projektübersicht.
-
VBA-Code einfügen:
- Füge den folgenden Code in das Arbeitsblattmodul ein:
Option Explicit
Public Letzter As Variant
Public Vorletzter As Variant
Public VorVorletzter As Variant
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
VorVorletzter = Vorletzter
Vorletzter = Letzter
Letzter = Target
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim varWert
On Error Resume Next
If Not Intersect(Target, Range("J:J")) Is Nothing Then
Application.EnableEvents = False
Select Case LCase(Target)
Case "won": Target.Offset(0, 1) = 1
Case "lost": Target.Offset(0, 1) = 0
Case Else
varWert = Application.InputBox("Bitte Prozentzahl eingeben:", "Eingabe bei Open oder Inhouse", Type:=1)
If varWert <> False Then
Target.Offset(0, 1) = varWert / 100
End If
End Select
Target.Offset(0, 1).NumberFormat = "0%"
End If
Application.EnableEvents = True
End Sub
-
Schließe den VBA-Editor und teste das Dropdown-Menü in der Excel-Tabelle.
Häufige Fehler und Lösungen
Alternative Methoden
-
SVERWEIS-Funktion:
- Eine Alternative zur Verwendung von VBA wäre die Verwendung von
SVERWEIS, um die entsprechenden Werte basierend auf der Dropdown-Auswahl anzuzeigen. Dies ist jedoch nur möglich, wenn die Werte statisch sind.
-
Formelbasierte Eingabe:
- Du könntest eine Eingabeformel verwenden, um die Prozentwerte basierend auf der Dropdown-Auswahl zu berechnen, wenn die Eingabewerte festgelegt sind.
Praktische Beispiele
Angenommen, du hast in Spalte J ein Dropdown-Menü mit den Werten "Won", "Lost", "Open" und "Inhouse". Bei Auswahl von "Won" wird in Spalte K 100% angezeigt, bei "Lost" 0%, und bei "Open" oder "Inhouse" wirst du zur Eingabe einer Prozentzahl aufgefordert.
Case "won": Target.Offset(0, 1) = 1 ' 100%
Case "lost": Target.Offset(0, 1) = 0 ' 0%
Wenn du "Open" oder "Inhouse" wählst, öffnet sich eine Eingabemaske, in der du die gewünschte Prozentzahl eingeben kannst.
Tipps für Profis
FAQ: Häufige Fragen
1. Was ist Application.EnableEvents?
Application.EnableEvents ist eine Einstellung in VBA, die bestimmt, ob Ereignisse in Excel ausgelöst werden. Wenn es auf False gesetzt ist, werden keine Ereignisse, wie z. B. Worksheet_Change, ausgeführt.
2. Wie kann ich den Code anpassen, um andere Spalten zu verwenden?
Ändere einfach die Werte in Intersect und Target.Column zu den gewünschten Spalten.
3. Was tun, wenn die Dropdown-Werte nicht funktionieren?
Überprüfe die Datenüberprüfungseinstellungen für die Zelle, um sicherzustellen, dass die Dropdown-Liste korrekt eingerichtet ist.