vba input abfrage

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: vba input abfrage
von: Dieter
Geschrieben am: 13.11.2015 21:30:00

Hallo zusammen,
ich habe Spalte A Kundennummer z.b 45654
jetzt möchte ich eine Abfrage(Button1) per Vba " Nach welcher Kundennummer wollen sie suchen? "
danach sollen alle zeilen ausgeblendet werden bis auf die eingegebene Nummer.
Bei nicht gefunden soll fehlermeldung kommen " Bitte Kundennummer prüfen"
Mein zweiter Button oder der gleiche button soll wieder alles rückgängig machen.
Wäre so was möglich
Gruß Dieter

Bild

Betrifft: Autofilter?
von: Sepp
Geschrieben am: 13.11.2015 21:48:50
Hallo Dieter,
warum nicht einfach den Autofilter verwenden?

Gruß Sepp


Bild

Betrifft: AW: Autofilter?
von: Dieter
Geschrieben am: 13.11.2015 21:54:30
Hallo Sepp,
ne der Datensatz ist zu lang und für diese Abteilung wäre eine Eingabe für diese Anwendung am besten.


Bild

Betrifft: AW: Autofilter?
von: Sepp
Geschrieben am: 13.11.2015 22:16:10
Hallo Dieter,
was heißt "der Datensatz ist zu lang"?
Beispieldatei?

Gruß Sepp


Bild

Betrifft: AW: Autofilter?
von: Sepp
Geschrieben am: 13.11.2015 22:34:35
Hallo Dieter,
füge auf deiner tabelle eine CommandButton (CommandButton1) ein und kopiere folgenden Code in das Modul der Tabelle.

' **********************************************************************
' Modul: Tabelle2 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub CommandButton1_Click()
Dim lngNumber As Long

If CommandButton1.Caption = "Alle anzeigen" Then
  Me.ShowAllData
  Me.AutoFilterMode = False
  CommandButton1.Caption = "Kundennummer suchen"
Else
  lngNumber = Application.InputBox("Nach welcher Kundennummer wollen sie suchen?", "Kundennummer", Type:=1)
  
  If Not lngNumber = False Then
    If IsNumeric(Application.Match(lngNumber, Me.Columns(1), 0)) Then
      Me.Range("A1").CurrentRegion.AutoFilter Field:=1, _
        Criteria1:=lngNumber, Operator:=xlAnd, VisibleDropDown:=False
      CommandButton1.Caption = "Alle anzeigen"
    Else
      If MsgBox("Bitte Kundennummer prüfen!" & vbLf & vbLf & "Neuer Versuch?", _
        52, "Kundennummer") = 6 Then CommandButton1 = True
    End If
  End If
End If

End Sub

Gruß Sepp


Bild

Betrifft: AW: Autofilter?
von: Dieter
Geschrieben am: 14.11.2015 07:35:27
Hallo Sepp,
danke erstmal,
ich möchte diesen Code über eine Formularsteuerelement Schaltfläche gestartet werden.
Der Code wird Gelb
Gruß Dieter

Bild

Betrifft: AW: Autofilter?
von: Sepp
Geschrieben am: 14.11.2015 07:55:07
Hallo Dieter,
"der Code wird gelb" ist eine interessante Fehlerbeschreibung.
Nimm diesen Code und weise in der Schaltfläche zu.

' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Sub Kundennummer()
Dim objShp As Shape
Dim lngNumber As Long

Set objShp = Me.Shapes(Application.Caller)

If objShp.TextFrame.Characters.Text = "Alle anzeigen" Then
  Me.ShowAllData
  Me.AutoFilterMode = False
  objShp.TextFrame.Characters.Text = "Kundennummer suchen"
Else
  lngNumber = Application.InputBox("Nach welcher Kundennummer wollen sie suchen?", "Kundennummer", Type:=1)
  
  If Not lngNumber = False Then
    If IsNumeric(Application.Match(lngNumber, Me.Columns(1), 0)) Then
      Me.Range("A1").CurrentRegion.AutoFilter Field:=1, _
        Criteria1:=lngNumber, Operator:=xlAnd, VisibleDropDown:=False
      objShp.TextFrame.Characters.Text = "Alle anzeigen"
    Else
      If MsgBox("Bitte Kundennummer prüfen!" & vbLf & vbLf & "Neuer Versuch?", _
        52, "Kundennummer") = 6 Then Call Kundennummer
    End If
  End If
End If

Set objShp = Nothing
End Sub

Gruß Sepp


 Bild

Beiträge aus den Excel-Beispielen zum Thema "vba input abfrage"