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 Werkzeug
BildScreenshot zu Werkzeug Werkzeug-Seite mit Beispielarbeitsmappe aufrufen

Daten filtern

Betrifft: Daten filtern von: Leitz G.
Geschrieben am: 06.04.2008 14:02:10

Hallo!
HAbe jetzt doch noch ein Problem!

Ich filtere in Spalte K alle nichtleeren Zelllen und führe dann ein Macro damit aus.
Nun hätte ich aber noch gerne dass in Spalte D in der stehen nur Kleinbuchstaben z. B. ("s" oder "r" ; rm; t;.....) ebenfalls gefiltert wird, nur es kann vorkommen dass zwei verschieden Buchstaben drinnen stehen und ich möchte gerne dass VBA mich frägt für was für einen Buchstaben das nachfolgende Macro gestartet werden soll.
Wenns mit Buchstaben nicht geht in Spalte I hab ich Zahlen drinnen mit denen könnt ich auch arbeiten, aber lieber wär mir die Spalte D mit den Buchstaben.

Bitte um Eure Hilfe!

Dank und Gruss

Leitz Ge.

  

Betrifft: AW: Daten filtern von: Jan3
Geschrieben am: 06.04.2008 14:47:37

Hi,

Lade mal eine Beispieldatei hoch.


Jan


  

Betrifft: AW: Daten filtern von: Leitz G.
Geschrieben am: 06.04.2008 16:24:41

Hallo!
Habe eine Test Datei erstellt die zeigen soll was ich will.

https://www.herber.de/bbs/user/51300.xls


Gefiltert wird in Spalte K und dann nur zu Test Spalte H eingefärbt.

Ich möchte nun dass vorher auch noch in Spalte D gefiltert wird, nur da stehen zwei verschieden Buchstaben drinnen und es könnten auch andere als wie in der Testdatei sein.

Nun möchte ich dass mich VBA frägt für welchen Buchstaben ich die Prozedur (Einfärbung in H) haben will.

Hoffe ich habe mich deutlich ausgedrückt und hoffe auf Eure Hilfe

Gruss
Leitz G.


  

Betrifft: AW: Daten filtern von: fcs
Geschrieben am: 06.04.2008 17:12:16

Hallo Leitz,

hier mein Vorschlag. Kennbuchstabe wird über eine Inputbox eingegeben.

Gruß
Franz

Sub TestAutofilter()
  Dim strBearbeiter As String
'Eingabe Auswahlbuchstabe Bearbeiter
  strBearbeiter = InputBox(Prompt:="Bitte Kennbuchstaben für Bearbeiter eingeben" _
      & vbLf & vbLf & "Wildcards * (für alle) und ? (für beliebiges Zeichen) " _
      & " können verwendet werden!", _
      Title:="Werkzeugauswahl - Filter Bearbeiter")
  If strBearbeiter = "" Then 'Abbrechen wurde gewählt
    ActiveWorkbook.Save
    Exit Sub
  End If
'Selektiere alle nichtleeren Zellen in Spalte "K" = "Ausgangsdatum" und zähle Auswahl
    Dim intZähleAuswahl As Integer
    Range("A2:K22").Select
    Selection.Autofilter
    Range("A2").Select
    Selection.Autofilter Field:=11, Criteria1:="<>"
    Selection.Autofilter Field:=4, Criteria1:=strBearbeiter
    intZähleAuswahl = Application.WorksheetFunction.Subtotal(3, [K3:K22])
'Fehlerabfrage
'...




  

Betrifft: AW: Daten filtern von: Leitz G.
Geschrieben am: 06.04.2008 17:21:26

Hallo!

Danke für Ihre Hilfe!

Ist super, aber ich möchte die Abfrage für D nur dann falls verschieden Buchstaben eingetragen sind, wenn der Buchstabe immer gleich ist soll die Abfrage unterdrückt werden.

Kann man das ändern?

Dank u. Grusss
Leitz G.


  

Betrifft: AW: Daten filtern von: fcs
Geschrieben am: 06.04.2008 17:50:34

Hallo Leitz,

hier die Pozedur mit zusätzlicher Prüfung, ob mehr als ein Name im Bereich D3:D22 eingetragen ist.

Gruß
Franz

Sub TestAutofilter()
  Dim strBearbeiter As String, bolBearbeiter As Boolean
  Dim objBereich As Range, objZelle As Range
  'Prüfen, ob in Spalte D verschiedene Mitarbeiter eingetragen sind
  Set objBereich = Range("D3:D22")
  For Each objZelle In objBereich
    If objZelle <> "" Then
      If strBearbeiter = "" Then
        'Mitarbeiter aus 1. ausgefüllter Zelle merken
        strBearbeiter = objZelle.Value
      Else
        If objZelle.Value <> strBearbeiter Then
          'Mitarbeiter ist verschieden vom gemerkten Mitarbeiter
          bolBearbeiter = True
          Exit For
        End If
      End If
    End If
  Next
  If bolBearbeiter = True Then 'mehrere Mitarbeiter sind in Liste
  'Eingabe Auswahlbuchstabe Bearbeiter
    strBearbeiter = InputBox(Prompt:="Bitte Kennbuchstaben für Bearbeiter eingeben" _
        & vbLf & vbLf & "Wildcards * (für alle) und ? (für beliebiges Zeichen) " _
        & " können verwendet werden!", _
        Title:="Werkzeugauswahl - Filter Bearbeiter")
    If strBearbeiter = "" Then 'Abbrechen wurde gewählt
      ActiveWorkbook.Save
      Exit Sub
    End If
  End If
'Selektiere alle nichtleeren Zellen in Spalte "K" = "Ausgangsdatum" und zähle Auswahl
    Dim intZähleAuswahl As Integer
    Range("A2:K22").Select
    Selection.Autofilter
    Range("A2").Select
    Selection.Autofilter Field:=11, Criteria1:="<>"
    If bolBearbeiter = True Then
      Selection.Autofilter Field:=4, Criteria1:=strBearbeiter
    End If
    intZähleAuswahl = Application.WorksheetFunction.Subtotal(3, [K3:K22])
'Fehlerabfrage
'...




  

Betrifft: AW: Daten filtern Danke von: Leitz G.
Geschrieben am: 06.04.2008 19:12:53

Hallo Franz!

Danke für die super Hilfe!
Funktioniert perfekt!

Dank u. Grusss
Leitz G


  

Betrifft: AW: Daten filtern von: Leitz G.
Geschrieben am: 06.04.2008 17:13:37

Hallo!
Hab in dem Archiv gestöbert und bin fündig geworden. Habs noch mit eingebaut in die Test Datei.

https://www.herber.de/bbs/user/51301.xls

Jetzt brauch ich nur noch eine If Funktion für Spalte "D" , hab aber keine Ahnung WIE !

Die Abfrage für D soll nur dann erscheien wenn verschiedene Buchstaben eingetragen sind.

Gruss
Leitz G.


 

Beiträge aus den Excel-Beispielen zum Thema "Daten filtern"