Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1808to1812
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Datum Vorgabe in Kalenderzeile finden

Datum Vorgabe in Kalenderzeile finden
28.01.2021 14:10:05
DrEvil
Hallo,
wenn man denkt, man kommt zurecht, wird man eines besseren belehrt.
Ich würde mich freuen, wenn mir jemand entweder mein Brett vor'm Kopf wegnimmt, oder mir mit einer Lösung geholfen wird.
Ich habe eine Arbeitsmappe.
Darin gibt es ein Tabellenblatt - Tabelle 1.
Auf diesem steht in Zelle C2 (wäre flexibel) das aktuelle Datum, welches als Datum kurz formatiert ist.
In Zeile 1 stehen ab Spalte E (oder 5) fortlaufend die Daten des Jahres, angefangen mit 01.01.2021 bis eben Silvester, ebenfalls formatiert als Datum kurz. Weil ich es ein wenig nett halten möchte, berechne ich 01.01.2021 per Formel =Datum(Jahr(Z2S3);1;1) und die entsprechenden Folgedaten per =ZS(-1)+1.
Soweit ist alles gut und funktioniert.
Nun möchte ich per VBA eine Variable mit der Adresse (und vielleicht direkt auch die Spaltennummer) ausgibt, in der das Datum aus C2 und der zugehörige Match aus Zeile 1 übereinstimmen.
Ich habe aus einer anderen Datei einen Code genommen, der dort genau macht, was er soll (auch wenn es ggf nicht die schönste Lösung ist). Allerdings habe ich dort keine Daten sondern Zahlen.
Ich habe heute beinah den ganzen Vormittag nach einer Lösung gesucht und vieles ausprobiert (nur leider nicht alles aufbewahrt).
Meist bekomme ich (mit der aktuellen Lösung) einen Laufzeitfehler 91 mit Hinweis "Objektvariable oder with-blockvariable nicht festgelegt". Das bringt mich leider auch nicht weiter, weil ich die angebotene Hilfe nicht entknotet bekomme.
Schreibe ich das Datum in dieselbe Zeile, in der ich Suche, macht der Code, was er beinah soll. Er zeigt mir die Zelle, in die ich das Datum eingetragen habe (Bsp. cells(1,60). Nicht aber die aus dem Kalender.
Anbei noch mein Konstrukt in einer Beispieldatei.
https://www.herber.de/bbs/user/143380.xlsm
Vielen Dank schonmal für Unterstützung.
Gruß

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datum Vorgabe in Kalenderzeile finden
28.01.2021 14:46:24
Werner
Hallo,
Excel Datum mit Find ist etwas problematisch. Benutze lieber Match
varDatMatch = WorksheetFunction.Match(CLng(Range("C2")), Rows(1), 0)
Cells(1, varDatMatch).Select
Gruß Werner
AW: Datum Vorgabe in Kalenderzeile finden
28.01.2021 14:51:28
DrEvil
Hallo Werner,
vielen Dank für die Hilfe. Das war was ich suchte und nun kann ich weiterbasteln :)
Grüße
Gerne und Danke für die Rückmeldung. o.w.T.
28.01.2021 14:52:26
Werner
AW: Datum Vorgabe in Kalenderzeile finden
28.01.2021 17:01:06
Herbert_Grom
Hallo Henrik,
allerdings solltest du eine normale Sub nicht in das ClassModule der Tabelle schreiben, sondern in ein "Standardmodul", z. B. "Modul1"!
Servus
AW: Datum Vorgabe in Kalenderzeile finden
28.01.2021 17:35:44
DrEvil
Hi,
auch ein guter Tip.
Werde ich umsetzen (und mir dabei auch direkt ne Menge Kopiererei sparen :)).
Grüße
Anzeige
AW: Datum Vorgabe in Kalenderzeile finden
28.01.2021 19:36:30
DrEvil
Hallo nochmal,
auch wenn ich das, was ich eigentlich haben wollte, schon bekommen habe...
Die Zeit zeigte mir, dass ich in der Logik-Abfolge einem Irrtum erlegen war und ich umdisponieren muss.
Wie muss ich die Lösung varDatMatch = WorksheetFunction.Match(CLng(Range("C2")), Rows(1), 0)
umfunktionieren, wenn ich nun das Datum nicht in C2 stehen habe sondern in eine Variable strDatum (String) einlese.
Ändere ich einfach "C2" in strDatum bekomme ich Laufzeitfehler 1004.
Ändere ich auf ... eigentlich egal. Bei allen meinen Ideen bekam ich dieselbe Fehlermeldung :(
Vielen Dank für weitere Unterstützung
Grüße
Anzeige
AW: Datum Vorgabe in Kalenderzeile finden
28.01.2021 20:17:22
Werner
Hallo,
was erwartest du denn? Du kannst doch nicht per String nach einem Datum suchen. Ein Datum ist ein Datum und kein String.
Warum hast du denn ein Datum als String?
Gruß Werner
AW: Datum Vorgabe in Kalenderzeile finden
28.01.2021 21:20:39
DrEvil
Wenn ich das erklären könnte...
"Irgendwas ist da schief gelaufen" hätte ich jetzt gerne geantwortet, aber leider komme ich auch nicht weiter, wenn ich das Datum als Date nehme.
Vielleicht hilft mir als Ausrede auch, dass ich dachte, CLng würde in long konvertieren und demnach wäre es beinah egal, ob ich einen string, variant oder halt Datum hätte.
Bin da noch nicht so recht bewandert mit VBA. Hilft ja nix, das zu leugnen.
Wenn noch Hoffnung besteht, bin ich für weitere Unterstützung sehr dankbar.
Ansonsten hoffe ich natürlich auf Erläuterung, damit ich über'n Jordan komme und das verstehe.
Dank und Grüße
Anzeige
AW: Datum Vorgabe in Kalenderzeile finden
28.01.2021 21:30:26
Werner
Hallo,
was soll ich denn damit jetzt anfangen? Soll ich Kaffesatzlesen?
Wie sieht dein Code aus? Woher kommt das "Datum" deiner Variablen? Wie wird die Variamle gefüllt?
Beispielmappe mit Code?
Gruß Werner
AW: Datum Vorgabe in Kalenderzeile finden
29.01.2021 10:59:36
DrEvil
Sorry,
kommt nu... Alles :)
Beispieldatei: https://www.herber.de/bbs/user/143406.xlsm
Es gibt die Blätter Konfiguration (für Feiertage und ggf noch kommendes Ungewisses), Vorlage (für die Erzeugung neuer Projektblätter), Zeiterfassung (hier ist mein Problem), Übersicht (hier wird alles soweit zusammengeschrieben).
Und ja... Irgendwie könnte man bestimmt auch die Übersicht und die Zeiterfassung sinnvoll zusammenlegen, aber das ist bisher nicht gewünscht.
Was noch...
Doppelklick auf Blatt "Übersicht" in Spalte 1 löst einen Sprung zum entsprechenden Projektblatt aus, Doppelklick in SPalte 2 des Blattes aktiviert eine Zeitmitschrift auf dem Projektblatt. Ein einfaches "Jetzt gedrückt" und bei Drücken des "Ende-Buttons" auf dem Blatt wird die Differenz ermittelt und eingetragen.
Dann kam der Wunsch mit einer Kalender-Funktion und dort eingetragenen täglichen Gesamtstunden. Und damit kam dann der Kontakt ins Herber-Forum :)
Ich versuche nun, bei Activate des Blattes Zeiterfassung auch dort die Inforamtionen (wie bei Übersicht) zu aktualisieren.
Hier trage ich zunächst die Projektdaten ein, lasse sie sortieren und möchte dann vom Projektblatt Spalte1 (Datumseintrag) in das Blatt "Zeiterfassung" bei diesem Datum in der dann korrekten Zeile die Stunden-Tages-Summe vom Projektblatt aus Spalte 5 eintragen lassen.
Und das dann über alle Projektblätter.
Soweit der Plan.
Zuletzt habe ich bei "Bearbeitungsende" auf dem Projektblatt hinbekommen, dass die Tagesstundensumme in Spalte 5 beim ersten Datumsneueintrag kommt.
Dann wollte ich mit der Umsetzung "laufe alle Blätter durch und trage die Stunden in der Zeiterfassung zusammen" weitermachen und dachte, ich habe ja schon den Code für "finde das Datum aus einer Vorgabezelle" und kann diesen einfach anpassen.
Und am Ende soll auf dem Blatt "Zeiterfassung" bei jedem Tag die Stundensumme des Tages über alle Projekte in Zeile 4 stehen.
Und ab hier sind wir dann bei "warum eigentlich String" und warum das nicht im Kaffeesatz steht...
Soweit müsste das eigenltich alles sein (hoffe ich).
Vielen Dank für Entwirrungshilfen und
Schöne Grüße
Anzeige
AW: Datum Vorgabe in Kalenderzeile finden
29.01.2021 11:13:00
DrEvil
Bitte nicht so verstehen, dass ich eine Gesamtlösung für die Idee erwarte. Das wäre natürlich nicht schlecht und ich könnte darin sicherlich interessante Dinge lernen.
Ich freue mich, wenn mir bei meinem Problem "wie kommt der Stundeneintrag vom Projektblatt in die richtige Spalte des Zeiterfassungsblattes" geholfen wird. Oder zumindest beim Anfang damit.
Mein Plan ist der:
Mit For a = 6 To intRowMax soll der Blattname ermittelt werden (der Reihe nach). Hier ist aktuell der Sprung zum Projektblatt auskommentiert, weil der sich mit dem Worksheet_Activate der Zeiterfassung zankt.
Mit "b" möchte ich dann die Blätter durchgehen, um eben die passenden Einträge "Stunde zu Datum" zu finden. Hier habe ich auf CountIF gesetzt, bin jedoch damit grade nicht sicher, ob mein Plan aufgehen kann, dass ich nicht auf jedes Projektblatt springen muss sondern alles ohne Blattwechsel hinbekommen kann.
Joa... Demnach: Danke für jede Hilfe bei dem Gebastel.
Schöne Grüße, die Zweite
Anzeige
AW: Datum Vorgabe in Kalenderzeile finden
29.01.2021 13:45:33
DrEvil
Ich hoffe, es ist noch nicht zu spät.
Ich habe weitergebastelt und bin am Ziel.
Fast :)
Es funktioniert eigentlich prächtig. Ich habe das "warum String" Problem erfolgreich umschifft, indem ich das jeweilige gefundene Datum in eine Zelle zwischenparke und von dort mit dem Code varDatMatch = WorksheetFunction.Match(CLng(Range("C2")), Rows(1), 0) weiterarbeite.
Eine Frage zum Schluss bleibt natürlich dennoch:
Ich möchte auf dem Blatt "Zeiterfassung" eine Summe über einen variablen Bereich erstellen.
Ich würde gerne nutzen: WorksheetFunction.Sum(Range(strTagesBereich))
Hierfür setze ich einen "Bereich" zusammen: strTagesBereich = "cells(6," & Format(intColMin, "#") & "),cells(" & Format(intRowMax, "#") & "," & Format(intColMin, "#") & ")" Ergebnis sieht vielversprechend aus. Im ersten Fall zeigt es "cells(6,5),cells(18,5)"
Das läuft leider am Ende auf einen Fehler hinaus.
Setze ich (für Versuchszwecke) das Ganze so um: strTagesBereich = "E6:E" & Format(intRowMax, "#") funktioniert es.
Ist es möglich, einen variablen Bereich für die Funktion Summe mit cells(),cells() zu erzeugen? Oder muss Summe immer mit Buchstaben arbeiten im VBA?
Vielen Dank und schöne Grüße
Anzeige
AW: Datum Vorgabe in Kalenderzeile finden
29.01.2021 15:05:02
DrEvil
Nochmal Hi.
Meine Tabelle tut nun alles, was ich von ihr wollte.
Die Lösung zu meinem letzten Problem war dann, anstelle
WorksheetFunction.Sum...
auf
Application.Sum(Range(Cells(6, intColMin), Cells(intRowMax, intColMin)))
zu ändern. Hier konnte ich die variablen VOrgaben für die SUmmen-Bereiche einsetzen.
Danke.
Und ein schönes Wochenende...

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige