Ich überarbeite derzeit für meine Arbeitsstelle Checklisten zur Planung von Veranstaltungen, die von Word(!) auf Excel umgestellt werden. Dabei möchte ich die Möglichkeiten, die Excel bietet, auch nutzen, um mit möglichst wenigen Klicks die wichtisten Schritte abzuprüfen.
Schnell wurde klar, ich brauche Makros und da bin ich leider raus. Ich habe eine Weile rumprobiert, bin mit ChatGPT auch anfänglich gut gefahren, aber jetzt geht es nicht mehr. Das mag auch daran liegen, dass irgendwas mit der Datei nicht stimmt (deaktivierte Makros etc.).
Ich habe ChatGPT folgende aufgabe gestellt:
Ich benötige ein Makro für eine Excel-Liste.
Diese umfasst fünf Arbeitsblätter in folgende Reihenfolge: "Checkliste", "Möblierung", "Bewirtung", "Technik", "Makros für Tabelle".
In der Tabelle befindet sich ein Dropdownmenü mit den Einträgen: "bitte auswählen!", "Vortrag mit Publikumsgespräch", "Podiumsdiskussion", "Buchvorstellung", "Sonderveranstaltung".
In Spalte A befinden sich insgesamt 42 Kontrollkästchen als array. Diese sind laufend bezeichnet als "box" und den Zahlen von 1 bis 42.
Das Makro soll folgende Funktionen haben:
Dropdownauswahl = "bitte auswählen!" gewählt, dann wird kein Kontrollkästchen markiert. Alle bereits markierten Kontrollkästchen verlieren ihre Markierung.
Dropdownauswahl = "Vortrag mit Publikumsgespräch" oder "Podiumsdiskussion" oder "Buchvorstellung" oder "Sonderveranstaltung" gewählt, dann werden alle Kontrollkästchen markiert bis auf box14, box19, box21, box24, box 25, box36, box38.
Antwort von ChatGPT:
Private Sub Worksheet_Change(ByVal Target As Range)
' Überprüfen, ob sich die geänderte Zelle im Dropdown-Menü befindet
If Not Intersect(Target, Me.Range("C2")) Is Nothing Then
Dim chkBox As CheckBox
' Schleife durch alle Kontrollkästchen im Arbeitsblatt "Checkliste"
For Each chkBox In Me.CheckBoxes
If Target.Value = "bitte auswählen!" Then
' Alle Kontrollkästchen deaktivieren
chkBox.Value = xlOff
Else
' Bestimmte Kontrollkästchen deaktiviert lassen
Select Case chkBox.Name
Case "box14", "box19", "box21", "box24", "box25", "box36", "box38"
chkBox.Value = xlOff
Case Else
' Alle anderen Kontrollkästchen aktivieren
chkBox.Value = xlOn
End Select
End If
Next chkBox
End If
End Sub
Ich hatte vorher einmal angegeben, dass ich das dropdownmenü in C2 positioniert habe. Aber sind Menü und C2 überhaupt verknüpft? Außerdem habe ich der Optik halber C2-F2 verbunden (aber in der Funktionsleiste wird C2 für das Menü genannt).
Nun ist es so:
- Im einem Fall gibt Excel einen Kompilierungsfehler aus: "me" bei "me.range" sei unzulässig. Warum ist das so?
- Im anderen Fall sagt Excel, das Makro sei nicht verfügbar in der Arbeitsmappe oder alle Makros seien deaktiviert. Habe in der "Makrosicherheit" alle Optionen aktiviert, die Makrozugriff zulassen.
Kann mir jemand helfen?
Vielen Dank und beste Grüße
J