Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

NumberFormat("dd.mm.yyyy") ?

Forumthread: NumberFormat("dd.mm.yyyy") ?

NumberFormat("dd.mm.yyyy") ?
Karsten
Hallo
kann mir jemand folgenden Code richtig schreiben. So, wie ich es versucht habe, funktioniert es noch nicht.
If Target.Address = NumberFormat("dd.mm.yyyy") Then
Hier nochmal mein gesamter Code.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "A1" Then
If Target.Address = NumberFormat("dd.mm.yyyy") Then
Application.Run "a"
Else
Application.Run "b"
End If
End If
End Sub

Besten Dank füt eure Hilfe.
Gruß
Karsten
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: NumberFormat("dd.mm.yyyy") ?
02.12.2011 09:07:34
Rudi
Hallo,
mal mit der Syntax vertraut machen.
Target.Address gibt doch $A$1 zurück.
Willst du prüfen, welches Zellformat Target hat?
If Target.NumberFormat= "DD.MM.YYYY" Then
Gruß
Rudi
AW: NumberFormat("dd.mm.yyyy") ?
02.12.2011 09:16:26
Karsten
Hallo Rudi,
danke. Nun müsste doch, wenn in A1 z.B 02.02.2012 steht, Application.Run "a" durchlaufen werden. Macht er aber nicht. Ich denke schon, dass ich das Zellformat prüfen will. Bloß, was ist da noch falsch?
Gruß
Karsten
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "A1" Then
If Target.NumberFormat = "DD.MM.YYYY" Then
Application.Run "a"
Else
Application.Run "b"
End If
End If
End Sub

Anzeige
AW: NumberFormat("dd.mm.yyyy") ?
02.12.2011 09:40:14
Rudi
Hallo,
Ich denke schon, dass ich das Zellformat prüfen will.
Du weißt also nicht genau, was du willst?
Wie sollen wir das wissen?
If IsDate(Target) Then
Gruß
Rudi
AW: NumberFormat("dd.mm.yyyy") ?
02.12.2011 09:47:24
Karsten
Hallo Rudi,
doch, wie immer es heißt, das war's was ich suchte.
Danke
Gruß
Karsten
Anzeige
AW: NumberFormat("dd.mm.yyyy") ?
02.12.2011 09:12:42
hary
Hallo Karsten
Ich glaube, dass was Du vor hast, wird so nicht klappen.
Gib mal in eine leere Tabelle in A1 ein Datum ein Format: 11.01.11
Dann hast Du ein Datum drinstehen.
Jetzt gib mal 456 ein, das wird auch in ein Datum umgewandelt in dem Format 00.00.00
also wird Application.Run "b" nie ausgefuehrt.
Lasse mich aber gern eines besseren belehren. daher frage noch offen.
Vlt. eine Option: Nimm statt ZelleA1 eine Textbox.
gruss hary
Anzeige
AW: NumberFormat("dd.mm.yyyy") ?
02.12.2011 09:25:02
Karsten
Hallo Hary,
das stimmt. Allerdings die Zahlen, die ich eingeben will, sind höchstens zweistellig und nicht größer als 31. Und die lassen sich von einem "richtigen" Daten unterscheiden und auswerten.
Gruß
Karsten
jetzt geht das wieder los....
02.12.2011 10:44:24
robert
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Datum im Excel VBA Formatieren: dd.mm.yyyy


Schritt-für-Schritt-Anleitung

  1. Öffne den Visual Basic for Applications (VBA) Editor in Excel, indem Du ALT + F11 drückst.

  2. Füge ein neues Modul hinzu, indem Du mit der rechten Maustaste auf "VBAProject (deineDatei.xlsx)" klickst und dann "Einfügen" > "Modul" wählst.

  3. Kopiere den folgenden Code in das Modul:

    Private Sub Worksheet_Change(ByVal Target As Range)
       If Target.Address(0, 0) = "A1" Then
           If Target.NumberFormat = "DD.MM.YYYY" Then
               Application.Run "a"
           Else
               Application.Run "b"
           End If
       End If
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Gib in Zelle A1 ein Datum im Format dd.mm.yyyy ein (z. B. 02.02.2012).

  6. Überprüfe, ob die richtige Subroutine (Application.Run "a") ausgeführt wird.


Häufige Fehler und Lösungen

  • Fehler: If Target.Address = NumberFormat("dd.mm.yyyy")

    • Lösung: Stelle sicher, dass Du Target.NumberFormat verwendest, um das Zellformat zu überprüfen.
  • Problem: Der Code wird nicht ausgeführt, wenn eine Zahl (z. B. 456) eingegeben wird.

    • Lösung: Achte darauf, dass das Datum im richtigen Format eingegeben wird. Zahlen können in Excel automatisch in Datumsformate umgewandelt werden.

Alternative Methoden

  • Verwendung von Textboxen: Anstatt Zellen zu verwenden, kannst Du auch eine Textbox in Deinem Excel-Blatt nutzen, um das Datum im Format dd/mm/yyyy einzugeben. Hier ist ein Beispiel:

    Private Sub TextBox1_Change()
       If IsDate(TextBox1.Value) Then
           ' Formatieren des Datums
           TextBox1.Value = Format(TextBox1.Value, "dd.mm.yyyy")
       End If
    End Sub
  • Direkte Eingabe: Du kannst auch das CDate-Format verwenden, um sicherzustellen, dass die Eingabe als Datum interpretiert wird:

    Dim Datum As Date
    Datum = CDate(TextBox1.Value)

Praktische Beispiele

  • Beispiel für eine Datumsüberprüfung:

    If IsDate(Target.Value) Then
       MsgBox "Das eingegebene Datum ist gültig."
    Else
       MsgBox "Bitte ein gültiges Datum im Format dd.mm.yyyy eingeben."
    End If
  • Formatierung eines Datums in einem anderen Format:

    Target.NumberFormat = "dd-mm-yyyy"

Tipps für Profis

  • Verwende IsDate für die Validierung: Nutze IsDate(Target) vor dem Formatieren, um sicherzustellen, dass die Eingabe ein gültiges Datum ist.

  • Automatisiere die Formatierung: Du kannst die Formatierung automatisch anpassen, wenn der Benutzer ein Datum eingibt, indem Du die Worksheet_Change-Ereignisprozedur nutzt.

  • Beachte regionale Unterschiede: Stelle sicher, dass Du die richtige Datumsformatierung verwendest, die zu den regionalen Einstellungen Deines Systems passt.


FAQ: Häufige Fragen

1. Wie formatiere ich ein Datum in Excel VBA?
Du kannst das Datum formatieren, indem Du die NumberFormat-Eigenschaft des Zielbereichs verwendest, z. B. Target.NumberFormat = "dd.mm.yyyy".

2. Was ist der Unterschied zwischen Date und String in VBA?
Ein Date-Typ speichert das Datum in einem speziellen Format, während ein String einfach Text ist. Verwende CDate, um einen String in ein Datum zu konvertieren.

3. Wie kann ich sicherstellen, dass das Datum korrekt eingegeben wird?
Nutze die IsDate-Funktion, um zu überprüfen, ob die Eingabe ein gültiges Datum ist, bevor Du weitere Aktionen durchführst.

4. Warum wird mein Datum nicht im richtigen Format angezeigt?
Stelle sicher, dass Du das richtige Format in der NumberFormat-Eigenschaft angibst und dass das eingegebene Datum gültig ist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige