Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Aktivierung Checkbox Benutzername und Datum ausgeben

Forumthread: Aktivierung Checkbox Benutzername und Datum ausgeben

Aktivierung Checkbox Benutzername und Datum ausgeben
16.03.2025 20:41:32
Benjamin
Hallo Miteinander,

ich habe eine Liste (A1:A25) mit Checkboxen in jeder Zeile.
Nach Erledigung eines Punktes z.B. A1, aktiviert UserX die Checkbox und sein Nutzername und das Datum werden in Spalte J1 und K1 ausgegeben. Quasi als Signatur.
Wie kann ich das Makro, welches ich hier im Forum gefunden und angepasst habe:

Option Explicit

Sub Checkbox()
If ActiveSheet.Shapes("Kontrollkästchen 18").ControlFormat.Value = xlOn Then
Worksheets("25-Januar").Range("J1").Value = Environ("Username")
Worksheets("25-Januar").Range("K1").Value = Date
Else
Worksheets("25-Januar").Range("J1").Value = ""
Worksheets("25-Januar").Range("K1").Value = ""
End If
End Sub


auf die verschiedenen Kontrollkästchen (unabhängig von ihrem Namen) und auf die verschiedenen Zeilen verfielfältigen. Ich könnte es zwar 25 Mal kopieren und immer die Bezüge ändern, da gibt es aber bestimmt auch einen einfacheren Weg. Eine für mich wandelbare Lösung habe ich im Forum leider nicht gefunden und meine Kenntnisse sind doch etwas rudimentär bis bescheiden.

Danke für die Hilfe

Benni
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Aktivierung Checkbox Benutzername und Datum ausgeben
16.03.2025 20:50:45
Onur
Poste bitte die Datei, damit man diese Bezüge auch mal sehen kann.
AW: Aktivierung Checkbox Benutzername und Datum ausgeben
16.03.2025 23:17:52
Alwin Weisangler
Hallo Benjamin,

bei Verwendung von Formularsteuerelementen kann man mit Application.Caller arbeiten.

Da braucht es nur 2 Prozeduren.
Du verknüpfst das Kontrollkästchen mit der Zelle wo das Kontrollkästchen sich befindet und stellst die Textfarbe auf die Hintergrundfarbe der Zelle ein.

in ein allgemeines Modul:


Option Explicit

Sub Konrolkaestchen_Klicken()
Dim iZeile&
With Worksheets("25-Januar")
iZeile = Tabelle1.Shapes(Application.Caller).TopLeftCell.Row
If .Cells(iZeile, 9) = True Then
.Cells(iZeile, 10) = Environ("Username"): .Cells(iZeile, 11) = Date
Else
.Cells(iZeile, 10) = "": .Cells(iZeile, 11) = ""
End If
End With
End Sub

Sub AllenFormularschaltflaechenMakroZuweisen()
Dim shCk As Shape
For Each shCk In Tabelle1.Shapes
shCk.OnAction = "Konrolkaestchen_Klicken"
Next shCk
End Sub

https://www.herber.de/bbs/user/176295.xlsm

Gruß Uwe
Anzeige
AW: Aktivierung Checkbox Benutzername und Datum ausgeben
17.03.2025 08:19:59
Benjamin
Vielen Dank an alle für eure schnellen Antworten.
@onur Ich kann aufgrund der Richtlinien hier leider nichts hochladen
@daniel Danke Dir

@alwin Hat super funktioniert. Genau das was ich gebraucht habe. Vielen herzlichen Dank.
AW: Aktivierung Checkbox Benutzername und Datum ausgeben
17.03.2025 22:01:45
Benjamin
Jetzt muss ich doch nochmal nachfragen.
Habe jetzt versucht die Sache so anzupassen, dass ich sie für die weiteren Tabellenblätter 25-Februar, 25-März, etc. verwenden kann, bekomme das aber nicht hin. Vielleicht kannst du mir da ja nochmal unter die Arme greifen.
Anzeige
AW: Aktivierung Checkbox Benutzername und Datum ausgeben
17.03.2025 22:27:01
Daniel
ersetze mal jegliche Tabellenblattreferenz (Worksheets("25-Januar"), Tabelle1) durch ActiveSheet
dann läuft das Makro immer im aktiven Blatt, egal wie es heißt.
Gruß Daniel
AW: Aktivierung Checkbox Benutzername und Datum ausgeben
16.03.2025 23:31:25
Daniel
Hi

Da sich dem Code nach um Formularsteuerelemente handelt, kannst einen Code für alle Checkboxen verwenden.

Ersetze die feste Benennung "Kontrollkästchen 18" durch Application.Caller
Application.Caller ist der Name des Shapes, dass das Makro aufgerufen hat.

Die passende Zelle zum Eintragen von Name und Datum findest du dann über:
ActiveSheet.Shapes(Application.aller).TopleftCell.Offset(0, 9).value = Environ("Username")
Oder
Cells(ActiveSheet.Shapes(Application.Caller).TopleftCell.Row, 10).value = Environ("Username")

Du musst nur darauf achten, dass die Kontrollkästchen mit linken oberen Ecke auch in der richtigen Zelle liegen.

Gruß Daniel
Anzeige
Anzeige
Anzeige