Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
976to980
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
976to980
976to980
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

InputBox - Eingabeformat abfangen

InputBox - Eingabeformat abfangen
08.05.2008 13:55:00
David
Hallo zusammen
Ich möchte in einem Dialog einen Monat abfragen. Dabei möchte ich sicherstellen, dass dieser im richtigen Format eingegeben wird, da die Zahl für einen Datei-Pfad verwendet wird.
Mein bisheriger Ansatz geht so:

Dim monat As integer
Do Until monat >= 1 And monat 


Das klappt auch soweit mit allen Zahlen. Wenn die Zahl außerhalb der Range ist, kommt der Dialog erneut, hat sie (eine) Kommastelle(n), wird nur der ganzzahlige Anteil genommen.
Wenn ich jedoch jetzt Text eingebe, z. Bsp. April, dann kommt eine Fehlermeldung von wegen "Typen unverträglich", was ja auch logisch ist, da Text nicht 'Integer' ist.
Ich habe auch schon versucht, den monat als String zu definieren, aber dann funzt die INT-Formel nicht mehr.
Hat jemand eine Lösung für mich?
Danke vorab.
Gruß
David

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: InputBox - Eingabeformat abfangen
08.05.2008 13:59:35
Hajo_Zi
Hallo David,
‚Inputbox mit Type 1 laesst nur Zahlen als Eingabe zu.
VarPrints = Application.InputBox("Anzahl der Ausdrucke", "Drucken", 0, Type:=1)

AW: InputBox - Eingabeformat abfangen
08.05.2008 14:17:00
David
Hallo Hajo,
das geht in Bezug auf meine Frage. Allerdings hat sich dadurch ein neues Problem aufgetan (welches für mich unlogisch ist).
Der Teil-Code geht jetzt so:

Dim monat As Integer, file_new As String
Do Until monat >= 1 And monat 


komischerweise ergibt Len(monat) IMMER 2, auch wenn monat = 1 (oder eine andere einstellige Zahl) ist. Damit kann ich nicht mehr die 0 voranstellen, damit der Monat 2-stellig wird.
Klar könnte ich das auch mit Danke.

Anzeige
AW: InputBox - Eingabeformat abfangen
08.05.2008 14:25:48
Hajo_Zi
Hallo David,
If Len(CStr(monat)) = 1 Then monat = "0" & monat
Gruß Hajo

AW: InputBox - Eingabeformat abfangen
08.05.2008 14:27:00
Rudi
Hallo Hajo,
das klappt nicht, solange Monat als Integer deklariert ist.
Gruß
Rudi

AW: InputBox - Eingabeformat abfangen
08.05.2008 14:28:00
Hajo_Zi
Hallo Rudi,
ich habe es getestet unter 2007 aber ich sehe keinen Grund warum das in Vorgänger Vesionen nicht gehen sollte.
Gruß Hajo

AW: InputBox - Eingabeformat abfangen
08.05.2008 14:40:21
Andi
Hi,
bei 2003 geht's nicht.
Wenn ich an eine Int-Variable vorne eine 0 dran-verkette, dann wird die nicht angezeigt, oder anders gesagt:
Dim monat As Integer
monat = 1
If Len(CStr(monat)) = 1 Then monat = "0" & monat
MsgBox monat
ergibt die Ausgabe 1, nicht 01.
Schönen Gruß,
Andi

Anzeige
AW: InputBox - Eingabeformat abfangen
08.05.2008 14:49:12
Hajo_Zi
Hallo Andi,
ich habe es jetzt auch in 2003 im Urzustand getestet, ohne Probleme. Das 1 rauskommt hängt damit zusammen das die Variable als Integer und nicht als String definiert wurde.
Gruß Hajo

AW: InputBox - Eingabeformat abfangen
08.05.2008 15:05:23
Andi
Hi,
Das 1 rauskommt hängt damit zusammen das die Variable als Integer und nicht als String definiert wurde.
Schon klar, deswegen meinte Rudi ja, dass es nicht geht, solange monat als Integer deklariert ist.
01 statt 1 war ja der Sinn der ganzen Übung.
Schönen Gruß,
Andi

Anzeige
AW: InputBox - Eingabeformat abfangen
08.05.2008 14:28:00
David
Ich nehme die Lösung von Rudi, trotzdem Danke (merke ich mir für's nächste mal)
Gruß

AW: InputBox - Eingabeformat abfangen
08.05.2008 14:25:49
Rudi
Hallo,
so:

Sub tt()
Dim monat, file_new As String
Do
monat = Int(Application.InputBox("Monat (1-12", Type:=1))
Loop Until monat >= 1 And monat 


AW: InputBox - Eingabeformat abfangen
08.05.2008 14:27:00
David
Das ist natürlich noch besser, danke.
Gruß

AW: InputBox - Eingabeformat abfangen
08.05.2008 14:41:00
David
ich habe monat jetzt als 'DOUBLE' definiert, da er bei Zahlen >32' wieder eine Fehlermeldung gebracht hat.
Die Anweisung

monat = Format...

hat dann nicht mehr funktioniert, ich habe deshalb noch eine Variable tmonat definiert, wie Renèe vorgeschlagen hat.
Ich hoffe, nun alle Fehlerquellen ausgemerzt zu haben... ;-)
Gruß

Anzeige
AW: InputBox - Eingabeformat abfangen
08.05.2008 14:31:00
Renee
Hallo David,
komischerweise ergibt Len(monat) IMMER 2 das ist nicht komisch, sondern richtig. Du könntest sogar 12345 in deinem Monat drinstehen haben und er würde immer noch 2 als Länge angeben.
Das ist so, weil du Monat als Integer definiert hast und ein solcher Datentype belegt immer 2 Byte nicht mehr und nicht weniger. Darum macht auch dein Befehl mit dem 'vor'anhängen einer Null keinen Sinn. Wenn du aus dem Monat einen Textstring mit führender null machen willst, so:

Dim txtMonat as String
txtMonat = Format(monat,"00")


GreetZ Renée

Anzeige
AW: InputBox - Eingabeformat abfangen
08.05.2008 14:38:00
David
Ich war der Meinung, dass LEN die Anzahl der Zeichen ergibt. Bei 12345 beispielsweise 5 (wie die Excel-Funktion LÄNGE)

AW: InputBox - Eingabeformat abfangen
08.05.2008 14:04:19
Peter
Hallo David,
so könnte es gehen:

Public Sub Test()
Dim sMonat As String
Dim iMonat As Integer
Do Until iMonat >= 1 And iMonat 


Gruß Peter

AW: InputBox - Eingabeformat abfangen
08.05.2008 14:29:00
David
sieht so aus, als ob das auch klappen könnte, habe ich jetzt aber nicht getestet, da die anderen Vorschläge schon zielführend waren.
Trotzdem vielen Dank für deine Mühe.
Gruß

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige