Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Erstellen einer Anwesenheitsliste in VBA
#1
Hallo zusammen,

nun ist mein Projekt dank der Hilfe von euch und zahlreichen Videos von Andreas Thehos fast beendet und dafür möchte ich mich nochmal bei euch allen bedanken. Ihr seid eine super Mannschaft :28:.

Eventuell kann ich eure Hilfe noch einmal in Anspruch nehmen.
Ich möchte aus einer Liste mit Arbeitszeiten (Tabellenblatt Arbeitszeiten) die Spalten A,B,C und die jeweiligen Arbeitszeiten des aktuellen Tages (heute), in das Tabellenblatt Anwesenheit (A5:D100)kopieren.
(es soll aber nur kopiert werden, wenn wirklich eine Arbeitszeit (z.B. 08: 16:30) im Blatt "Arbeitszeiten" eingetragen ist. Steht hier Urlaub, Frei, JAZ oder KO usw. soll nicht kopiert werden.)

Meine Datei habe ich angefügt, da man sich so am besten ein Bild machen kann was ich meine :25:.

Danke an alle und Gruß Mario
Antworten Top
#2
Hallo Mario,

hier als Ereigniscode im VBA-Modul des Tabellenblatts "Anwesenheit".
"Passwort" für Aufheben und Setzen des Blattschutzes musst Du entsprechend ändern.

Code:
Private Sub Worksheet_Activate()
  Dim lngzeileQ As Long, lngzeileZ As Long, lngSpalteQ As Long
  Me.Unprotect "Passwort"
  Me.Range("A5:D100") = ""
  lngzeileZ = 4
  With Tabelle3
    lngSpalteQ = Application.Match(CDbl(Date), .Rows(10), 0)
    For lngzeileQ = 12 To .Cells(.Rows.Count, 1).End(xlUp).Row
      If Len(.Cells(lngzeileQ, lngSpalteQ).Value) = 11 Then
        lngzeileZ = lngzeileZ + 1
        Me.Cells(lngzeileZ, 1).Resize(, 3).Value = .Cells(lngzeileQ, 1).Resize(, 3).Value
        Me.Cells(lngzeileZ, 4).Value = .Cells(lngzeileQ, lngSpalteQ).Value
      End If
    Next lngzeileQ
  End With
  Me.Protect "Passwort"
End Sub

Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • Mario
Antworten Top
#3
Hallo Uwe,

ich bin begeitert, dass ist perfekt :23:. Es funktioniert so wie ich mir das vorgestellt haben.
Vielen Dank für deine schnelle Hilfe und ein schönes Wochenende.

VG Mario
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste