Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

Datum der Arbeitsausführung berechnen

Betrifft: Datum der Arbeitsausführung berechnen von: Patrik
Geschrieben am: 03.10.2020 16:09:51

Guten Tag,

habe folgende Frage.

Ich habe im Tabellenblatt 1 eine Tabelle mit ca. 50.000 Zeilen (aus SAP) in jeder dieser Zeile werden Arbeiten in verschiedenen aber regelmäßigen Intervallen ausgeführt.

Im Tabellenblatt 2 habe ich ein VBA Filter mit dem ich verschiedene Daten aus dem Tabellenblatt 1 Abfragen kann z.B Firma; Art der Arbeit; Ort usw funktioniert alles gut.

Nun würde gerne, zum Beispiel das Datum von Heute 03.10.2020 eingeben und der Filter würde mir alle Arbeiten die heute ausgeführt werden anzeigen. Oder nur den Monat z.B. Oktober 2020 dann alle Arbeiten die an diesem Monat durchgeführt werden Wenn ich das hinbekommen könnte wäre das der Super.

Dafür müsste aber im Tabellenblatt 1 berechnet werden welche Arbeiten am 03.10.2020 oder im Monat ausgeführt werden mit z.B "Ja" oder "Nein"
in jede betreffend Zeile. Damit ich dann die Arbeiten filtern kann. Die Berechnung würde ich mit dem Filter im Tabellenblatt 2 in VBA verbinden.

Leider konnte ich mein Excel File nicht Uploaden deshalb versuche ich es hier:


Spalte A =Startdatum>b< Spalte B= Intervall Arbeitsausführung>b< Spalte C= "Formel für zB. Alle Arbeiten am Tag
06.10.2020 = ""Ja"" oder ""Nein""">b< Spalte D= "Formel für zB. Alle Arbeiten im Monat>b<
Oktober 2020 = ""Ja"" oder ""Nein""">b<
16.03.2013 Jeden 6. Monat am 3. Samstag.
31.07.2013 Jeden 05. Mittwoch.
29.08.2013 Wöchentlich dienstags, donnerstags; auch an Feiertagen und Brückentagen.
29.08.2013 Wöchentlich montags, donnerstags; auch an Brückentagen.
07.03.2013 Jeden 6. Monat am 1. Donnerstag; auch an Brückentagen.
09.03.2013 Jeden 2. Monat am 2. Samstag.
13.03.2013 Jeden 3. Monat am 2. Mittwoch.
01.07.2013 Jeden 4. Monat am 1. Montag.
10.10.2012 Jeden 12. Monat am 2. Mittwoch; auch an Feiertagen und Brückentagen.
16.08.2013 Jeden 04. Freitag.
30.08.2013 Wöchentlich mittwochs, donnerstags, freitags; auch an Brückentagen.

Betrifft: AW: Datum der Arbeitsausführung berechnen
von: Patrik
Geschrieben am: 03.10.2020 16:17:09

https://www.herber.de/bbs/user/140618.xlsx

Betrifft: AW: Datum der Arbeitsausführung berechnen
von: Patrik
Geschrieben am: 03.10.2020 16:19:41

Habe jetzt doch noch die Excel File uploaden können.
MfG
Patte

Betrifft: AW: Datum der Arbeitsausführung berechnen
von: onur
Geschrieben am: 03.10.2020 16:31:46

Mit Formeln kannst du wohl vergessen bei solchen Ausdrücken wie "Jeden 6. Monat am 3. Samstag." oder "Wöchentlich dienstags, donnerstags; auch an Feiertagen und Brückentagen". Du lannst nicht alle diese Bedingungen in eine Formel vertretbarer Länge packen.
Und eine Lösung per VBA würde wohl den Rahmen eines Forums für kleinere Excel/VBA-Probleme sprengen, da man erst einmal einen Parser programmieren müsste, der alle diese Ausdrücke in Regeln übersetzt.

Betrifft: AW: Datum der Arbeitsausführung berechnen
von: Patrik
Geschrieben am: 03.10.2020 18:01:27

