Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1188to1192
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

Warum geht mein Code nicht?

Warum geht mein Code nicht?
Holger,
Hallo,
Tino hat mir mal bei der Programmierung eines tollen AdvancedFilters geholfen.
Nun dachte ich, das auf mein aktuelles Problem anwenden zu können,
nämlich einen riesigen Rangebereich einzuschränken anhand eines Kriteriums.
Der Aufbau ist so
1;CEE
2;CEE
3,CEE
4;HOLGER
5;TINO
6;RENE
7;LUC
Mit AdvancedFilter will ich einschränken auf alle CEE Zellen.
Dazu habe ich in P1 eine Überschrift und in P2 das Kriterium geschrieben.
Das als Rangebereich definiert und diesen als Kriterium für AdvancedFilter angegeben.
Klappt leider null, siehe Macro.
Was mache ich falsch?
Option Private Module
Option Explicit
Sub PrepareSheets()
Dim wks1M As Worksheet, wks2M As Worksheet
Dim rngEntireRange As Range
Dim rngID As Range, rngSALES As Range, rngNON

Sub As Range, rngCEEMEA As Range
Dim lngLastCell As Long
Dim intColID As Integer
If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData
Set wks1M = Worksheets("Data1M")
'Set wks2M = Worksheets("Data2M")
Set rngID = wks1M.Cells.Find(What:="ID", lookat:=xlPart)
intColID = rngID.Column
lngLastCell = wks1M.Cells(Rows.Count, 1).End(xlUp).Row
Set rngEntireRange = wks1M.Range(Cells(2, intColID), Cells(lngLastCell, intColID))
Set rngCEEMEA = Range("P1:P2")
With rngEntireRange
.AdvancedFilter xlFilterInPlace, rngCEEMEA
End With
End Sub

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Referenzierung, wie so oft.
03.12.2010 11:39:13
Rudi
Hallo,
Set rngEntireRange = wks1M.Range(wks1M.Cells(2, intColID), wks1M.Cells(lngLastCell, intColID))
Gruß
Rudi
Filter nur auf eine Zeile!?
03.12.2010 12:55:55
Holger,
Hallo Rudi,
ausgebessert und Code läuft aber jetzt wird tatächlich gefiltert
und zwar nur auf die erste Zelle, die das Kriterium enthält.
Also
1;CEE
2;CEE
3,CEE
ergibt jetzt:
1;CEE
Was mache ich denn nur falsch? Ich verstehe das nicht.
AW: Filter nur auf eine Zeile!?
03.12.2010 13:12:00
Rudi
Hallo,
der zu filternde Bereich muss die Überschriften einschließen.
Set rngEntireRange = wks1M.Range(wks1M.Cells(1, intColID), wks1M.Cells(lngLastCell, intColID))
Gruß
Rudi
Anzeige
AAHHHHHHHH, noch zwei Fragen
03.12.2010 13:20:42
Holger,
He Rudi,
genau das war's!
Nur kleines Problem. Die erste Zeile ist der Header und soll bei der Bearbeitung
nicht berücksichtigt werden. Wie kann ich also nun die erste Zeile des Ranges wieder wegnehmen?
Und zweite Frage. Wenn ich nun debug.print rngEntireAre.address eingebe,
habe ich immer noch alles. Wenn ich nun durch den RangeBereich schleife,
wie greife ich auf den gefilterten Bereich zu? Mit If row hidden gleich false?
AW: AAHHHHHHHH, noch zwei Fragen
03.12.2010 13:37:03
Rudi
Hallo,
Wie kann ich also nun die erste Zeile des Ranges wieder wegnehmen?
Set rngEntireRange = rngEntireRange.Offset(1).Resize(rngEntireRange.Rows.Count-1)
wie greife ich auf den gefilterten Bereich zu?
rngEntireRange.SpecialCells(xlCellTypeVisible)
Gruß
Rudi
Anzeige
Klasse!!!!! DANKE!!!!
03.12.2010 13:40:21
Holger,
Hi Rudi,
mit deinen Befehlen hat das Denken doch was gebracht, denn nun
ist der Range wirklich limitiert.
Ich bin wie immer begeistert!!
Tausend Dank,
Holger
Viel gedacht, wenig hat's gebracht.
03.12.2010 13:31:04
Holger,
Hi Rudi,
wenn ich so darüber nachdenke, bringt mich das nicht zum Ziel.
Ich wollte ja einen limitierten Rangebereich, ein gefilterter bringt
ja keinen Performancegewinn. Denn on hidden ja oder nein,
auf diese Weise muss ich ja doch durch den ganzen Rangebereich durch.
Da könnte ich ja auch abfragen ob ZellValue = CEE ist.
Hm, ich bin jetzt leicht deprimiert.
Viel gedacht, wenig hat's gebracht.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige