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
Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen

InputBox

Betrifft: InputBox von: popeye
Geschrieben am: 11.09.2014 10:55:23

Hallo Excelmenschen,
hier meine VBA code, ich möchte gerne die InputBox Farbe auf hellgrün ändern und wenn man den Inputbox "suchen" anklickt erscheint Suchfenster "Bitte MK-Notierung eingeben" das nur in die Zeilen 8 und 9 gesucht wird und zwar nur den Wert "ungefähr" muss also nicht exakt sein, Beispiel such 631 gefunden wird 630. Wäre super wenn jemand weiterhelfen könnte? Danke Vorab, VG Steve

Sub popeye()
Dim c, firstAddress
Dim sBegriff As String
Dim rHier As Range
       With Tabelle1.Range("7:9,44:46,80:82")
          sBegriff = InputBox("Bitte MK-Notierung eingeben")
          If sBegriff = "" Then
           'do nothing
          Else
           Set c = .Find(sBegriff, LookIn:=xlValues)
           If Not c Is Nothing Then
               firstAddress = c.Address
               Do
                   'c.Interior.Pattern = xlPatterngray17
                    If rHier Is Nothing Then
                        Set rHier = c
                    Else
                       Set rHier = Union(rHier, c)
                    End If
                   Set c = .FindNext(c)
               Loop While Not c Is Nothing And c.Address <> firstAddress

           End If
          End If
      End With
rHier.Select
End Sub

  

Betrifft: AW: InputBox von: fcs
Geschrieben am: 11.09.2014 11:29:50

Hallo popeye,

bei der Farbe der Inputbox musst du mit den Vorgaben von Microsoft leben.
Wenn du Farbe willst, dann musst du ein Userform erstellen.

wenn man den Inputbox "suchen" anklickt erscheint Suchfenster "Bitte MK-Notierung eingeben"
Dies verstehe ich nicht - was möchtest du hier?

Für die ungefähr-Suche hab ich im Suchbegriff "*" davor und danach eingefügt.
Allerdings funktoniert das das dann so, dass du als Suchbegriff 63 eingibst, wenn als Ergebnis 630, 631, und 763 gefunden werden soll.

Gruß
Franz

Sub popeye()
  Dim c, firstAddress
  Dim sBegriff As String
  Dim rHier As Range
  With Tabelle1.Range("8:9") 'Suchbereich
     sBegriff = InputBox("Bitte MK-Notierung eingeben")
     If sBegriff = "" Then
      'do nothing
     Else
      Set c = .Find("*" & sBegriff & "*", LookIn:=xlValues)
      If Not c Is Nothing Then
          firstAddress = c.Address
          Do
              'c.Interior.Pattern = xlPatterngray17
               If rHier Is Nothing Then
                   Set rHier = c
               Else
                  Set rHier = Union(rHier, c)
               End If
              Set c = .FindNext(c)
          Loop While Not c Is Nothing And c.Address <> firstAddress
  
      End If
     End If
  End With
  rHier.Select
End Sub



  

Betrifft: AW: InputBox von: popeye
Geschrieben am: 11.09.2014 11:51:46

Hallo Franz,
danke für deine Hilfe!
Das ist gut mit den *, ich habe nur noch eine Frage, wenn ein Wert nicht gefunden wird, bekomme ich ein "laufzeitfehler! Besteht die Möglichkeit wenn ein Wert nicht vorhanden ist dass auch ein Dialogfenster erscheint mit "Wert nicht gefunden"?
VG Steve


  

Betrifft: AW: InputBox von: fcs
Geschrieben am: 11.09.2014 12:22:19

Hallo Steve,

da muss man die Zeilen ein wenig umstellen und die passende Prüfung einbauen.

Gruß
Franz

Sub popeye()
  Dim c, firstAddress
  Dim sBegriff As String
  Dim rHier As Range
  With Tabelle1.Range("8:9")
     sBegriff = InputBox("Bitte MK-Notierung eingeben")
     If sBegriff = "" Then
      'do nothing
     Else
        Set c = .Find("*" & sBegriff & "*", LookIn:=xlValues)
        If c Is Nothing Then
          MsgBox "Begriff """ & sBegriff & """ nicht gefunden"
        Else
          firstAddress = c.Address
          Do
              'c.Interior.Pattern = xlPatterngray17
               If rHier Is Nothing Then
                   Set rHier = c
               Else
                  Set rHier = Union(rHier, c)
               End If
              Set c = .FindNext(c)
          Loop While Not c Is Nothing And c.Address <> firstAddress
          rHier.Select
        End If
     End If
  End With
End Sub



  

Betrifft: AW: InputBox von: popeye
Geschrieben am: 11.09.2014 12:50:00

Hallo Franz,
ich bin begeistert!!! Vielen Herzlichen Dank
VG Steve


 

Beiträge aus den Excel-Beispielen zum Thema "InputBox"