26.10.2021, 22:53
Wenn du es einfach für Andere machen möchtest ,dann erstelle eine Userform oder ein Formular und vermeide die direkte Eingabe in überladenen, unübersichtlichen Tabellen.
Datum als TT an bestimmter Stelle (VBA)
|
26.10.2021, 22:53
Wenn du es einfach für Andere machen möchtest ,dann erstelle eine Userform oder ein Formular und vermeide die direkte Eingabe in überladenen, unübersichtlichen Tabellen.
27.10.2021, 11:28
Hallo
wenn ihr mit VBA spielen wollt, im Modul 2 ist eine Makro Recorder Aufzeichnung und ein Demo Makro mit For Next Schleife zum Datum einsetzen. Ich habe mir erlaubt die Leerzeilen zu löschen und Januar ganz nach oben gesetzt. Obwohl das Makor simpel ist braucht man seine Zeit es zu verstehen. Zu beachten ist, das nicht jeder Monat mit Montag beginnt! Im Februar steht deshalb der 31.1.2022 zum Autoausfüllen, sonst klappt das Makro nicht! mfg Gast 123
27.10.2021, 20:49
(Dieser Beitrag wurde zuletzt bearbeitet: 27.10.2021, 20:51 von Hundefreund.)
Guten Abend an die Runde
Hallo Gast 123 dein Beispiel Trift den Nagel genau auf den Kopf, so einen Hinweis hatte ich gesucht damit kann ich arbeiten, lernen und was anfangen. Ich sage danke und werde euch natürlich mein Ergebnis mitteilen.
29.10.2021, 17:55
Ein Hallo
so jetzt haben wir zu zweit daran gesessen und sind schon weiter gekommen. jetzt will er aber irgendwie nicht durchzählen. vieleicht habt Ihr ja eine Idee wo der Fehler sitzt?? Sub wrapper_make_time() Call make_time(Sheets("Start").Range("G4").Text) End Sub Sub make_time(year As String) Dim month, bebefore, before, curr_date, week_day As String Dim curr As Range month = ActiveSheet.Range("I8").Text curr_date = Format("01." & month & "." & year, "dd.mm.yyyy") For i = 18 To 59 bebefore = ActiveSheet.Cells(i - 2, 2).Text before = ActiveSheet.Cells(i - 1, 2).Text Set curr = ActiveSheet.Cells(i, 2) week_day = ActiveSheet.Cells(i, 3).Text If before = "" Or before = "1" Then If Len(before) = 2 And Len(week_day) > 1 Then curr_date = Int(before) + 1 & Right(curr_date, 8) If test_end_date(curr_date) Then Exit Sub End If curr = Format(curr_date, "dd") ElseIf Len(bebefore) = 2 And Len(week_day) > 1 Then curr_date = Int(bebefore) + 1 & Right(curr_date, 8) If test_end_date(curr_date) Then Exit Sub End If curr = Format(curr_date, "dd") ElseIf week_day = Format(curr_date, "ddd") Then curr = Format(curr_date, "dd") End If End If Next i End Sub Function test_end_date(ByVal curr_date As String) As Integer Dim my_test As Date Dim Res As Integer Res = 0 On Error GoTo err_month: my_test = Format(curr_date, "dd.mm.yyyy") If Day(my - test) > Day(Application.WorksheetFunction.EoMonth(my_test, 0)) Then Res = 1 End If test_end_date = Res Exit Function err_month: test_end_date = 1 End Function Im Anhang wieder meine Test datei zum Probieren.
29.10.2021, 18:13
(Dieser Beitrag wurde zuletzt bearbeitet: 29.10.2021, 18:17 von Klaus-Dieter.)
Hallo,
diese Klimmzüge könntest du dir alle ersparen, wenn du die Zeiten auf einem Blatt mit einer fortlaufenden Liste einträgst. Die kannst du dann nach jedem gewünschten Monat filtern, geht ganz einfach! Übrigens: Arbeitszeiten über zehn Stunden sind nicht zulässig. Die durchschnittliche Arbeitszeit pro Tag darf, über einen beliebigen Zeitraum von zwei Wochen, acht Stunden nicht überschreiten.
Viele Grüße
Klaus-Dieter Der Erfolg hat viele Väter, der Misserfolg ist ein Waisenkind Richard Cobden
29.10.2021, 19:04
Hello
mit der Arbeitszeit gebe ich dir teilweise recht. da gibt es noch den Passus Schichtarbeit. Ja auch dort wieder einige Regeln Mal schaun wie ich das dann noch Programmiere. Aber da bin ich noch nicht. Ja ich hätte das auch einfacher machen können, aber ich bin noch nie den einfachen Weg gegangen. Mit der einfachen Version hatte ich aber angefangen. Haben sie schon den fehler in der Quelle gefunden ?? ich hab da irgenwie den dreher drin
Moin,
dazu braucht es kein VBA. Wie Klaus-Dieter schreibt, alles in eine fortlaufende Liste. Und Ahnenforschung macht man mit Reunion. Gruß Roger
29.10.2021, 21:11
Warum nicht auch mal anders an ein Problem gehen ?
gut es ist ja nicht gleich ein Problem !!! Eher eine Spielerei . Und mit Excel ist doch noch so viel mehr möglich als nur Zahlen in eine Tabelle tippen. Ich find Excel wegen seiner Komplexheit halt interessant. darum gehe ich DIESEN Weg um in Tabellen Zahlen zu bekommen. Und ich hatte gehoft das mir der eine oder andere in VBA helfen kann oder mir ein rat gibt für meinen Quellcode. Nur so kann ich lernen. gerade in VBA
30.10.2021, 12:37
Hallo Hundefreund,
es ist durchaus anerkennenswert, wenn du dich mit VBA beschäftigen möchtest. Das ändert aber nichts daran, dass man bewährte Arbeitsweisen in Excel anwenden sollte. Makros werden deutlich komplexer, wenn der Datenbestand nicht in Form einer Liste gehalten wird. Das gilt im Übrigen nicht nur für Makros, auch Zellformeln können auf der Basis einer ordentlichen Liste deutlich effektiver arbeiten. Viele Funktionen sind darauf geradezu angewiesen.
Viele Grüße
Klaus-Dieter Der Erfolg hat viele Väter, der Misserfolg ist ein Waisenkind Richard Cobden |
|