schaltfläche der inputbox lässt sich nicht auswerten

29/07/2009 - 10:57 von klaus.könig | Report spam
hallo zusammen,

Sub WeitereTeilMassnFestlegen()
Dim Mldg, Titel
Dim weitereTM As Variant
Dim iAnzTM As Integer
Dim letzteZeile As Long
Mldg = "Wieviel weitere Teilmaßnahmen kommen hinzu?"
Titel = "Teilmaßnahmen vervollstàndigen"
iAnzTM = 2
weitereTM = InputBox(Mldg, Titel, iAnzTM)
letzteZeile = Range("B14").End(xlDown).Offset(1, 0).Row
'MsgBox letzteZeile
If weitereTM = vbCancel Then Exit Sub
For i = letzteZeile To letzteZeile + weitereTM - 1

Range("B" & i).Activate
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop,
Operator:= _
xlBetween, Formula1:="=Li_Massnahmen"
End With
Range("B" & i).Value = Worksheets("xTab_Massnahmen").Range
("A4").Value
Next i
End Sub

die if-abfrage bei weitereTM=vbCancel wird nicht durchgeführt. die
zahl 2 kann ich nicht verwenden, da sie als eingabe vorkommen kann.
hat da jemand eine idee.

freue mich auf eine antwort.
 

Lesen sie die antworten

#1 Hajo
29/07/2009 - 11:10 | Warnen spam
Hallo Klaus,

Inputbox Abbrechen
wert = InputBox("bitte ggf. zustàtzlichen Text eingeben", "Zusatztext", "")
If StrPtr(wert) = 0 Then Exit Sub

Von Nepumuk
Für optionale String-Parameter gibt es allerdings eine Hintertür, durch die
Sie zu einer tatsàchlichen Prüfung des uninitialisierten Werts gelangen: die
undokumentierte Visual Basic-Funktion StrPtr.
Die Funktion StrPtr liefert den Wert des Zeigers (das ist, vereinfacht
gesagt, die Speicheradresse des Strings) zu einem String. Und bei einem
uninitialisierten String ist dieser Wert schlicht 0, da ein uninitialisierter
String für VB noch nicht existiert. Prüfen Sie also mit dieser Funktion den
übergebenen optionalen String-Parameter.

Aus vb-fun Tipp 0197 :
Die InputBox zeigt eine Eingabeaufforderung in einem Dialogfeld an, wartet
auf die Eingabe eines Textes oder die Auswahl einer Schaltflàche und gibt den
Inhalt des Textfeldes zurück.
Wenn im Textfeld der InputBox nun keine Eingabe gemacht wurde, wird sowohl
bei 'OK' als auch bei 'Abbrechen' eine sogenannte "Null-Zeichenfolge"
zurückgegeben.
Mit Hilfe der nicht dokumentierten StrPtr-Funktion làsst sich feststellen,
ob es sich bei der Rückgabe tatsàchlich um einen "Null-String" handelt - per
Definition ist ein "Null-String" (vbNullString) ein Zeiger, dessen Wert 0
ist. Somit ist der Rückgabewert eindeutig auswertbar. Ist das Ergebnis = 0,
wurde die Schaltflàche 'Abbrechen' gewàhlt, bei 'OK' wird "" zurückgegeben!
Von Gerd

Gruß Hajo
MVP für Microsoft Excel
Betriebssystem Vista Ultimate SP2 und Excel Version2007 SP2
http://Hajo-Excel.de/



"klaus.könig" wrote:

hallo zusammen,

Sub WeitereTeilMassnFestlegen()
Dim Mldg, Titel
Dim weitereTM As Variant
Dim iAnzTM As Integer
Dim letzteZeile As Long
Mldg = "Wieviel weitere Teilmaßnahmen kommen hinzu?"
Titel = "Teilmaßnahmen vervollstàndigen"
iAnzTM = 2
weitereTM = InputBox(Mldg, Titel, iAnzTM)
letzteZeile = Range("B14").End(xlDown).Offset(1, 0).Row
'MsgBox letzteZeile
If weitereTM = vbCancel Then Exit Sub
For i = letzteZeile To letzteZeile + weitereTM - 1

Range("B" & i).Activate
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop,
Operator:= _
xlBetween, Formula1:="=Li_Massnahmen"
End With
Range("B" & i).Value = Worksheets("xTab_Massnahmen").Range
("A4").Value
Next i
End Sub

die if-abfrage bei weitereTM=vbCancel wird nicht durchgeführt. die
zahl 2 kann ich nicht verwenden, da sie als eingabe vorkommen kann.
hat da jemand eine idee.

freue mich auf eine antwort.

Ähnliche fragen