Autor
|
Thema: Nur Integer in InputBox zulassen (1139 mal gelesen)
|
studmija Mitglied Student
Beiträge: 49 Registriert: 22.11.2010 System: Microsoft Windows XP Professional x64 Edition Version 2003 Sevice Pack 2 Computer: Intel(R)Xeon(R)CPU 2,80GHz, 12 GB RAM Software: CATIA V5R19
|
erstellt am: 01. Feb. 2011 15:05 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe folgende problemstellung: Über eine InputBox soll der Anwender die Anzahl von zu erzeugenden Elementen eingeben. Wenn keine Eingabe gemacht wird, oder der Chancel-Button gedrückt wird, wird das Makro abgebrochen. Code:
'Eingabefenster fuer die Anzahl der Elemente deklarieren 'Der Beispielwert "20" wird als Defaultwert im Eingabefenster angezeigt Dim EingAnz As Integer EingAnz = InputBox ("Bitte geben Sie die Anzahl der Elemente ein.", "Anzahl der Elemente", "20")If (EingAnzPln ="") Then MsgBox "Makro wurde abgebrochen", 16, makroname + " " + version Exit Sub End If
Wenn der Anwender irgendeinen Text eingibt läuft das Makro auch weiter, aber es passiert ja natürlich nix. Wie kann ich am einfachsten definieren, dass nur eine Eingabe von Ganzzahlen(Integer) zulässig ist??? Kann ich die If-Bedingund einfach um ein AND erweitern? aber was muss dann da stehen? ich hoffe ich habe mich verständlich ausgedrückt. Gruß Micha Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Christian.O Mitglied Konstrukteur
Beiträge: 1212 Registriert: 17.07.2009
|
erstellt am: 01. Feb. 2011 15:19 <-- editieren / zitieren --> Unities abgeben: Nur für studmija
Servus, mit dem untenstehenden Code fängst du alles ab was keine Zahl ist. Wenn man negative Zahlen eingibt werden diese in positive umgewandelt. Ggf. mußt du halt noch ein paar Zeilen verändern. Bei mir gibt es z.B.: keinen Abbruch. Code: '***Eingabe in eine Zahl umwandeln strAusgabe = IsNumeric(strEingabe) If (strAusgabe = True) And (strEingabe <> "0") And Not (strEingabe = "") Then '***Eingabe in eine Positive Zahl umwandeln strAusgabe = Abs(strEingabe) ElseIf strEingabe = "" Then MsgBox "Diesem Button wurde kein Befehl hinterlegt." + vbNewLine + _ "Sie gelangen wieder zur Eingabe.", vbCritical + vbOKOnly, "Kein Befehl hinterlegt" Do '***Dicke in die InputBox eingeben strEingabe = "Dicke" strEingabe = InputBox("Geben Sie die Dicke des Bauteils ein.", "Eingabe der Bauteildicke", strEingabe) '***Eingabe in eine Zahl umwandeln strAusgabe = IsNumeric(strEingabe) If strEingabe = "" Then MsgBox "Diesem Button wurde kein Befehl hinterlegt." + vbNewLine + _ "Sie gelangen wieder zur Eingabe.", vbCritical + vbOKOnly, "Kein Befehl hinterlegt" ElseIf (strAusgabe = True) And (strEingabe = "0") Then MsgBox "0 kann nicht als Eingabe verwendet werden.", vbCritical + vbOKOnly, "Falsche Eingabe" ElseIf (strAusgabe = False) And (strEingabe <> "0") Then MsgBox "Die Eingabe kann nicht verwendet werden, da es sich um keine Zahl handelt.", vbCritical + vbOKOnly, "Falsche Eingabe" End If Loop Until (strAusgabe = True) And (strEingabe <> "0") And Not (strEingabe = "") '***Eingabe in eine Positive Zahl umwandeln strAusgabe = Abs(strEingabe) ElseIf (strAusgabe = True) And (strEingabe = "0") Then MsgBox "0 kann nicht als Eingabe verwendet werden.", vbCritical + vbOKOnly, "Falsche Eingabe" Do '***Dicke in die InputBox eingeben strEingabe = "Dicke" strEingabe = InputBox("Geben Sie die Dicke des Bauteils ein.", "Eingabe der Bauteildicke", strEingabe) '***Eingabe in eine Zahl umwandeln strAusgabe = IsNumeric(strEingabe) If strEingabe = "" Then MsgBox "Diesem Button wurde kein Befehl hinterlegt." + vbNewLine + _ "Sie gelangen wieder zur Eingabe.", vbCritical + vbOKOnly, "Kein Befehl hinterlegt" ElseIf (strAusgabe = True) And (strEingabe = "0") Then MsgBox "0 kann nicht als Eingabe verwendet werden.", vbCritical + vbOKOnly, "Falsche Eingabe" ElseIf (strAusgabe = False) And (strEingabe <> "0") Then MsgBox "Die Eingabe kann nicht verwendet werden, da es sich um keine Zahl handelt.", vbCritical + vbOKOnly, "Falsche Eingabe" End If Loop Until (strAusgabe = True) And (strEingabe <> "0") And Not (strEingabe = "") '***Eingabe in eine Positive Zahl umwandeln strAusgabe = Abs(strEingabe) ElseIf (strAusgabe = False) And (strEingabe <> "0") Then MsgBox "Die Eingabe kann nicht verwendet werden, da es sich um keine Zahl handelt.", vbCritical + vbOKOnly, "Fehler" Do '***Dicke in die InputBox eingeben strEingabe = "Dicke" strEingabe = InputBox("Geben Sie den Länge des Schlauches ein.", "Eingabe des Schlauchdurchmessers", strEingabe) '***Eingabe in eine Zahl umwandeln strAusgabe = IsNumeric(strEingabe) If strEingabe = "" Then MsgBox "Diesem Button wurde kein Befehl hinterlegt." + vbNewLine + _ "Sie gelangen wieder zur Eingabe.", vbCritical + vbOKOnly, "Kein Befehl hinterlegt" ElseIf (strAusgabe = True) And (strEingabe = "0") Then MsgBox "0 kann nicht als Eingabe verwendet werden.", vbCritical + vbOKOnly, "Falsche Eingabe" ElseIf (strAusgabe = False) And (strEingabe <> "0") Then MsgBox "Die Eingabe kann nicht verwendet werden, da es sich um keine Zahl handelt.", vbCritical + vbOKOnly, "Falsche Eingabe" End If Loop Until (strAusgabe = True) And (strEingabe <> "0") And Not (strEingabe = "") '***Eingabe in eine Positive Zahl umwandeln strAusgabe = Abs(strEingabe) End If
------------------ Mit freundlichen Grüßen aus Tirol Christian Obholzer Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
studmija Mitglied Student
Beiträge: 49 Registriert: 22.11.2010 System: Microsoft Windows XP Professional x64 Edition Version 2003 Sevice Pack 2 Computer: Intel(R)Xeon(R)CPU 2,80GHz, 12 GB RAM Software: CATIA V5R19
|
erstellt am: 01. Feb. 2011 16:36 <-- editieren / zitieren --> Unities abgeben:
|
studmija Mitglied Student
Beiträge: 49 Registriert: 22.11.2010 System: Microsoft Windows XP Professional x64 Edition Version 2003 Sevice Pack 2 Computer: Intel(R)Xeon(R)CPU 2,80GHz, 12 GB RAM Software: CATIA V5R19
|
erstellt am: 01. Feb. 2011 16:37 <-- editieren / zitieren --> Unities abgeben:
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|