Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema InputBox
BildScreenshot zu InputBox InputBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Syntax bei Inputbox | Herbers Excel-Forum


Betrifft: Syntax bei Inputbox von: Jörg-HH
Geschrieben am: 17.11.2009 17:29:41

Guten Abend zusammen

Eine Inputbox kann man ja auf verschiedene Weise behandeln:

1. was reinschreiben (oder auch nicht) und Abbrechen drücken
2. nichts reinschreiben und OK drücken
3. was reinschreiben und OK drücken

Im Lauf der Zeit habe ich gelernt:
Fall 1 heißt vbNullString
Fall 2 heißt ""
Fall 3 macht einen String

Stimmt das so? Vielleicht hab ich da was falsch verstanden, denn mein Code macht nicht, was er soll... Es soll Folgendes geschehen (ist die verkleinerte Mailversion einer großen Datei):

1. User drückt abbrechen - er bekommt Abbruchmeldung, Datei wird dann ohne weiteren Firlefanz geschlossen
2. User schreibt nix rein und drückt ok - er bekommt Mecker und Datei wird auch hier kommentarlos geschlossen
3. User schreibt was Erwünschtes oder Unerwünschtes rein - der Fall ist geklärt (dank eurer Hilfe)

Danke für'n Tip - Jörg

Private Sub Workbook_Open()

Dim i As Integer
Dim FileSaveNameAnbieter As Variant
Dim MldgFa As String
Dim strAnbieterName As String

MldgFa = "Bitte geben Sie Ihren Firmennamen in Kurzform ein" & vbLf & _
        "z.B. statt Druckerei Meier GmbH && Co. KG einfach: Meier"

  'Dies sorgt dafür, daß die Routinen beim Öffnen der Datei nicht eintreten,,
  'wenn (wie in der Mailversion der Fall) die angesprochenen Blätter gar nicht vorhanden sind.
  'Klappt nur mit deaktiviertem Option Explicit
  
  If Me.Sheets.Count <= 3 Then
    GoTo NameEingeben
  Else
  
    Tabelle103.Range("speich_Target1Veränd").Value = 0 
    ufNavigation.Show
    Tabelle97.Select
    mod_KdMaske.refreshCdoKd
    mod_KdMaske.refreshCdoPtn

NameEingeben:

  'Dies sorgt dafür, daß die Zwangsmaßnahmen für die Lieferanten nicht auch dann schon  _
eintreten,
  'wenn diese Datei als Ursprungsdatei bloß zu Arbeitszwecken geöffnet wird.
   
    If Me.Sheets.Count > 3 Then
      Exit Sub                                'verhindert, daß msgBox auch bei Mutterdatei  _
erscheint
    Else
      strAnbieterName = Application.InputBox(MldgFa, "Registrierung")
    End If

    If strAnbieterName = vbNullString Then
         MsgBox "Benutzer hat die Aktion abgebrochen"
        ThisWorkbook.Saved = True
        ThisWorkbook.Close
    ElseIf strAnbieterName = "" Then
        MsgBox "Ohne Namen kann die Datei nicht verarbeitet werden"
        ThisWorkbook.Saved = True
        ThisWorkbook.Close
    Else
      For i = 1 To Len(strAnbieterName)
        Select Case Asc(Mid(strAnbieterName, i, 1))
          Case 65 To 90, 97 To 122, 196, 214, 220, 223, 228, 246, 252
          Case Else:
            MsgBox "Einen EINFACHEN Namen bitte! Vermeiden Sie Sonderzeichen usw."
            GoTo NameEingeben
         End Select
      Next i
    End If
    ThisWorkbook.Worksheets("Formular").Range("C2").Value = strAnbieterName
    MsgBox "Speichern Sie die Datei in einem Ordner Ihrer Wahl." & vbLf & _
            "Verändern Sie NICHT den neuen Dateinamen, da sonst" & vbLf & _
            "die Rücksendung Ihres Angebots nicht automatisch" & vbLf & _
            "eingelesen werden kann und unberücksichtigt bleibt"
  
    FileSaveNameAnbieter = Application.GetSaveAsFilename(InitialFileName:=(Left(ThisWorkbook. _
Name, Len(ThisWorkbook.Name) - 4)) & " " & strAnbieterName, FileFilter:="Microsoft Excel-Arbeitsmappe (*.xls), *.xls", Title:="Dateiname für Ihr Angebot")
      If FileSaveNameAnbieter <> False Then
        ActiveWorkbook.SaveAs FileSaveNameAnbieter
      Else
        If MsgBox("Sie haben den Vorgang abgebrochen - ist das beabsichtigt?", vbYesNo) = vbYes  _
Then
          ThisWorkbook.Saved = True
          ThisWorkbook.Close
        Else
          GoTo NameEingeben
        End If
      End If
  End If
End Sub

  

Betrifft: AW: Syntax bei Inputbox von: Christian
Geschrieben am: 17.11.2009 18:44:39

hallo Jörg,
so zB - gruß Christian

Sub testit()
    Dim v
    v = Application.InputBox("text")
    Select Case v
        Case "": MsgBox "leere Eingabe"
        Case False: Exit Sub
        Case Else: MsgBox v
    End Select
End Sub



  

Betrifft: AW: Syntax bei Inputbox von: Josef Ehrensberger
Geschrieben am: 17.11.2009 19:12:13

Hallo Jörg,

Sub IPBox()
  Dim strInput As String
  
  strInput = InputBox("Eingabe:", "Ihre Eingabe")
  
  If StrPtr(strInput) = 0 Then
    MsgBox "Abbruch"
  ElseIf strInput = "" Then
    MsgBox "OK - ohne Eingabe"
  Else
    MsgBox "Eingabe:" & vbTab & strInput
  End If
  
End Sub



Gruß Sepp



  

Betrifft: Danke, Jungs - klappt oT von: Jörg-HH
Geschrieben am: 17.11.2009 19:52:30




Beiträge aus den Excel-Beispielen zum Thema "Syntax bei Inputbox"