Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

DateValue(ttxtEdit7) is ok, aber........

Betrifft: DateValue(ttxtEdit7) is ok, aber........ von: Peter S.
Geschrieben am: 17.08.2004 15:22:28

Hallo liebe Exceller und -innen,
habe mal wieder ne kleine Frage....mit nachstehendem Code fülle ich in einer UF diverse Textfelder.....und sende den Inhalt über CB8 in eine andere Tabelle.
Klappt auch bestens.....damit von txtEdit7 der Wert als Datum in die Tabelle geschrieben wird habe ich die DateValue Methode gewählt.....passt alles, jedoch....

Private Sub CommandButton8_Click()
Dim z As Integer, myArr As Variant
Application.ScreenUpdating = False
Sheets("Tabelle1").Activate
z = Range("A1000").End(xlUp).Row
Cells(z + 1, 6) = txtEdit6.Value
On Error Resume Next
Cells(z + 1, 7) = DateValue(txtEdit7)
Cells(z + 1, 12) = txtEdit12.Value
Cells(z + 1, 13) = txtEdit13.Value
Cells(z + 1, 14) = txtEdit14.Value

myArr = Sheets("Tabelle2").Range("A1:N1000")
cboNamen = ""
cboNamen.List = myArr
For iCounter = 1 To 14
Controls("txtEdit" & iCounter) = ""
Next iCounter

...bringt er natürlich ne Fehlermeldung wenn aus Versehen ein Text in das Feld eingegeben wird oder die Textbox leer gelassen wird....daher on error on resume next....aber das hat einen Nachteil....

bei falscher Eingabe in txtEdit7 wird jetzt in der Tabelle eine leere Zelle erzeugt.....und das darf nicht sein, weil sonst nachfolgende Bearbeitungen einen Fehler erzeugen können...

Wer weiß da Rat?
Danke
Peter S.

  


Betrifft: AW: DateValue(ttxtEdit7) is ok, aber........ von: Ulf
Geschrieben am: 17.08.2004 15:30:06

Beschränk mal schon bei der Eingabe auf mögliche Zeichen:

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii < 46 Or KeyAscii > 57 Or KeyAscii = 47 Then
KeyAscii = 0
End If
End Sub


So können nur Zahlen und . eingegeben werden.
Bei Klick auf den Button prüfst du mit IsDate, ob es ein gültiges Datum ist, wenn nicht,
exit sub und ggf. Meldung.

Ulf


  


Betrifft: Hallo Ulf von: Peter S.
Geschrieben am: 17.08.2004 15:58:36

hallo ulf,
wie oder wo muss ich deinen code in den meinen integrieren?

danke sehr
Peter S.


  


Betrifft: AW: Hallo Ulf von: Ulf
Geschrieben am: 17.08.2004 16:02:34

TextBox1_KeyPress ist eine eigenständige Prozedur, ein fach zusätzlich in das Modul des userform kopieren und Namen der Box anpassen.

Ulf


  


Betrifft: AW: Hallo Ulf von: Peter S.
Geschrieben am: 17.08.2004 16:29:47

Hallo Ulf,
entweder sitz ich grad wieder mal auf meiner leitung.....irgendwie will das net.....ich füll über ne combobox die TextBoxes und schieß über den CommandButton den Inhalt in die Tabelle.....hab deinen Code jetzt als Private sub txtEdit7_KeyPress in Modul der UF....und gebe manuell in die txtEdit7 den Inhalt ub (=unbekannt) ein....und in der Tabelle ist die entsprechende Zelle leer und er wehrt sich auch net gegen die Eingabe??

Wo kann der Fehler liegen?
Peter S.


  


Betrifft: AW: Hallo Ulf von: Ulf
Geschrieben am: 17.08.2004 17:28:15

Lad mal dein Teil hoch.

Ulf


  


Betrifft: AW: Hallo Ulf von: Peter S.
Geschrieben am: 20.08.2004 10:53:00

Hallo Ulf,
sorry dass ich bisher nicht mehr geantwortet haben, ich wurde leider von null auf nichts auf ne dienstreise beordert und bin erst gestern nacht spät zurückgekommen.

Vielen Dank für Deine Hilfe, habe aber bei näherem Hinsehen gemerkt, daß ich an dieser Stelle keine Nöte habe, da die Daten hier nicht mehr nach Datum sortiert werden müssen und es deshalb egal ist, ob Text oder echtes Datum im Feld steht.....und damit konnte ich mir mit folgendem Code weiterhelfen:

For iCounter = 1 To 14
If Controls("txtEdit" & iCounter).Value = "" Then
Controls("txtEdit" & iCounter).Value = "ub"
End If
Next iCounter

Somit ist sichergestellt, daß im späteren Bereich die Sortier- und Zugriffsroutinen nicht auf eine leere Zelle stossen können.....und das ist das wesentliche an dieser Aufgabenstellung.

Danke Dir
Peter S.


  


Betrifft: Ach so... von: Ulf
Geschrieben am: 20.08.2004 11:12:53

o