Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1028to1032
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Falsche Zellen werden markiert

Falsche Zellen werden markiert
03.12.2008 06:39:00
Josef
Guten Morgen!
Ich habe folgenden Code:
Sheets("Wien").Select
Rows("2:2").Select
Selection.AutoFilter
Selection.AutoFilter Field:=17, Criteria1:="12"
Cells.Select
Selection.Copy
Sheets("NOE").Select
Call Letzte_Freie_Zelle_Spalte_A
ActiveSheet.Paste
Selection.AutoFilter
Es würde alles funktionieren bis auf Cells.Select
Ich möchte nur die Zellen markieren bei denen in der Spalte 17 eine 12 steht und zwar ab der 3. Zeile.
In den Zeilen 1 und zwei stehen die Überschriften. Die Zeile 3 kann aufgrund des Autofilters von 3 bis 20000 lauten.
Welche VBA Lösung gäbe es bitte hinsichtlich Cells.Select
Danke
Josef

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Falsche Zellen werden markiert
03.12.2008 08:14:27
Josef
Hallo!
Habe jetzt bei der Recherche ein spitzen Makro von Luschi entdeckt:

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(2)
'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


Nachdem ich zwei Überschriftzeilen habe korrigierte ich die Zeile
Set rg2 = rg1.Rows(1) auf Set rg2 = rg1.Rows(2)
Die über den Autofilter gefundenen Werte welche mittels diesem Makro markiert werden, werden in eine andere Tabelle kopiert.
Wenn jetzt bei dem Autofilter ein im Code vorkommender vordefinierter Wert nicht vorkommt, wird zwar logischerweise nichts in das andere Arbeitsblatt kopiert bis auf eine der Überschriftszeilen was jedoch nicht passieren sollten.
Sind die Werte im Autofilter enthalten, dann funktioniert alles bestens. wie kann ich bitte verhindern, dass die eine Überschriftszeile in das AB kopiert wird?
Danke
Josef

Anzeige
AW: Falsche Zellen werden markiert
03.12.2008 09:44:10
Luschi
Hallo Josef,
dies sollte funktionieren:
Set rg2 = Application.Union(rg1.Rows(1) ,rg1.Rows(2))
Dadurch werden die 1. und 2. Zeile des Filters von der Selektierung ausgeschlossen.
Gruß von Luschi
aus klein-Paris
AW: Falsche Zellen werden markiert
03.12.2008 10:00:47
Josef
Hallo Luschi!
Danke für Deine Antwort.
Habe es gerade getestet.
Wo es den Wert im Autofilter gibt. funktioniert alles. die Überschriften werden nicht in das entsprechende Arbeitsblatt kopiert
Ist jedoch der vordefinierte Wert im VBA code nicht enthalten, wird die 2. Überschriftenzeile in das dementsprechende Arbeitsblatt kopiert.
Habe hier mal den gesamten Code in eine Mustermappe kopiert.
https://www.herber.de/bbs/user/57309.xls
Danke
Anzeige
AW: Falsche Zellen werden markiert
03.12.2008 14:15:00
Luschi
Hallo Josef,
mit ein paar Musterdaten wäre das Problem besser zu erkennen.
Gruß von Luschi
aus klein-Paris

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige