| |
 | Online-Kurs: Grundlagen des 3D-Druck-Designs für Industrieingenieure , ein Kurs
|
Autor
|
Thema: InputBox (5644 mal gelesen)
|
Peter_graz03 Mitglied Student

 Beiträge: 51 Registriert: 11.08.2004
|
erstellt am: 17. Jan. 2006 13:16 <-- editieren / zitieren --> Unities abgeben:         
Hallo, ich hätte eine Frage. Ich möchte über eine InputBox einen Wert einlesen. Ich habe eine Schleife programmiert damit ich den richtigen Wert einlese und keine Fehleingaben passieren. Das funktioniert auch super. Aber wie kann ich bei dieser InputBox den Button "Abbrechen" ansprechen. Immer wenn ich auf "Abbrechen" klicke, fragt er mich wieder nach dem Eingabewert. Vielleicht kann mir jemand helfen. Vielen Dank! LG Peter
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
startrek Mitglied Architekt
   
 Beiträge: 1361 Registriert: 13.02.2003 .
|
erstellt am: 17. Jan. 2006 13:24 <-- editieren / zitieren --> Unities abgeben:          Nur für Peter_graz03
Hi Peter, mit StrPtr() kannst Du feststellen, ob Abbrechen geklickt wurde:
Code:
Sub input_box() Dim x, s As String x = InputBox("was eingeben oder auch nicht") If StrPtr(x) = 0 Then s = "canceled" ElseIf x = vbNullString Then s = "keine Eingabe" Else s = x End If MsgBox s End Sub
Gruss NancyEine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Peter_graz03 Mitglied Student

 Beiträge: 51 Registriert: 11.08.2004
|
erstellt am: 17. Jan. 2006 15:48 <-- editieren / zitieren --> Unities abgeben:         
|
Peter_graz03 Mitglied Student

 Beiträge: 51 Registriert: 11.08.2004
|
erstellt am: 17. Jan. 2006 16:40 <-- editieren / zitieren --> Unities abgeben:         
jetzt muß ich euich nochmal belästigen. den wert den ich abfragen möchte ist der name eines tabellenblattes dass automatisch erstellt wird. wie kann ich jetzt überprüfen ob dieser wert schon einmal in der arbeitsmappe vorkommt? und dann eine meldung machen dass ein anderer wert einegegeben werden muß! danke! lg peter Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
startrek Mitglied Architekt
   
 Beiträge: 1361 Registriert: 13.02.2003 .
|
erstellt am: 17. Jan. 2006 17:25 <-- editieren / zitieren --> Unities abgeben:          Nur für Peter_graz03
Hi again, Peter, mal nur als mögliches Beispiel:
Code:
Sub x() Dim s, i%, flag As Boolean Do If flag = False Then s = InputBox("Name", , "Tabelle" & CStr(Sheets.Count + 1)) Else _ s = InputBox("was andres einfallen lassen", "sorry") For i = 1 To Sheets.Count If LCase(s) = LCase(Sheets(i).Name) Then flag = 1 Exit For Else flag = 0 End If Next Loop Until flag = False End Sub
Gruss Nancy
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Peter_graz03 Mitglied Student

 Beiträge: 51 Registriert: 11.08.2004
|
erstellt am: 17. Jan. 2006 17:39 <-- editieren / zitieren --> Unities abgeben:         
|
startrek Mitglied Architekt
   
 Beiträge: 1361 Registriert: 13.02.2003 .
|
erstellt am: 17. Jan. 2006 17:41 <-- editieren / zitieren --> Unities abgeben:          Nur für Peter_graz03
oder so, schöner, kürzer, schneller, yeah;-) Code:
Sub y() Dim i%, s ReDim arr(1 To Sheets.Count) For i = 1 To Sheets.Count arr(i) = Sheets(i).Name Next Do s = InputBox("Name", , "Tabelle" & CStr(Sheets.Count + 1)) Loop Until UBound(Filter(arr, s)) = -1 End Sub
Nancy;;-))Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |