cewiethemaster
Goto Top

VBA-Excel... Wert aus Inputbox in Zelle Schreiben...

Wie kann ich den Wert aus einer Inputbox in die Zelle G1 schreiben lassen?

hallöle...

Google hat hierzu nichts gefunden...

Wie kann ich den Wert aus einer Inputbox mittels Makro in die Zelle G1 schreiben?
Und wie kann ich die InputBox so formatieren, dass sie nur Zahlen annimt, und bei eingabe eines Buchstaben oder Sondezeichen eine Warnung kommt?

Der Derzeitige Code:
Dim inpt As Integer

inpt = InputBox("Geben Sie bitte die Zahl ein.")  
LG

Cewie

Content-Key: 143214

Url: https://administrator.de/contentid/143214

Printed on: April 24, 2024 at 22:04 o'clock

Member: TheEternalPhenom
TheEternalPhenom May 20, 2010 at 11:54:15 (UTC)
Goto Top
Sers Cewie

eine Möglichkeit wäre:

Range("Zelle").Select

ActiveCell = Variable


es gibt noch verschiedene andere jedoch habe ich im mom nicht die Muse diese noch heraus zu finden face-smile

Gruß

duffman521
Member: TsukiSan
TsukiSan May 20, 2010 at 13:54:57 (UTC)
Goto Top
nur ein Beispiel:
If IsNumeric(Range("G1").Select) Then MsgBox "OK"  

Mit "IsNumeric" kannst du auf Zahlen abfragen (aber auch auch Dezimalzeichen etc.!)

Gruss
Tsuki
Member: bastla
bastla May 22, 2010, updated at Oct 18, 2012 at 16:42:15 (UTC)
Goto Top
Hallo @all!

Das Thema "nur Zahlen als Eingabe zulassen" hatten wir neulich hier ein wenig durchgekaut ...

@cewiethemaster: Bei einer "InputBox()" kannst Du das gewünschte Ergebnis(-Format) nicht vorgeben, sondern nur den String, den sie geliefert hast, im Nachhinein prüfen. Soferne (als einfachster Fall) die Eingabe nur aus Ziffern bestehen darf, wäre etwa folgende Vorgangsweise möglich:
Sub Eingabe()
Dim inpt As String, OK As Boolean, i As Integer
Do
    inpt = InputBox("Geben Sie bitte die Zahl ein.")  
    OK = True
    For i = 1 To Len(inpt)
        If Mid(inpt, i, 1) < "0" Or Mid(inpt, i, 1) > "9" Then  
            OK = False
            Exit For
        End If
    Next
Loop Until OK Or inpt = "" 'leere Eingabe bzw "Abbrechen" als Abbruchbedingung akzeptieren  
If inpt = "" Then  
    MsgBox "Na gut, dann nicht!"  
    Exit Sub
End If
Range("G1").Value = inpt  
End Sub
Wenn eine derartige Überprüfung mehrfach benötigt wird, bietet es sich an, sie in eine "Function" auszulagern, was dann etwa so aussähe:
Sub Eingabe()
Dim inpt As String
Do
    inpt = InputBox("Geben Sie bitte die Zahl ein.")  
Loop Until IstZahl(inpt) Or inpt = "" 'leere Eingabe bzw "Abbrechen" als Abbruchbedingung akzeptieren  
If inpt = "" Then  
    MsgBox "Na gut, dann nicht!"  
    Exit Sub
End If
Range("G1").Value = inpt  
End Sub

Function IstZahl(Zahl As String) As Boolean
Dim i As Integer, Ziffer As String
IstZahl = True
For i = 1 To Len(Zahl)
    Ziffer = Mid(Zahl, i, 1)
    If Ziffer < "0" Or Ziffer > "9" Then  
        If i > 1 Or Ziffer <> "-" Or Zahl = "-" Then  
            IstZahl = False
            Exit For
        End If
    End If
Next
End Function
Um auch negative Zahlen zu akzeptieren, könnte die Prüfroutine so aussehen:
Function IstZahl(Zahl As String) As Boolean
Dim i As Integer, Ziffer As String
IstZahl = True
For i = 1 To Len(Zahl)
    Ziffer = Mid(Zahl, i, 1)
    If Ziffer < "0" Or Ziffer > "9" Then  
        If i > 1 Or Ziffer <> "-" Or Zahl = "-" Then  
            IstZahl = False
            Exit For
        End If
    End If
Next
End Function
Grüße
bastla
Member: cewiethemaster
cewiethemaster May 25, 2010 at 05:51:41 (UTC)
Goto Top
Ok. Danke für die Vielen Antworten... ich werd es testen, und mich wieder melden...

Edit: Hat geklappt.. Danke