PDA

Vollständige Version anzeigen : nur gefilterte Zellen bearbeiten


hofer27
23.03.2009, 10:45
Hallo,

ich habe eine Liste, die schon mit dem spezialfilter gefiltert ist. Ich muss aber noch einige Kriterien bei den gefilterten Zellen überprüfen.

Jetzt kommt das Problem :mad: : Für VBA hat sich die Liste nicht geändert. Wenn ich die Zeilen mit einer Schleife durchlaufen lasse, werden alle Einträge angzeigt, ich brauche aber nur die gefilterten Einträge.

Ich möchte das ganze schaffen, ohne das ich die gefilterten Daten in ein anderes Sheet kopiere. Ist das möglich?

IngGi
23.03.2009, 11:09
Hallo hofer27,

du kannst über die Hidden-Eigenschaft abfragen, ob die betreffende Zeile ausgeblendet ist und damit nicht zu den gefilterten Zeilen gehört. Ein Beispiel:

<div><link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet"><pre><span class="TOKEN">Dim</span> rng <span class="TOKEN">As</span> Range
<span class="TOKEN">For</span> <span class="TOKEN">Each</span> rng <span class="TOKEN">In</span> Range(&quot;A2:A2000&quot;)
<span class="TOKEN">If</span> rng.EntireRow.Hidden = <span class="TOKEN">True</span> <span class="TOKEN">Then</span>
<span class="REM"> 'nicht im Filter enthalten</span>
<span class="TOKEN">Else</span>
<span class="REM"> 'im Filter enthalten</span>
<span class="TOKEN">End</span> <span class="TOKEN">If</span>
<span class="TOKEN">Next</span>
&nbsp;</pre></div>
Code eingefügt mit dem MOF Code Converter (http://www.ms-office-forum.net/forum/codeconverter.php)

Gruß Ingolf

jinx
23.03.2009, 16:49
Moin, hofer27,

nutze SpecialCelle(xlCellTypeVisible):

Dim rngCell As Range
For Each rngCell In Range("A1:A" & Range("A1").End(xlDown).Row).SpecialCells(xlCellTypeVisible)
Debug.Print rngCell.Address
Next rngCell