Checkboxen nach Zelleinträgen benennen
07.03.2024 15:02:07
Rene
kurze Erläuterung:
Ich muss täglich Protokolle mit Zahlungen mit mehreren Excel Dateien und Tabellen abgleichen. Hierzu bekomme ich Dateien in einen Ordner gepackt, welche ich einzelen über das Tool Notepad++ öffne und diese Einträge dann in meinen Exceldateien auf verschiedenen Tabellenblätter suche und diese dann manuell mit einem "x" abzuhaken. Ich hatte versucht in Excel über Daten -> aus Datei -> aus Ordner einzulesen und zu importieren, aber das klappt nur mittelmäßig, da die Formatierung dann eine Katastrophe ist. Teilweise sind vor den Einträgen zig Leerzeichen etc und das ist für mich einfach zu schwierig. Es wäre natürlich super, wenn diese eingelesen und automatisch abgeglichen werden, aber mache ich mir nichts vor, das bekomme ich so nicht hin, ohne täglich 25 Fragen zu stellen. :)
Da ich die Daten aus dem Protokoll mit mehreren Exceldateien und mehreren Tabellenblättern suchen und abgleichen muss dachte ich, ich könnte eine Userform basteln, dort die Werte aller in meinen Exceldateien vorhandenen Einträgen die abgeglichen werden müssen als Checkboxen anzeigen lassen, die dann nach dem Abhaken in den jeweiligen Exceldateien das "x" setzen als erledigt.
In Kurzform:
Auf der Userform sollen bestimmte Spalten meiner Excellisten als Checkbox angezeigt werden, die den Namen der jeweiligen Zellen enthalten. Nach dem abhaken der jeweiligen Checkbox, soll dann ein "x" in die Exceldatei bzw. Tabellenblatt gesetzt werden und die Checkbox, die ich soeben betätigt habe, verschwinden.
Ich habe mir aus dem Forum folgenden Code rausgeschrieben und versuche diesen zu nutzen:
Private Sub UserForm_Activate()
Dim zelle As Variant
Dim x As Byte
Dim chk As Object
x = 1
For Each zelle In Sheets("Tabelle1").Range("A4:A26")
Set chk = Me.Controls("CheckBox" & x)
chk.Caption = zelle.Value
Set chk = Nothing
x = x + 1
Next
Dieses liest ganz statisch einen Bereich aus und setzt mir den Namen neben die Checkboxen auf die Userform.
Die Checkboxen werden auch alle der Reihe nach benannt. Dabei ist es egal, ob es leere Zellen gibt, oder von einem anderen Tabellenblatt stammen.
Das hätte ich gerne etwas geordneter. Zum Beispiel das nur die Checkboxen mit Namen gefüllt werden, die auch auf Tabelle 1 (Bspiel) vorhanden sind. Dann weitere Checkboxen an einer anderen Stelle auf der Userform die Daten aus Tabelle 2 etc... Jetzt ist es einfach alles hintereinander.
Zudem habe ich noch keine Funktion, dass nach abhaken der jeweiligen Checkbox auch das "x" in der jeweiligen Tabelle gemacht wird.
Kann man sowas realisieren oder ist es zu aufwendig? Und wie könnte man das machen?
https://www.herber.de/bbs/user/167849.xlsm
Vielen lieben Dank für Eure Hilfe.
Rene