Hallo Onur,
danke für deine Rückantwort, habe mir schon gedacht das es nicht einfach wird.
Meine Vorstellung wäre sozusagen mit VBA sich der Sache anzunähern z.B
1. Spalte- "nach Intervallart" täglich=1 wöchentlich=2 jeder xte Wochentag=3 monatlich=4
2. Spalte- "Wochentag" Montag=1; Dienstag=2; usw
3. Spalte- "jeden x.ten Werktag" Jeden 2. Werktag=2; Jeden 3. Werktag=3....Jeden 10. Werktag=10
Diese ganzen Spalten sind im SAP schon vorhanden vielleicht könnte man damit den Tag oder Monat ermitteln? Habe jetzt diese Spalten mit in der Excel Tabelle angegeben vielleicht kann man mit diesen vorhandenen Infos was anfangen? Ich kann es leider nicht, die Feiertagen und Brückentagen würde ich erst mal außer acht lassen haben keine Hebelwirkung.


https://www.herber.de/bbs/user/140621.xlsx


MfG
Patte

Betrifft: AW: Datum der Arbeitsausführung berechnen
von: onur
Geschrieben am: 03.10.2020 19:19:45

"Diese ganzen Spalten sind im SAP schon vorhanden" - heisst das, dass nur die Spaltenbezeichnungen vorhanden sind oder auch die Daten dazu ? Auf deutsch: stammen diese Einträge ab Spalte C in der Datei von dir oder vom SAP-Export?

Betrifft: AW: Datum der Arbeitsausführung berechnen
von: Sigi.21
Geschrieben am: 03.10.2020 21:59:36

Hallo Patte,

da hast du ja eine interessante Aufgabe. Allerdings ist eine Textbeschreibung wie z. Bsp. "Jeden 12. Monat am 2. Mittwoch; auch an Feiertagen und Brückentagen" für Excel kaum auswertbar.
Deshalb müsste es für Excel anders aufbereitet werden. Grundsätzlich müsste auch unterschieden werden zwischen "wöchentlichen" oder "n-monatlichen" Fälligkeiten, denn dazu braucht's unterschiedlichen Ansätze/Funktionen.

Etwa so:

A) Wöchentliche Fälligkeiten und die Wochentage (z. Bsp.) "w" sowie WoTag 2 (für Di) und opt. 4 (für Do, falls 2x wöchentlich)
B) Monatliche bzw. n-monatliche Fälligkeiten (z. Bsp.) "M" sowie N_ter (1-5) und WoT (1-7).
Du hast auch "jeden 5. Mi"??? Es gibt Monate mit nur 4 Mittwochs. Das müsste man ändern in "letzter Mi".

Falls du deine Liste so ungefähr aufbereiten kannst, mach ich mir Gedanken für eine VBA-Fkt.

Sigi

Betrifft: AW: Datum der Arbeitsausführung berechnen
von: Patrik
Geschrieben am: 03.10.2020 23:07:24

Hallo Sigi,

bin gerade auf dem Weg ins Bett wollte dir aber noch schnell versuchen zu antworten.

Ich denke das die Daten aus SAP siehe Exceltabelle die ich upgeloatet habe genau diese Aufbereitung hat. Schau sie dir mal genau an, habe sie so aus SAP gezogen, denke die Spalten haben schon ihren Sinn, der sich mir aber nicht zur gänze erschließt.

Gute Nacht
MfG
Patte

Betrifft: AW: Datum der Arbeitsausführung berechnen
von: Sigi.21
Geschrieben am: 04.10.2020 10:00:28

Hallo Patte,

ich habe mir deinen Export jetzt genauer angesehen und habe wohl den Sinn der einzelnen Spalten verstanden.

Ich habe aber noch Klärungsbedarf:
1. Das Startdatum müsste doch dem Schema (Intervalltext) entsprechen? Das tut es aber bei mind. 3 Positionen nicht (s. Mappe mit Markierungen). Sind diese Daten evtl. in SAP schon falsch hinterlegt?
2. Das Bsp. mit dem 5. MI (s. erstes Posting) ist bei der 2. Mappe nicht mehr da? Heißt das, es war dein Fehler?
3. SAP-Exporte sind Texte. Auch die ganzen numerischen Werte sind Text. Diese müssten beim (od. nach dem) Excelimport noch numerisch gemacht werden.

Kannst du dies noch erklären, bevor sich jemand weitere Arbeit macht. M. E. ist diese Sache mit VBA zu lösen. Es braucht aber solides Handwerk um alle Positionen zu berücksichtigen, da jede Intervallart einen anderen Lösungsansatz benötigt.

Sigi

https://www.herber.de/bbs/user/140634.xlsx

Betrifft: AW: Datum der Arbeitsausführung berechnen
von: Patrik
Geschrieben am: 04.10.2020 10:43:15

Hallo Sigi.21,

1. solche Fehler tauchen immer wieder auf da die Leistungszeilen von Hand ins SAP eingegeben werden. Wenn dadurch ein Fehler im Formelbezug auftaucht wissen wir zumindest dass, das Startdatum falsch eingegeben wurde und können korrigieren.
2. den 5. sogar bis 10.Mi gibt es immer noch habe nur die Tabelle abgespeckt, wollte nur ein paar verschieden mitgeben
3. ist kein Problem soweit kenne ich mich in VBA aus damit ich es hinbekomme

Ich wäre auch mit einer Teillösung zufrieden, der größte Teil der verschiedenen Intervalle ist täglich und wöchentlich hierzu habe ich keine Probleme, ich habe einfach anhand das Datums den Wochentag ermittelt und nach dem betreffenden Wochentag gefiltert.

Bei monatlich den 2.Montag z.B fängt es an Wie erkenne ich den 2.Montag

Mein Wunsch wäre es halt zu erkennen, welche Arbeiten müssen "HEUTE" zB abgearbeitet werden oder welche Arbeiten werden in diesem "MONAT" abgearbeitet.
Wenn nicht alle Arbeiten erfasst werden ist es auch nicht weiter schlimm, die würde ich dann manuell hinzufügen.
MfG
Patte

Betrifft: AW: Datum der Arbeitsausführung: Teillösung
von: Sigi.21
Geschrieben am: 04.10.2020 19:13:07

Hallo Patte,

anbei eine Teillösung (VBA-Fkt.) für die Intervallart 4 (s. Mappe).
Bitte mal testen und nachrechnen, ob es passt.

Sigi

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

Betrifft: AW: Datum der Arbeitsausführung: Teillösung
von: Patrik
Geschrieben am: 05.10.2020 05:25:32

Hallo Sigi,

Super gut, es im ersten Blick ist es genau das was ich brauche.
Kann man das auch evtl. auch mit den anderen Intervallarten machen?
Ansonsten danke ich dir für deine intelligente Lösung.
MfG
Patte

Betrifft: AW: Datum der Arbeitsausführung: Teillösung
von: Sigi.21
Geschrieben am: 05.10.2020 10:29:33

Hallo Patte,

die anderen Arten verlangen andere Algorithmen.
Mit dieser Fkt. geht es nicht. Das wären für einen best. Monat ja gleich mehrere Termine!

Für die Arten 1-3 eignen sich für die andere Anzeigevariante für einen bestimmten Tag (Bsp. heute, morgen, am kommenden FR, etc.). Ich seh' mir das am Abend nochmal an. Tagsüber komme ich nicht dazu.

Sigi

Betrifft: AW: Datum der Arbeitsausführung: Teillösung
von: Patrik
Geschrieben am: 05.10.2020 19:37:56

