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.