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

VBA Lösung gesucht

Forumthread: VBA Lösung gesucht

VBA Lösung gesucht
21.03.2025 10:36:35
Gerhard
Hallo Zusammen,

ich suche eine Lösung für eine Zeiterfassung meines Sportvereins.
Ich kenne mich im Excel ganz gut aus aber im VBA leider nicht ganz so gut.
Ich denke ich komme hier jedoch nicht mehr um eine VBA Lösung herum, bzw. wäre es sicher die tollste Lösung.

Könnt ihr mir hier eventuell weiterhelfen?
Ich habe alles in der Excelbeispieldatei erklärt. Sollte es noch Fragen geben, bitte melden.

Gerne würde ich natürlich auch ein bisschen verstehen was die einzelnen Programmzeilen im VBA bedeuten damit ich daraus bisschen lernen kann.
Also wenn es wer mit Kommentaren versehen könnte wäre das super. :)

Es würde mich sehr freuen wenn mir hier jemand weiterhelfen kann.

Danke

LG Gerhard

https://www.herber.de/bbs/user/176357.xlsm
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Es fehlt das Passwort gruss owT
21.03.2025 10:55:39
hary
.
AW: VBA Lösung gesucht
21.03.2025 11:32:13
MCO
Moin, Gerhard!

Nicht so kompakt wie die Lösung von GerdL, aber für einen Anfänger deutlich besser lesbar:

Aufruf der Routine mit Parameter

Private Sub Zahl1_Click()

Zahl_einfügen 1
End Sub

Private Sub Zahl2_Click()
Zahl_einfügen 2
End Sub

Private Sub Zahl3_Click()
Zahl_einfügen 3
End Sub

Private Sub Zahl4_Click()
Zahl_einfügen 4
End Sub


Sub mit Parameter führt den Schritt aus:

Sub Zahl_einfügen(num As Long)


With Sheets(2)
.Unprotect "123"
lz = .Range("A2").End(xlDown).Row + 1 'nächste freie zeile in "A, von A2 abwärts"
.Range("A" & lz) = Date
.Range("B" & lz) = Format(Now, "hh:mm:ss")
.Range("B" & lz).NumberFormat = "hh:mm" 'Formatieren der Zelle
.Range("C" & lz) = num
.Range("D" & lz).Value = Application.CountIfs(.Range("A:A"), Date, .Range("C:C"), num)
.Protect "123"
End With

End Sub


Gruß, MCO
Anzeige
AW: VBA Lösung gesucht
21.03.2025 11:42:17
UweD
Hallo

Die Anderen waren schneller, aber hier auch meine Lösung

Sub Tasten_eintragen(Taste)

Dim LR As Long

With Sheets("Tabelle2")
LR = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
.Unprotect "123"
.Cells(LR, 1) = Date
.Cells(LR, 2) = Time
.Cells(LR, 3) = Taste
.Cells(LR, 4) = WorksheetFunction.CountIf(.Columns(3), Taste)
.Protect "123"

End With
End Sub

Private Sub Zahl1_Click()
Tasten_eintragen (1)
End Sub

Private Sub Zahl2_Click()
Tasten_eintragen (2)
End Sub

Private Sub Zahl3_Click()
Tasten_eintragen (3)
End Sub

Private Sub Zahl4_Click()
Tasten_eintragen (4)
End Sub


LG UweD
Anzeige
AW: VBA Lösung gesucht
21.03.2025 11:37:32
Gerhard
Danke MCO.
Da blicke ich wirklich auch besser durch, bei diesem Code.

Danke.
AW: Es fehlt das Passwort gruss owT
21.03.2025 11:00:12
Gerhard
Hallo Hary,

welches Passwort meinst du?
Das Passwort für die Tabellenblätter?
Das hätte ich im Excel File angegeben.

Danke.

Das Passwort steht in der Datei. owT
21.03.2025 11:00:24
SF
Anzeige
AW: Es fehlt das Passwort gruss owT
21.03.2025 11:15:42
GerdL
Moin Gerhard!

Den Code bitte ins Codefenster von Tabelle1 kopieren.
Option Explicit


Private Sub Zahl1_Click()
Call note_it(1)
End Sub
Private Sub Zahl2_Click()
Call note_it(2)
End Sub
Private Sub Zahl3_Click()
Call note_it(3)
End Sub
Private Sub Zahl4_Click()
Call note_it(4)
End Sub

Sub note_it(buttonnumber As Byte)

Tabelle1.Unprotect "123"
Tabelle2.Unprotect "123"

Tabelle2.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Resize(1, 4) = _
Array(Date, Time, buttonnumber, Application.CountIfs(Tabelle2.Columns(1), Date, Tabelle2.Columns(3), buttonnumber) + 1)

Tabelle1.Protect "123"
Tabelle2.Protect "123"

End Sub

Gruß Gerd
Anzeige
AW: Es fehlt das Passwort gruss owT
21.03.2025 11:22:05
Gerhard
Hallo Gerd,

vielen Dank. Es funktioniert super. :)

LG Gerhard
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18