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

Optimierung von VBA Code

Forumthread: Optimierung von VBA Code

Optimierung von VBA Code
20.12.2006 20:49:54
VBA
Hallo Excelfreunde,
ich habe eine Textbox in der ich ein Datum eingeben will. Dieses Datum soll entweder als "normales Datum" (10.12.06) oder als Kurzform (10.12.) eingegeben werden können.
Wenn es als Kurzform eingegeben wird, wird per VBA das Jahr (DB_Jahr) angehängt.
Das in die Textbox eingegebene Datum soll als Datum Format in eine Zelle eingetragen werden. Falls sich die Eingabe nicht um ein Datum handelt, sollte der Text der Textbox als Text in die Zelle eingetragen werden.
Ich verwende dafür folgenden Code:

Private Sub Textbox_AfterUpdate()
If Textbox = "" Then Sheets(2).Cells(RowNR, 15) = "": Exit Sub
If IsDate(Textbox) = True Then
Sheets(2).Cells(RowNR, 15) = Format(Textbox.Value, "dd.mm.yy")
Else
If IsNumeric(Textbox) = True Then
Sheets(2).Cells(RowNR, 15) = Format(Textbox.Value & DB_Jahr, "dd.mm.yy")
Else
Sheets(2).Cells(RowNR, 15) = Textbox
End If
End If
End Sub

Ich bin mir sicher, daß dies keine optimale Lösung ist. Daher suche ich nach einer eleganteren Lösung.
Gruß
Dieterlem
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Optimierung von VBA Code
20.12.2006 21:29:35
VBA
Hallo
Ich denke mal, das ist die eleganteste Lösung,... auch wenn sie nicht funktioniert :-)
Gib mal in der Textbox "12.12.", so wie du geschrieben hast, dann bringt
If IsNumeric(TextBox1) = True Then
einen Fehler, denn diese Eingabe ist für EXCEL nicht mehr nummerisch, sondern schlicht und einfach Text :-)
Das zu prüfen ist aufwändiger
If IsNumeric(Left(TextBox1, 2)) And Mid(TextBox1, 3, 1) = "." And IsNumeric(Mid(TextBox1, 4, 2)) And Mid(TextBox1, 6, 1) = "." Then
MsgBox "Datum kann komplettiert werden"
End If
Unter der Voraussetzung, dass das Datum in der Form von "12.12." oder "01.12." eingegeben wird.
Datumseingaben in der Textbox ist so ziemlich das schlimmste was einem Programmierer passieren kann, weil er alle möglichen Varianten abfragen muss.
Die Punktprüfung deshalb, weil Kommazahlen nicht für Datumswerte verwendet werden können.
Am einfachsten verwendest du das Kalendersteuerelement, da sind keine Falscheingaben möglich :-)
Gruss Rainer
Anzeige
AW: Optimierung von VBA Code
20.12.2006 23:37:19
VBA
Hi,
"Daher suche ich nach einer eleganteren Lösung."
Da bist du bei Excel falsch, Hugo Boss ist die richtige Wahl.
mfg Jens
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige