Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA, Datum UF mit Tabelle vergleichen und Daten schreiben

VBA, Datum UF mit Tabelle vergleichen und Daten schreiben
24.09.2023 18:42:22
Ole
Hallo,

ich stehe wieder vor einem Problem. Ich möchte in einer UF ein Datum vergleichen mit einer Tabelle und bei Übereinstimmung in die entsprechenden Spalten Daten eintragen. Dazu habe ich eine Testtabelle vorbereitet und Kommentare entsprechend in den Codes eingearbeitet zum Verständnis. Ich hoffe, ich habe es verständlich erkläören können und bekomme eine Hilfe.

Vielen Dank im Voraus

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

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA, Datum UF mit Tabelle vergleichen und Daten schreiben
24.09.2023 19:14:03
Jan
Hallo

Nur als Info für mich.
Wie jetzt sehe warst du mit mit meiner Lösung in deinem anderen Beitrag nicht zu Frieden, auf gut deutsch gesagt Lösung ist in deinen Augen fehlerhaft richtig?
AW: VBA, Datum UF mit Tabelle vergleichen und Daten schreiben
24.09.2023 23:11:22
Alwin Weisangler
Hallo,

Man könnte ja das mit Application.Match machen, aber da sind mittendrin verbundene Zellen, so bleibt nur das Abklappern des Datums in einer Schleife.


Private Sub TextBox1_Change()
Dim iZeile& ' Das ist deine Zeilennummer in der das Datum der Textbox in Spalte 5 steht
With Tabelle1
For i = 4 To 413
If CDate(TextBox1) = .Cells(i, 5) Then iZeile = i
Next i
End Sub

Mit iZeile kannst du dann die anderen Textboxeninhalte den Zellen der Zeilennummer übergeben.

Gruß Uwe
Anzeige
AW: VBA, Datum UF mit Tabelle vergleichen und Daten schreiben
25.09.2023 04:38:41
Olaf Philipp
Hallo Uwe,

Ich werde mich heute Nachmittag dransetzen und schauen, wie und ob ich es verstehe und umsetzen kann. Danke schon im voraus für die Mühe.

Gruß Olaf
AW: VBA, Datum UF mit Tabelle vergleichen und Daten schreiben
25.09.2023 16:19:28
Ole
Hallo Uwe,

ich habe mir den Code mal angeschaut und bin noch am überlegen, ob er das macht, was ich möchte. Du hast ja hier ein TextBox1_Change() ......
Bei mir soll bei CommandButton1_Click() (In UF FPLO) folgendes geschehen:

1. Vergleich das Datum der TextBox1 mit der Spalte 5 in Tabelle "2024"

2. Wenn Übereinstimmung (Bsp. 01.01.2024 stimmt mit Tabelle "2024"."E4" überein), dann trage entsprechend die Daten von Schichtnummer, Dienstbeginn, Dienstende und der Checkboxen in die Zeilen der Tabelle "2024" ("G4", "K4", "M4" und hier nicht aufgeführt ein)

3. Prüfe, ob die Schichtnummer in der Tabelle "Schichten" vorhanden ist, wenn nicht, öffne eine MsgBox "Bitte Schicht anlegen über UserForm XY" mit evtl. Verlinkung dorthin

Vielleicht könnte es mir jemand, falls es zu schwierig ist, mir in die Tabelle einarbeiten, sodass ich dieses Stück für Stück nachvollziehen kann. Vielen Dank dafür.

VG Olaf
Anzeige
AW: VBA, Datum UF mit Tabelle vergleichen und Daten schreiben
25.09.2023 19:33:29
Alwin Weisangler
hab mal einiges im Userform "FPLO" umgebaut, damit sich das vernünftig verwenden lässt.
https://www.herber.de/bbs/user/163110.xlsm

Gruß Uwe
AW: VBA, Datum UF mit Tabelle vergleichen und Daten schreiben
25.09.2023 20:22:25
Ole
@Uwe

Vielen Dank, die sieht schon richtig gut aus. Ich habe noch die Combobox1 für die Spalte G mit eingefügt, damit auch die tatsächliche Schicht abgerechnet wird.

Private Sub CommandButton1_Click()

With Tabelle1
.Cells(iZeile, 7) = ComboBox1
.Cells(iZeile, 11) = ComboBox2
.Cells(iZeile, 13) = ComboBox3
End With
End Sub


Dann die Fragen...

Kann in die ComboBox2 und ComboBox3 die zur ComboBox1 angegebene Schicht die Zeiten aus der Tabelle "Schichten" übernommen werden, welche dann händisch korrigiert werden können? Bei der Bahn gibt es keine Dienste mit 00:00, 00:05, 00:10 usw. ;-)

Nach dem Eintrag der Daten müsste wahrscheinlich nochmal die
Call UserForm_Initialize
eingefügt werden oder ein anderes, damit dann automatisch die "neue" Schicht in der Übersicht zu sehen ist?

Und die letzte Frage..... Wenn die "neue" Schicht (z.B. 8912) noch nicht vorhanden ist in der Tabelle "Schichten", soll eine MsgBox öffnen mit dem Inhalt:"Du musst die Schicht erst neu anlegen!" mit der Verlinkung zu einer anderen UF und dann UF "FPLO" beenden.

Ich weiß, dass hört sich viel an, aber ich bin jetzt schon so weit, da möchte ich den Rest, den schwierigsten Teil (für mich zumindest) auch noch hinbekommen.

DANKESCHÖN

Gruß Ole
Anzeige
AW: VBA, Datum UF mit Tabelle vergleichen und Daten schreiben
25.09.2023 04:34:57
Olaf Philipp
Guten Morgen Jan,

Es war alles genauso korrekt, wie du es dargestellt hast. Habe mit den Hilfsspalten gearbeitet, da ich nicht ganz so firm bin. Hatte eigentlich dies so geschrieben in dem Thread, finde es aber tatsächlich gerade auch nicht ..... sorry.

Danke für eure Unterstützung in dem Fall

....und für weitere;-)

Gruß Olaf
AW: VBA, Datum UF mit Tabelle vergleichen und Daten schreiben
25.09.2023 19:05:11
Jan
Hallo Olaf

Danke für deine positive Info, dann bin ich ja froh.
Dein alter Thread ist automatisch ins Archiv gewandert, das ist hier im Forum leider so.
https://www.herber.de/forum/archiv/1944to1948/1946300_8_woechigen_Schichtplan_ueber_Jahr_immer_wiederholen.html#1946699
Dann hatte ich einen neuen aufgemacht mit entsprechendem Link.
https://www.herber.de/forum/archiv/1944to1948/1946999_8_woechigen_Schichtplan_ueber_Jahr_immer_wiederholen_Ole_Cha.html
Hast du diese neue Version schon getestet und angeschaut vom 22.09.2023 03:22:16??

Jetzt habe ich zu deiner neuen Datei folgende Fragen: Register "2024"
A) Sehe ich das richtig das nur die Spalten O & P per Hand mit X ausgefüllt werden?? Oder werden noch mehr Spalten per Hand ausgefüllt, wenn ja welche?

B) Die Spalte F soll aus Spalte Z befüllt werden richtig?
C) Was soll in die Spalten G bis N genau rein kommen und von wo sollen diese mit was befüllt werden??
D) Was ist mit Spalte Q wie soll diese behandelt werden?
Anzeige
AW: VBA, Datum UF mit Tabelle vergleichen und Daten schreiben
25.09.2023 20:00:39
Ole
@Jan

Ich kenne mich noch nicht ganz so gut aus hier, daher bitte ich dies zu entschuldigen. Da habe ich aber ganz schön was entfacht zwischen Dir und Charly, sorry.
Leider kann ich nicht in diesem Thread antworten, daher tue ich es gerade eben hier. Ich hoffe es stört nicht.

Also die genannte Datei 163034 ist tatsächlich noch nicht das, was das letzte Ergebnis sein soll. Ein Beispiel: Ich, Olaf, nehme das Programm und bekomme den z.B. 8 Wochen Dienstplan. Dann steht dieser Dienstplan NUR FÜR MICH, (am Beispiel beginnend mit Woche 5 aus deiner 163034) also
1.1.2024 = 7005
2.1.2024 = 7001
3.1.2024 = 7002
4.1.1.2024 = 7003
5.1.2024 = Ruhe
6.1.2024 = 7601
7.1.2024 = 7702
8.1.2024 = 7006
9.1.2024 = Ruhe usw.

Wie Ihr das meint mit dem Startdatum, weiß ich gerade nicht. Ich habe das Programm immer für genau 1 Jahr beginnend zum 1.1.20XX. Da das Jahr 2024 zufällig mit einem Montag beginnt, ist es hier nicht aufgefallen, wenn ich sage, dass ich in der Woche 5 bin. Beginnt der 1.1. mitten in der Woche müsste man tatsächlich noch die Möglichkeit haben, Woche und Tag zu benennen. Deine Erste Tabelle 162901 ist die, welche ich zu meiner Bearbeitung eingebracht habe. Dazu müsste jetzt dann noch der Tag angegeben werden.

Zum aktuellen Problem:

Jetzt habe ich zu deiner neuen Datei folgende Fragen: Register "2024"
A) Sehe ich das richtig das nur die Spalten O & P per Hand mit X ausgefüllt werden?? Oder werden noch mehr Spalten per Hand ausgefüllt, wenn ja welche?

O, P und Q sollen ebenfalls aus entsprechenden jeweils anderer UF mit Kontrollkästchen o.ä. markiert und dann übernommen werden, da bei Urlaub, Krank und Wochenfeiertage die Stundenabrechnung anders berechnet wird. In V, W und X kommen dann auch noch 3 weitere Daten dazu, welche aus einer UF ausgelesen und dem Datum zugeordnet in derselben Zeile geschrieben werden

B) Die Spalte F soll aus Spalte Z befüllt werden richtig?
Die Spalte G = Spalte F. Die Spalte Z ist versehentlich dort reingerutscht, bitte ignorieren. Die Spalte wird dann NUR durch eine in der UF "FPLO" eingetragene Schicht ersetzt.

C) Was soll in die Spalten G bis N genau rein kommen und von wo sollen diese mit was befüllt werden??
Die Spalten H und J werden automatisch mit Dienstbeginn und Dienstende befüllt. Die Spalten K und M und N werden durch die UF "FPLO" entsprechend befüllt. Die TextBox für Spalte N ist noch nicht in der UF drinnen.

D) Was ist mit Spalte Q wie soll diese behandelt werden?
O, P und Q sollen ebenfalls aus entsprechenden jeweils anderer UF mit Kontrollkästchen o.ä. markiert und dann übernommen werden, da bei Urlaub, Krank und Wochenfeiertage die Stundenabrechnung anders berechnet wird.

Danke für die schon jetzt investierten Mühen!

VG Ole
Anzeige
AW: VBA, Datum UF mit Tabelle vergleichen und Daten schreiben
25.09.2023 21:09:30
Jan
Hallo

Nochmals
Dann stimmt deine Wochennummer in den Grunddaten nicht!!!
Wenn das so wäre müsste die 5 gegen die 1 ausgetauscht werden.
Das Jahr beginnt nie mit der fünften Woche.
Dann tausche doch die ganzen Wochennummern das ist nur eine einmalige Aktion.
Die Zahlen der Woche im Register Grunddaten werden verglichen mit der tatsächlichen ISO KW.

Das mit dem Startdatum vergiss das ganze.
Startdatum ist das Datum wo der Darstellungskalender beginnen soll, ich kann auch das Datum 07.07.1965 dort eingeben dann ist die Darstellung sehr lange, das alles wie man es gerne haben möchte.
Anzeige
AW: VBA, Datum UF mit Tabelle vergleichen und Daten schreiben
25.09.2023 22:06:34
Alwin Weisangler
Hallo,

anbei gepackt das Userformmodul. Entpacke die Zip und tausche das alte Userform FPLO gegen das neue aus.
Austausch: Rechtsklick im Modulbaum deines VBA Projektes auf Userform FPLO --> Löschen --> erneuter Rechtsklick --> Datei importieren.
https://www.herber.de/bbs/user/163111.zip

Gruß Uwe
AW: VBA, Datum UF mit Tabelle vergleichen und Daten schreiben
26.09.2023 09:15:54
Ole
Guten Morgen Jan,

Aufgrund Deiner Großen Hilfe möchte ich kurz nochmal auf deinen Kommentar eingehen.
Anhand deiner Aussage....

Dann stimmt deine Wochennummer in den Grunddaten nicht!!!
Wenn das so wäre müsste die 5 gegen die 1 ausgetauscht werden.
Das Jahr beginnt nie mit der fünften Woche.


....erkenne ich, dass das Grundprinzip nicht verstanden wurde, obwohl Dein Code super funktioniert.
Natürlich beginnt das Jahr NIE mit der Woche 1, allerdings rede ich auch nicht von der KW der Jahres sondern von der Woche 5 des 8-Wöchigen Dienstplanes.
KW 1= Woche 5, KW 2= Woche 6, KW 3= Woche 7, KW 4= Woche 8, KW 5= Woche 1, KW 6= Woche 2, KW 7= Woche 3, KW 8= Woche 4

Danke für deine weiter Unterstützung

VG Ole
Anzeige
AW: VBA, Datum UF mit Tabelle vergleichen und Daten schreiben
26.09.2023 11:10:26
Alwin Weisangler
Markiere im Tabellenblatt "Schichten" in Spalte A den Range von A12:A137 (da stehen die Schichtnummern) und trage im Namensfeld (links oben) statt der darin enthaltenen Zellenbezeichnung dafür rng_SchichtNr ein. Das kann man auch im Namensmanager eintragen bzw. ändern.

Gruß Uwe
AW: VBA, Datum UF mit Tabelle vergleichen und Daten schreiben
27.09.2023 04:53:25
Jan
Hallo Ole

Danke für die Aufklärung.
Die Spalten S und T dürfen zwingend nur mit einem großen X ausgefüllt werden, nach der Aktualisierung werden sie dann in der Spalte Planschichten vermerkt.

https://www.herber.de/bbs/user/163125.zip
AW: VBA, Datum UF mit Tabelle vergleichen und Daten schreiben
27.09.2023 17:45:24
Ole
Hallo Uwe,

Danke für all Deine Mühe, welche Du hier reinsteckst, allerdings entfernst Du Dich immer weiter von dem, was ich benötige. Dein allererster Ansatz (162901.xlsb) sowie die von Charly (162914.xlxs - ich kam nicht mit LET und Sequence etc. zurecht) war korrekt, mit dem ich jetzt arbeite. Wenn hier noch Tag wählbar wäre, dann ist es perfekt. Die Frage ist ja noch offen. Danke

Gruß Ole
Anzeige
AW: VBA, Datum UF mit Tabelle vergleichen und Daten schreiben
26.09.2023 14:30:10
Alwin Weisangler
in der von mir hochgeladenen Datei 163110.xlsm ist ein allgemeines Modul "Mdl_ScrollenInBoxen". Diesen Code musst du in ein Modul deiner Originaldatei einfügen.

Gruß Uwe
AW: VBA, Datum UF mit Tabelle vergleichen und Daten schreiben
26.09.2023 17:44:53
Ole
Hallo Uwe,

vielen Dank für die Erklärungen. So funktioniert das super. Danke

Ich komme bestimmt nochmal auf dieses Forum zurück.

VG Ole
AW: VBA, Datum UF mit Tabelle vergleichen und Daten schreiben
26.09.2023 09:06:57
Ole
Guten Morgen Uwe,

Danke für die Erweiterung. Ich bin dankbar für jede Unterstützung.

Darf ich kurz fragen, wie und wo Du die "rng_SchichtNr" definiert hast aus der UserForm_Initialize()?
Denn bei mir kommt sonst immer der Fehler "Die Methode Range für das Objekt_Worksheet ist fehlgeschlagen"

Und dann gibt es auch, wenn ich den Code in meine Tabelle kopiere, eine Fehlermeldung:" Sub oder Function nicht definiert" beim Code
Private Sub ComboBox1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

EnableMouseScroll(ComboBox:=ComboBox1) = True
End Sub


Gruß Ole
Anzeige

338 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige