Frage von syrena1992, 20

Wie umsetzen mit Makro/VBA in Excel?

Hallo,

ich möchte gerne folgendes Problem in Excel über ein Makro/VBA umsetzen. Der Nutzer muss dazu in Zelle H10 zwischen drei Varianten auswählen:

- Wählt er manuell, so soll Zelle Q10 leer beschrieben werden.

- Wählt er 24, so soll das Datum in Zelle V10 abzüglich der Zahl aus Tabelle1 Zelle B2 an Monaten abgezogen werden also =Datum(Jahr(V10);Monat(V10)-Tabelle1!B2;1)

-Wählt er 48, so soll statt Tabelle1!B2 Zelle B4 verwendet werden.

Wie setze ich dies um? Ich habe bisher noch nie mit VBA gearbeitet und wäre über eine schrittweise Umsetzung sehr sehr dankbar! Dieser Vorgang soll jedes mal durchgeführt werden, sobald etwas aus der Dropdownliste ausgewählt wird!

Vielen Dank! LG Syrena

Expertenantwort
von Oubyi, Community-Experte für Excel, 11

Das ginge auch per Formel, allerdings denke ich mal, dass Du bei "manuell" dann auch manuelle bei Q10 eintragen willst und das die Formel überschreiben würde. DANN geht das wirklich nur mit VBA und zwar so:

Mache einen Rechtsklick auf den Tabellenreiter (unten, da wo z.B. Tabelle2 steht) und gehe dann auf "Code anzeigen...".
In das große Fenster des VBA-Editors, der sich dann öffnet kopierst Du folgenden Code:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("H10")) Is Nothing Then
Select Case Range("H10").Value
Case "manuell"
Range("Q10").ClearContents
Case 24
Range("Q10").Value = DateAdd("m", Worksheets("Tabelle1").Range("B2") * -1, Range("V10"))
Case 48
Range("Q10").Value = DateAdd("m", Worksheets("Tabelle1").Range("B4") * -1, Range("V10"))
End Select
End If
End Sub

Die Datei musst Du danach aber als .xlsm speichern, und Makros zulassen.

Das habe ich jetzt mal auf die Schnelle zusammengestrickt, also teste auf jeden Fall genau.
Ich hoffe ich habe Dich richtig verstanden.
Für Nachbesserungen schaue ich in ein paar Stunden nochmal vorbei.

Kommentar von syrena1992 ,

Super! Vielen Dank!

Hat wunderbar funktioniert.

Kommentar von Oubyi ,

Gern geschehen ☼

Keine passende Antwort gefunden?

Fragen Sie die Community