Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
640to644
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
640to644
640to644
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
2 Probleme: nur Zahlen / nur Datum
26.07.2005 09:06:08
Martin
Guten morgen!
Ich habe 2 Probleme:
1.Problem:
Mit dem Code:

Private Sub Textbox1_AfterUpdate()
If Not IsNumeric(Me.TextBox1.Value) Then
MsgBox "Nicht korrekte Eingabe"
Me.TextBox1 = ""
End If
End Sub

kann ich nur Zahlen in einer Textbox zulassen. Kann mir jemand verraten, wie ich jetzt nur Zahlen bis zu 3 Ziffern zulassen kann?
Also es sind sowohl 1 ziffrige als auch 2 und 3 ziffrige Zahlen zulässig. Kann mir jemand helfen? das wäre nett.
2.Problem:
Wie kann ich es hinkriegen, daß in Textbox3 nur ein Datum eingegeben werden kann?
Also für eure Hilfe wäre ich dankbar.
Liebe Grüße,
Martin

23
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: 2 Probleme: nur Zahlen / nur Datum
26.07.2005 09:15:21
eres
Hallo Martin,
ad 1. z.B. abfragen, ob Me.TextBox1.Value kleiner 1000
oder, wenn Du nur ganz Zahlen haben willst z.B.
If IsNumeric(left(Me.TextBox1.Value, 1)) and _
IsNumeric(mid(Me.TextBox1.Value, 2, 1)) and (right(Me.TextBox1.Value, 1)) then
ad 2. Funktion IsDate
Gruss
eres
AW: 2 Probleme: nur Zahlen / nur Datum
26.07.2005 09:17:25
Sylvio
Hallo Martin,

Private Sub Textbox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Chr(KeyAscii) Like "[0-9]" = False Or _
KeyAscii = 32 Then
MsgBox "Es werden nichtnummerische Zeichen verwendet wurden!" & vbLf & _
"Bitte nur ganzzahlige Werte eingeben.", vbCritical, "Falsche Wert-Eingabe", 0, 0
KeyAscii = 0
End If
End Sub

so sind nur Zahlen möglich
Gruß Sylvio
Anzeige
AW: 2 Probleme: nur Zahlen / nur Datum
26.07.2005 09:21:13
MichaV
Hi Sylvio,
wer sagt Dir, daß der Text nicht mittels Copy and Paste per Maus eingefügt wird?
Gruss- Micha
Wie müsste mann das dann noch abfragen?
26.07.2005 09:24:59
Sylvio
Hallo MichaV,
wie könnte ich das copy und paste dann verhindern?
Gruß Sylvio
AW: Wie müsste mann das dann noch abfragen?
26.07.2005 09:28:58
MichaV
Hi,
Shift+Ins und Strg+V sowie die rechte Maustaste abfangen. Das macht dann aber erheblich mehr Arbeit, als beim Verlassen des Feldes den gesamten Text zu prüfen.
Wollt halt nur andeuten, daß die Key- Ereignisse bei solchen Prüfungen mit Vorsicht zu behandeln sind.
Gruss- Micha
Ooops
26.07.2005 09:32:36
MichaV
Hi Sylvio,
ich sehe gerade, Maus bringt bei Textfeldern in Excel ja nix ;o) Punkt für Dich.
Aber die Tastenkombinationen für Einfügen bleiben ein Problem.
Gruss- Micha
Anzeige
AW: Ooops
26.07.2005 09:36:37
Martin
Hi ihrs,
da die werte unter garantie nicht über copy + paste eingegeben werden macht ihr euch glaub ich viel zu viel gedanken. Aer nett von euch!
Ich hab das mit den Zahlen und der Länge jetzt so gemacht:

Private Sub Textbox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Chr(KeyAscii) Like "[0-9]" = False Or _
KeyAscii = 32 Then
MsgBox "Es wurden nichtnummerische Zeichen verwendet!" & vbLf & _
"Bitte nur ganzzahlige Werte eingeben.", vbCritical, "Falsche Wert-Eingabe", 0, 0
KeyAscii = 0
End If
If Len(TextBox1.Text) > 3 Then
MsgBox "Bitte nur bis zu 3 Ziffern eintragen!", , "Falsche Eingabe"
End If
End Sub

Danke euch für die Hilfe!
Martin
Anzeige
Ich will es wissen
26.07.2005 09:45:53
Sylvio
Hallo Micha,
ich sammel mal die Punkte ab 100 gibts glaube ne Waschmaschine :-)
was mich aber trotzdem interessiert, wie könnte ich dieses strg +c strg + v abfangen auch wenn es mehr aufwand macht haste nen vba code einstecken?
Gruß Sylvio
<schwitz>
26.07.2005 09:54:27
MichaV
Hi Sylvio,
nun hab ich aber gewackelt... Aber es geht dann doch ganz einfach. Hier mal schnell zusammengebastelt:
Wenn Du die MsgBox nicht haben willst, dannmusst Du den Rest auskommentieren.


      
Option Explicit
'Public AlterText As String

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 16 Or KeyCode = 17 Then
  MsgBox "Hier wird nix eingefügt!"
'  AlterText = TextBox1.Text
End If
  
End Sub
'Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)

'If KeyCode = 16 Or KeyCode = 17 Then
'  TextBox1.Text = AlterText
'End If
'End Sub 


Gruss- Micha
Anzeige
AW: <schwitz> <--Handtuch reich
26.07.2005 10:04:35
Sylvio
Danke Micha,
echt super funzt
Gruß Sylvio
AW: Ich will es wissen
26.07.2005 10:00:22
Eule
Hi Sylvio
setz doch diese Tastenkombinationen einfach dummy
Gruss Eule
@Eule Dummy und wie?
26.07.2005 12:22:59
Sylvio
AW: @Eule Dummy und wie?
26.07.2005 12:28:44
Eule
Hi Sylvio
vielleicht so:
Option Explicit
''''''''''''''''''''''''''''''''''''''''''
' in "dieseArbeitsmappe" kopieren
'

Private Sub Workbook_Activate()
'  KopierenEinfuegenAus
'End Sub

'
'

Private Sub Workbook_Deactivate()
'  KopierenEinfuegenAn
'End Sub

''''''''''''''''''''''''''''''''''''''''''''
Sub KopierenEinfuegenAus()
BefehlAnAus 21, False 'Ausschneiden
BefehlAnAus 19, False 'Kopieren
BefehlAnAus 22, False 'Einfuegen
BefehlAnAus 755, False 'Inhalte einfuegen
BefehlAnAus 848, False 'verschieben/kopieren
Application.OnKey "^c", "" 'Strg + C
Application.OnKey "^x", "" 'Strg + X
Application.OnKey "^v", "" 'Strg + V
Application.OnKey "^{INSERT}", "" 'Strg + Einfg
Application.OnKey "+{DEL}", "" 'Umsch + Entf
Application.OnKey "+{INSERT}", "" 'Umsch + Einfg
Application.CellDragAndDrop = False
End Sub
Sub KopierenEinfuegenAn()
BefehlAnAus 21, True
BefehlAnAus 19, True
BefehlAnAus 22, True
BefehlAnAus 755, True
BefehlAnAus 848, True
Application.OnKey "^c"
Application.OnKey "^x"
Application.OnKey "^v"
Application.OnKey "^{INSERT}"
Application.OnKey "+{DEL}"
Application.OnKey "+{INSERT}"
Application.CellDragAndDrop = True
End Sub
Sub BefehlAnAus(Id As Variant, AnAus As Boolean)
Dim cb As CommandBar
Dim ctl As CommandBarControl
For Each cb In Application.CommandBars
Set ctl = cb.FindControl(Id:=Id, Recursive:=True)
If Not ctl Is Nothing Then ctl.Enabled = AnAus
Next
End Sub
Gruss Eule
Anzeige
AW: @Eule Dummy und wie?
26.07.2005 12:50:31
Sylvio
Hey Eule,
danke werd es mal ausprobieren.
Gruß Sylvio
AW: @Eule geht das auch führ strg + alt + entf
26.07.2005 12:54:39
Sylvio
AW: @Eule geht das auch führ strg + alt + entf
26.07.2005 13:02:15
Eule
Hi Sylvio
nein, ist keine Excel-Tastatur-Eingabe
Gruss Eule
schade trotzdem danke o.w.t
26.07.2005 13:54:07
Sylvio
AW: 2 Probleme: nur Zahlen / nur Datum
26.07.2005 09:18:39
Peter
Servus,
mal als Ansatz.


      
Sub t2()
Dim i As Integer
For i = 11 To 13
If Not IsNumeric(Cells(i, 1)) Then
If Not IsDate(Cells(i, 1)) Then
If Len(Cells(i, 1)) > 3 Then
MsgBox "Nix geht !!! " & "A" & i
End If
End If
End If
Next
End Sub 


MfG Peter
Anzeige
AW: 2 Probleme: nur Zahlen / nur Datum
26.07.2005 09:18:53
MichaV
Hi
zu 1.)

Option Explicit
Sub bla()
Dim i%
Dim a$
a = "123" 'Dein Text, vorher mit IsNumeric prüfen!
For i = 1 To Len(a)
If Mid(a, i, 1) > 3 Then
MsgBox "Nicht korrekte Eingabe"
Me.TextBox1 = ""
End If
Next i
End Sub

zu 2.)
wie in Deinem Beispiel, nur nimm IsDate(DeinText)
Gruss- Micha
AW: 2 Probleme: nur Zahlen / nur Datum
26.07.2005 09:47:23
Martin
Zu dem 2. Problem habe ich:

Private Sub Textbox11_AfterUpdate()
If Not IsDate(Me.TextBox11.Value) Then
MsgBox "Bitte geben Sie ein Datum an!", , "falsche Eingabe"
Me.TextBox11 = ""
End If
End Sub

genommen
Allerdings sieht er es nicht als Fehler an, wenn man z.B. 36.12.05 schreibt. Schreibt man aber 36.12.2005 erkennt er den Fehler. Knn man das noch so verbessern, daß er es bei 2 stelliger jahresangabe auch erkennt?
Danke,
Martin
Anzeige
AW: 2 Probleme: nur Zahlen / nur Datum
26.07.2005 10:14:11
MichaV
Hi,
ist ja interessant. Hat wohl was mit dem 2000- Problem zu tun?
Cdate("36.12.05") ergibt 05.12.1936. Cdate("36.12.2005") geht nicht, weil "36.12.2005" ja kein Datum ist (IsDate=False). Also füge nach der Prüfung auf IsDate noch eine Abfrage ein die prüft, ob sich das Text- Datum durch die Umwandlung in ein "richtiges" Datum verändert:

If IsDate(a) Then
If a=CDate(a) Then
'Nun ist es auf jeden Fall ein ordentliches Datum.
Else
'Kein Datum, weil z.B. 36.12.05
End If
ELse
'Kein Datum, weil z.B. 36.12.2005 oder Text
End If

Gruss- Micha
Anzeige
AW: 2 Probleme: nur Zahlen / nur Datum
26.07.2005 17:24:37
Martin
Danke Micha,
klappt wonderbra!!!
Fein! Danke für Deine Rückmeldung! owT
27.07.2005 01:51:58
MichaV

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige