Microsoft Excel

Herbers Excel/VBA-Archiv

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

Markierung im Autofilter | Herbers Excel-Forum


Betrifft: Markierung im Autofilter von: Urmila
Geschrieben am: 16.10.2008 12:27:01

Hallo,

wie kann ich nach einer Auswahl durch Autofilter die Inhalte markieren?

z.B.

Inhalte sind in Zellen A5:E100

Nun selektiere ich durch Autofilter eine Auswahl, sehe dann z.B. A85:E89. Wie kann ich diese Auswahl dann markieren durch vba?

LG
Urmila

  

Betrifft: AW: Markierung im Autofilter von: Luschi
Geschrieben am: 16.10.2008 13:35:38

Hallo Urmila,

das selektieren der gefilterten Zellen geht so:

Sub selectFilter()
    Dim rg1 As Range, rg2 As Range, rg3 As Range, rg4 As Range
    
    'alle sichtbaren Zellen im Filterbereich
    'leider gehören dazu auch die Spaltenüberschriften
    Set rg1 = ActiveSheet.AutoFilter.Range.SpecialCells(xlCellTypeVisible)
    'Überschriftenzeile ermitteln
    Set rg2 = rg1.Rows(1)
    
    'alle Spaltenüberschriften rausselektieren
    For Each rg3 In rg1
        If Application.Intersect(rg3, rg2) Is Nothing Then
           'alle Zellen zu einem neuen Bereich (rg4) zusammenfassen, _
            die sich nicht in der Überschriftenzeile befinden
           If rg4 Is Nothing Then
              Set rg4 = rg3
           Else
              Set rg4 = Union(rg4, rg3)
           End If
        End If
    Next rg3
    'gefilterte Zellen selektieren
    rg4.Select
    'alle Objektvariablen deaktivieren
    Set rg1 = Nothing
    Set rg2 = Nothing
    Set rg3 = Nothing
    Set rg4 = Nothing
End Sub

Gruß von Luschi
aus klein-Paris


  

Betrifft: AW: Markierung im Autofilter von: Urmila
Geschrieben am: 16.10.2008 13:48:02

Hi Luschi, besten dank

aber eine Frage noch, da ich einen script laufen lasse, das dann den autofilter anhand vordefienierten Werten filter, diese gefilterete Daten (Dank deinem Script) kopiert und diese seperat abspeichere, kann es manchmal vorkommen, dass der vordefinierte Wert nicht im Autofilter auftaucht, wie kann ich dass dann umgehen, dass wenn keine Werte gefunden werden, die tabelle unversehen bleibt oder am besten eine MsgBox erscheint???

Danke im voraus

LG Urmila


  

Betrifft: AW: Markierung im Autofilter von: Urmila
Geschrieben am: 16.10.2008 13:50:24

Hallo Luschi,

es hat sich schon erledigt....

habe einfach die Zeile
If Application.Intersect(rg3, rg2) Is Nothing Then
gelöscht
funxt suuuuper....
LG
Urmila


  

Betrifft: AW: Markierung im Autofilter von: Franc
Geschrieben am: 16.10.2008 13:49:08

vorrausgesetzt in Der Spalte A steht immer was drin


Dim rng As Range, i As Integer
For i = 5 To Range("A200").End(xlUp).Row
If Rows(i).Hidden = False Then
If Not rng Is Nothing Then
Set rng = Application.Union(rng, Range(Cells(i, 1), Cells(i, 5)))
Else
Set rng = Range(Cells(i, 1), Cells(i, 5))
End If
End If
Next
rng.Select


  

Betrifft: hier wenn alles leer ist von: Franc
Geschrieben am: 16.10.2008 13:52:21

Das sieht ja echt kagge aus wenn man das ohne s u b einfügt ^^

Sub sichtbare_zeilen_markieren()

Dim rng As Range, i As Integer, leer As Boolean
leer = True
For i = 5 To Range("A200").End(xlUp).Row
    If Rows(i).Hidden = False Then
        If Not rng Is Nothing Then
            Set rng = Application.Union(rng, Range(Cells(i, 1), Cells(i, 5)))
        Else
            Set rng = Range(Cells(i, 1), Cells(i, 5))
            leer = False
        End If
    End If
Next
If leer = False Then rng.Select
End Sub




  

Betrifft: AW: hier wenn alles leer ist von: Urmila
Geschrieben am: 17.10.2008 07:25:51

Hallo Franc,

das von Luschi hat geklappt, auch danke für deine Hilfe....


LG
Urmila


Beiträge aus den Excel-Beispielen zum Thema "Markierung im Autofilter"