MS-Office-Forum
Google
   

Zurück   MS-Office-Forum > Microsoft Office > Microsoft Excel
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads Der Renner, 11 Entwicklertools für Access, Tipps & Trick und offene Datenbanken zum einzigartigen Preis.
Themen-Optionen Ansicht
Alt 13.09.2017, 16:02   #1
Rob15k
Neuer Benutzer
Neuer Benutzer
Standard Excel 2007/2010 - VBA Anzeigen ob AutoFilter in Worksheets etwas gefunden hat

Hi Community,

ich verwende aktuell folgenden Code um in 8 Worksheets einen Filter in Spalte 11 anzuwenden.
Code:

Sub FilterSetzen()
   Dim ws As Worksheet
   Dim belegnr As String
   
   belegnr = InputBox("Belegnummer:", "Belegnummer eingeben")
    If belegnr = "" Then
        Exit Sub
    Else
        For Each ws In Worksheets
            If ws.AutoFilterMode Then
                If ws.FilterMode Then ws.ShowAllData
            Else
                ws.UsedRange.AutoFilter
            End If
                
                ws.UsedRange.AutoFilter Field:=11, Criteria1:=belegnr
        Next
    End If
End Sub
Allerdings findet der Filter nicht immer in jedem Sheet etwas was auch vollkommen in Ordnung ist. Es kann nämlich sein dass die Belegnummer nur in einem oder auch in mehrere Sheets vorhanden ist.
Die erste Zeile ist die Zeile mit der Spaltenbeschriftung ab der zweiten Zeile fangen die Datensätze an, findet der Filter in einem Worksheet nichts springt der ans Ende der Tabelle und wenn der letzte Datensatz in Zeile 199 ist zeigt Excel die Zeilen 1 und als nächstes die Zeile 200 an.
Jedes Worksheet hat unterschiedlich viele Datensätze
Damit ich jetzt nicht jedes Sheet durchklicken muss wollte ich versuchen das mir VBA entweder in einer MsgBox anzeigt in welchem Sheet was gefunden wurde oder es mir irgendwie erkenntlich macht zB durch einfärben des Registers etc...
Leider finde ich kein Weg um das so umzusetzen habt ihr evtl eine Idee oder Lösung parat?


Ich benutze Excel 2010

Vielen Dank im Vorraus
Rob15k ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.09.2017, 18:01   #2
Luschi
MOF Koryphäe
MOF Koryphäe
Standard

Hallo Rob15k,

das kann man so machen:
Code:

        Dim n As Long
        'Anzahl der Zellen mit Inhalt im Filter
        n = WorksheetFunction.Subtotal(3, ws.AutoFilter.Range)
        'Vergleich mit Anzahl der Überschriftenzellen im Filter
        If n = ws.AutoFilter.Range.Rows(1).Cells.Count Then
           MsgBox "Filter hat Belegnummer nicht gefunden!"
        End If
Gruß von Luschi
aus klein-Paris
Luschi ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.09.2017, 09:38   #3
Rob15k
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Vielen Dank, das erfüllt erstmal seine Aufgabe

Ich hab den Code jetzt mit in die For-Schleife genommen, nun bekomme ich nach jedem Durchlauf angezeigt das nichts zu dieser Nummer gefunden wurde außer natürlich bei den Worksheets wo etwas gefunden wurde.
Gibt es eine möglichkeit das so zu machen das er mir nachdem er alle Worksheets abgesucht hat dann anzeigt in welchen er was gefunden hat?
Oder das er mir nur dann eine MsgBox anzeigt wenn er was gefunden hat, am besten mit dem Namen des Worksheets?

Ich versuch mich solange mal selbst daran

EDIT: so ich hab es jetzt selbst hinbekommen, schreibe einfach bei jeden Durchlauf der Schleife den Worksheet Namen in ein Array und geben am Ende das Array in einer MsgBox aus funktioniert einwandfrei.

Vielen Dank nochmal

Geändert von Rob15k (14.09.2017 um 10:09 Uhr).
Rob15k ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:32 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

Copyright ©2000-2010 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günther Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.
Beachten Sie bitte auch unsere Nutzungsbedingungen.