Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1800to1804
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
VBA Datumformat
21.12.2020 10:00:46
A-Ron
Hallo Forum,
ich habe folgendes Problem: Ich habe mir mit VBA ein Tool geschrieben, mit dem ich neue Versuchsvorschriften erstellen kann. Diese werden anschließend in eine anderes Workbook übertragen und dort gesammelt. Anschließend habe ich eine Liste erstellt, in der Alle Versuche mit Datum und Ergebnissen etc eingetragen werden.
Nun mein Problem: seit ich die Versuchsvorschriften mit VBA erstelle, funktioniert meine _ bedingte Formatierung nicht mehr.

(Abfrage, ob das Datum > oder 
Das Datum wird mit VBA als Datum formatiert, wird allerdings immer > Heute angezeigt, obwohl es eigentlich kleiner sein sollte.
Hat jemand eine Idee, woran das liegen könnte?

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Datumformat
21.12.2020 10:06:57
Hajo_Zi
Du hast Text in die Zelle geschrieben.
Zu Deiner Datei kann ich nichts schreiben, was wohl daran liegt das ich nicht auf fremde Rechner schaue.Ich baue keine Datei nach.
Sollte die Datei verlinkt werden?
Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, kannst du diese Daten
http://www.ms-office-forum.de/forum/showthread.php?t=322895
ändern.
Bilder lade ich mir nicht runter, da Excel damit nichts anfangen kann.
http://www.excel-ist-sexy.de/bilder-statt-datei/
Hochgeladene Bilder können zwar als solche in Excel importiert werden, sind jedoch bei der Lösung von Problemen nicht sehr hilfreich, da man die eigentlichen Daten nicht ohne große und zeitraubende Umwege direkt in die Tabelle übertragen kann.
Das ist nur meine Meinung zu dem Thema.
http://www.excel-ist-sexy.de/bilder-statt-datei/
Hochgeladene Bilder können zwar als solche in Excel importiert werden, sind jedoch bei der Lösung von Problemen nicht sehr hilfreich, da man die eigentlichen Daten nicht ohne große und zeitraubende Umwege direkt in die Tabelle übertragen kann.
Das ist nur meine Meinung zu dem Thema.

Anzeige
AW: VBA Datumformat
21.12.2020 10:07:28
RPP63
Moin!
Findest Du nicht, dass Du mindestens den relevanten Code posten solltest?
Nur mal der Spur nach:
?"9.12.2012" < date
Falsch

Dies, weil "9.12.2012" korrekt als Text erkannt und entsprechend sortiert wird.
Gruß Ralf
AW: VBA Datumformat
21.12.2020 10:22:23
A-Ron
Hey,
danke euch beiden für die Antwort.
Hochladen ist hier leider schwer, weil die Datei sensible Rezepturen enthält und ich dafür viel löschen/bearbeiten müsste. (Sind ca 150 Tabellenblätter)
Habe aber durch euren Hinweis mein Problem lösen können.
'Speichern
Private Sub CommandButton1_Click()
Dim lngHelp As Long
Dim intZel As Integer
Dim i As Integer
intZel = 9
If OptionButton1.Value = True Then
For i = 1 To 4
ThisWorkbook.ActiveSheet.Range("C" & intZel) = Controls("TextBox" & i)
intZel = intZel + 1
ThisWorkbook.ActiveSheet.Range("C" & intZel) = Date
Next
ElseIf OptionButton2.Value = True Then
For i = 1 To 4
ThisWorkbook.ActiveSheet.Range("C" & intZel) = Controls("TextBox" & i)
intZel = intZel + 1
ThisWorkbook.ActiveSheet.Range("C" & intZel).Formula = Date + 1
Next
Else:
If IsDate(TextBox5) Then TextBox5 = CDate(TextBox5)
For i = 1 To 4
ThisWorkbook.ActiveSheet.Range("C" & intZel) = Controls("TextBox" & i)
intZel = intZel + 1
Next
End If
lngHelp = CLng(ThisWorkbook.Worksheets("Neue Vorlage").Range("C11"))
ThisWorkbook.Worksheets("Neue Vorlage").Range("C11").NumberFormat = "General"
ThisWorkbook.Worksheets("Neue Vorlage").Range("C11") = lngHelp
End Sub
Dies ist mein Code und ich habe ihn mit

ThisWorkbook.ActiveSheet.Range("C" & intZel).Formula = DateValue(TextBox5)
erweitern und so das Problem lösen können.
Danke für eure Hilfe
Anzeige
AW: VBA Datumformat
21.12.2020 10:26:33
A-Ron
Ich hatte ursprünglich gehofft, dass folgende Zeile reichen würde:
If IsDate(TextBox5) Then TextBox5 = CDate(TextBox5)
Danke nochmals für eure Hilfe und sorry für den Fehlenden Upload im ersten Post.
Viele Grüße,
A-Ron
AW: VBA Datumformat
21.12.2020 10:29:21
Hajo_Zi
ich hatte als Recht, das möchtest Du nich beachten. Eine TextBox enthält nun mal Text.
Ich bin dann raus, da ich nicht für den Papierkorb schreibe.
Gruß Hajo
AW: VBA Datumformat
21.12.2020 10:29:23
Werner
Hallo,
eine Textbox enthält, wie der Name schon sagt, Text. Und nur weil du den Eintrag in der Textbox entsprechend "formatierst" ändert sich daran nichts.
Hier:
ThisWorkbook.ActiveSheet.Range("C" & intZel) = Controls("TextBox" & i)

schreibst du Text in die Zelle, der wie ein Datum aussieht.
ThisWorkbook.ActiveSheet.Range("C" & intZel) = CDate(Controls("TextBox" & i))
Gruß Werner
Anzeige
Erklärung
21.12.2020 10:36:48
RPP63

If IsDate(TextBox5) Then TextBox5 = CDate(TextBox5)

Damit bleibt der Inhalt der Textbox immer noch Text, der wie ein Datum aussieht.
Wenn Du diesen ohne explizite Typumwandlung einer Zelle als Wert zuweist, ändert sich nix am Ergebnis.
Userforms in Excel sind halt "Krüppel", die nichts mit echten Formularen in Access zu tun haben, wo Typzuweisungen bereits in den Formularfeldern zugewiesen werden.
Meine ganz persönliche Meinung:
Ich nutze keine Userforms mehr.
Nicht, weil meine VBA-Skills nicht ausreichen, sondern schlicht, weil ich faul bin. ;)
Statt dessen benutze ich (ausgeblendete) Formular-Tabellenblätter.
Schließlich hat eine Excel-Zelle fünfunddrölfzig Eigenschaften, mit denen ich prima mein Debugging gegen Null fahren kann.
Ich habe vor Jahren mal eine quasi-relationale Datenbank in Excel erstellt, die mittels UFs bedient wurde.
Waren grob 1.500 Zeilen Code und ca. 40 Stunden Debugging.
Sowas tue ich mir nicht mehr an.
Aber dies nur als kleiner Plausch aus dem Nähkästchen.
Gruß Ralf
Anzeige

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige