Thema Datum  Von Nutzer Rating
Antwort
Rot Makro liest Datum nicht korrekt aus
11.01.2024 21:13:48 Gast1211
NotSolved
13.01.2024 03:56:07 ralf_b
Solved

Ansicht des Beitrags:
Von:
Gast1211
Datum:
11.01.2024 21:13:48
Views:
404
Rating: Antwort:
  Ja
Thema:
Makro liest Datum nicht korrekt aus

Hallo zusammen, 

ich brauche Hilfe mit VBA bzw. einem Makro. Ich beherrsche VBA nicht habe mich aber in dieses Makro versucht reinzudenken. 

Kontext die Excel beherbergt drei Arbeitsblätter

-Stammdaten

- Dienstplan

- Auswertung

Das Makro soll die Daten (Tag, Mitarbeiter, Arbietszeit in Std.) aus dem Arbeitsblatt "Dienstplan" auslesen und im Arbeitsblatt "Auswertung" in eine fortlaufende Liste übertragen. Ich habe das Makro zur Verfügung gestellt bekommen, erhalte aber leider immer wieder den selben Fehler. Das Datum der jeweiligen Schicht, wird falsch ausgelesen, und immer mit einem Tag versatz aufgelistet (z.B. anstatt des 01.01 wird der 02.01. usw. ausgeworfen).

Ich habe bereits mit Hilfe von ChatGPT versucht den Code zu korrigieren und auch neu zu erstellen bin aber leider gescheitert. Ich hoffe das mir ein VBA-Profi helfen kann.

Hier der originale Code:

Option Explicit
Dim AC As Range, wt As Integer
Dim Datum As Date, Bereich

Sub Stunden_auflisten()
Dim ESPl As Worksheet, ze As Integer
Set ESPl = Worksheets("Einsatzplanung")

With Worksheets("Auswertung")
     .Range("A3:D300").ClearContents
     Application.ScreenUpdating = False
     ze = 4   '1. Zeile zum auflisten
    
     'Einsatzplanung Bereich laden
     Bereich = "A4:A19":  GoSub Liste
     Bereich = "A23:A38": GoSub Liste
     Bereich = "A42:A57": GoSub Liste
     Bereich = "A61:A76": GoSub Liste
     Bereich = "A80:A95": GoSub Liste
Exit Sub

Liste: 'Wochenplan Blockweise auflisten
    'Wochentage Blockweise abarbeiten
    For wt = 2 To 15 Step 2
      'Wochentage Montag - Sonntag  auswerten
      For Each AC In ESPl.Range(Bereich).Offset(0, wt)
          If AC = "" Or LCase(AC) = "geschlossen" Then
          ElseIf Not IsNumeric(Left(AC, 1)) Then
             Datum = ESPl.Cells(3, wt + 3)
             .Cells(ze, 1) = Datum           'Datum
             .Cells(ze, 2) = AC.Cells(1, 2)  'Ehrenamtler
             .Cells(ze, 3) = AC.Cells(2, 2)  'Stunden
             .Cells(ze, 4) = "  " & AC.Cells(1, 1)  'Aktion
              ze = ze + 1
          End If
      Next AC
    Next wt
    Return
End With
End Sub

 

Mit folgender Änderung habe ich es hinbekommen dass die Daten richtig ausgelesen werden, aber die Auswertung startet erst ab dem 03.01.24.

Option Explicit
Dim AC As Range, wt As Integer
Dim Datum As Date, Bereich

Sub Stunden_auflisten()
Dim ESPl As Worksheet, ze As Integer
Set ESPl = Worksheets("Einsatzplanung")

With Worksheets("Auswertung")
     .Range("A3:D300").ClearContents
     Application.ScreenUpdating = False
     ze = 4   '1. Zeile zum auflisten
    
     'Einsatzplanung Bereich laden
     Bereich = "A4:A19":  GoSub Liste
     Bereich = "A23:A38": GoSub Liste
     Bereich = "A42:A57": GoSub Liste
     Bereich = "A61:A76": GoSub Liste
     Bereich = "A80:A95": GoSub Liste
Exit Sub

Liste: 'Wochenplan Blockweise auflisten
    'Wochentage Blockweise abarbeiten
    For wt = 2 To 15 Step 2
      'Wochentage Montag - Sonntag  auswerten
      For Each AC In ESPl.Range(Bereich).Offset(0, wt + 2)
          If AC = "" Or LCase(AC) = "geschlossen" Then
          ElseIf Not IsNumeric(Left(AC, 1)) Then
             Datum = ESPl.Cells(3, wt + 3)
             .Cells(ze, 1) = Datum           'Datum
             .Cells(ze, 2) = AC.Cells(1, 2)  'Ehrenamtler
             .Cells(ze, 3) = AC.Cells(2, 2)  'Stunden
             .Cells(ze, 4) = "  " & AC.Cells(1, 1)  'Aktion
              ze = ze + 1
          End If
      Next AC
    Next wt
    Return
End With
End Sub

Die Excel könnt ihr euch hier ansehen: Dienstplan_Auswertung

Bei Unklarheiten gerne melden. Ansonsten schon mal vielen Dnak für eure Hilfe. :)


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:

 
 

  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Makro liest Datum nicht korrekt aus
11.01.2024 21:13:48 Gast1211
NotSolved
13.01.2024 03:56:07 ralf_b
Solved