Hallo Sigi,
wollte die mal kurz erklären, für was ich es eigentlich benötige.
Was ich bis jetzt getan habe:
1.) Ich lade die Daten aus dem SAP nach Excel
2.) Mit Hilfe eines von mir erstellten Makro (Recorder und Internet) an dem ich fast 1 Jahr gearbeitet habe bereite ich die SAP Daten so auf damit ich leichter Informationen abrufen kann.
3.) Ich habe eine Informationsplattform erstellt mit deren Hilfe meine Kollegen und ich das Tagesgeschäft erleichtere in dem wir diese Infos abrufen können
4.) Die aufbereiteten Informationen stehen im Tabellenblatt "Daten_von_SAP" der VB Filter im Tabellenblatt "Raumbuch"
5.) Dieser Filter ist so aufbereitet das man die verschiedensten Informationen aus dem Tabellenblatt "Daten_von_SAP" rüberfiltern kann

So sieht dieser Filter in VBA aus (ich denke für dich ist das Kinderkram)
Sub RAUMBUCH()
' Automatische Berechnung ausschalten
Application.CutCopyMode = False
With Application
.Calculation = xlManual
End With
ActiveWorkbook.PrecisionAsDisplayed = False


'Filter
Dim rngDatenbank As Range
Dim rngFilter As Range
Dim rngAusgabe As Range

Set rngDatenbank = Sheets("Daten_von_SAP").Range("A:BW")
Set rngFilter = Sheets("RAUMBUCH").Range("A5:P6")
Set rngAusgabe = Sheets("RAUMBUCH").Range("A9:Z9")

rngDatenbank.AdvancedFilter _
Action:=xlFilterCopy, _
CriteriaRange:=rngFilter, _
CopyToRange:=rngAusgabe, _
Unique:=False

So, wenn ich jetzt in mein Makro berechnen könnte zu was für eine Zeit die Arbeit ausgeführt wird wäre das ein riesiger Gewinn für uns
Es könnten auch gerne verschiedene Berechnungsschritte sein, wenn ich die Formeln hätte würde ich sie einfach mit dem Recorder in mein Makro integrieren und die Berechnung wenn nötig auch in mehrere Spalten durchführen und die Ergebnisse zum Schluss in eine Spalte zusammenführen und die anderen löschen. Dann könnte ich wieder filtern.
Hoffe das war jetzt nicht Zuviel.
MfG
Patte

Betrifft: AW: Datum der Arbeitsausführung: Teillösung
von: Sigi.21
Geschrieben am: 05.10.2020 20:35:36

Hallo Patte,

anbei noch eine Fkt. für die Arten 1-3. Für die Arten 1-3 musst du ein Datum (Tagesdatum, etc.) eingeben. Bei der Art 4 gibst du Monat und Jahr ein.

Nach Eingabe der VBA-Fkt. kannst du selbstverständlich auch wieder filtern. Aber halt getrennt nach Spalte S (Monat/Jahr) und Spalte T (eingegebenes Datum), denn es sind halt verschiedene Berechnungsmethoden.

Ich hoffe, das hilft dir und Kollegen weiter.

Sigi

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

Betrifft: AW: Datum der Arbeitsausführung: Teillösung
von: Patrik
Geschrieben am: 06.10.2020 19:17:24

Hallo Sigi.21,
das hat uns sehr weitergeholfen. Werde jetzt deine Formeln mit meiner Informationsplattform zu verbinden versuchen, aber das bekomme ich hin. Das was du gemacht hast hätte ich nie hingekriegt.
Danke dir!

MfG
Patte

Betrifft: AW: Datum der Arbeitsausführung berechnen
von: Sulprobil
Geschrieben am: 03.10.2020 16:42:55

Hallo Patrick,

Ich habe dafür einmal eine kleine VBA Anwendung programmiert:
https://berndplumhoff.gitbook.io/sulprobil/excel/excel-vba-solutions/sbtasklist

Viele Grüße,
Bernd

Betrifft: AW: Exportiere besser aus SAP
von: Sulprobil
Geschrieben am: 04.10.2020 09:26:51

alle notwendigen Termine und entsprechenden Aufgaben für z. B. ein Jahr.

Die Nachbildung aller Scheduling Regeln ist viel zu aufwendig und fehleranfällig, und selbst wenn dies jemand schafft mit den angegebenen Regeln, dann wird vermutlich alsbald eine neue auftauchen, und Du bist wieder auf Hilfe angewiesen.