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

Verständnis Problem mit .Range.Find

Verständnis Problem mit .Range.Find
19.10.2016 09:18:26
Max2
Hallo Leute,
vor einiger Zeit hat mir jemand aus dem Forum mit einem Makro geholfen,
Hier ein Teilstück des Makros:

'letzte Zeile mit Daten
lngZeile_2 = .Cells.Find(What:="*", After:=.Range("A1"), LookIn:=xlValues, _
lookat:=xlWhole, searchorder:=xlByRows, searchdirection:=xlPrevious).Row
'letzte Spalte mit Daten
lngAnzSpa = .Cells.Find(What:="*", After:=.Range("A1"), LookIn:=xlValues, _
lookat:=xlWhole, searchorder:=xlByColumns, searchdirection:=xlPrevious).Column
'Zeilen pro Block
lngZeilenBlock = 5
'Array für Ergebnisse
ReDim arrErgebnis(1 To CLng(lngZeile_2 / lngZeilenBlock) + 1, 1 To 6)
lngZeile_3 = 0
'Blöcke abarbeiten und Ergebnisse ins Array
For lngZeile = 1 To lngZeile_2 Step lngZeilenBlock
Set rngBlock = .Range(.Cells(lngZeile, 1), .Cells(lngZeile + lngZeilenBlock - 1,  _
lngAnzSpa))
lngZeile_3 = lngZeile_3 + 1
With Application.WorksheetFunction
arrErgebnis(lngZeile_3, 1) = lngZeile_3
arrErgebnis(lngZeile_3, 2) = .Min(rngBlock)
arrErgebnis(lngZeile_3, 3) = .Average(rngBlock)
arrErgebnis(lngZeile_3, 4) = .StDev(rngBlock)
arrErgebnis(lngZeile_3, 5) = lngZeile
If lngZeile + lngZeilenBlock - 1 > lngZeile_2 Then
arrErgebnis(lngZeile_3, 6) = lngZeile_2
Else
arrErgebnis(lngZeile_3, 6) = lngZeile + lngZeilenBlock - 1
End If
End With
Next lngZeile
End With

Ich würde gerne After:=.Range("A1")ändern, da das Makro erst ab C6 arbeiten soll
Mir ist bewusst dass diese Zeile Code nur bewirkt dass er die letzte Zeile oder Spalte sucht und sich dann in Schritten vorarbeitet, aber er soll eben die ersten zwei Spalten und 5 Zeilen auslassen

lngZeile_2 = .Cells.Find(What:="*", After:=.Range("A1"), LookIn:=xlValues, _
lookat:=xlWhole, searchorder:=xlByRows, searchdirection:=xlPrevious).Row

Mit After:=.Range("C6"), Funktioniert es nicht, kann mir bitte jemand erklären warum ?
Ich sage mit After:= doch lediglich ab wenn er nach etwas suchen soll.
xlPrevious habe ich mal mit xlNext getauscht aber das hat auch nichts gebracht.
Stehe echt auf dem Schlauch

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Verständnis Problem mit .Range.Find
19.10.2016 09:26:00
baschti007
Hey Zeit mal Was vor deinem code steht
Also With ....... (Activesheet.columns(3)) oder so was
Gruß Basti
AW: Verständnis Problem mit .Range.Find
19.10.2016 09:35:45
Max2
Lediglich die Variablen und welches Tabellenblatt wksData ist

Dim lngZeile        As Long
Dim lngZeile_2      As Long
Dim lngZeile_3      As Long
Dim lngZeilenBlock  As Long
Dim lngAnzSpa       As Long
Dim wksData         As Worksheet
Dim wksErgebnis     As Worksheet
Dim rngBlock        As Range
Dim arrErgebnis
Set wksData = ActiveWorkbook.Sheets("Tabelle4")
With wksData

AW: Verständnis Problem mit .Range.Find
19.10.2016 09:45:54
baschti007
Ich würde das dann so machen
Gruß Basti
       lngZeile_2 = .Range(.Cells(6, "C"), .Cells(.Rows.Count, "C")).Find(What:="*", LookIn:= _
xlValues, lookat:=xlWhole, searchorder:=xlByRows, searchdirection:=xlPrevious).Row
lngAnzSpa = .Range(.Cells(6, "C"), .Cells(6, .Columns.Count)).Find(What:="*", LookIn:= _
xlValues, lookat:=xlWhole, searchorder:=xlByColumns, searchdirection:=xlPrevious).Column

Anzeige
AW: Verständnis Problem mit .Range.Find
19.10.2016 09:56:34
Max2
Danke euch beiden, hat geklappt
AW: Verständnis Problem mit .Range.Find
19.10.2016 09:34:31
Daniel
Hi
Dann musst du den Suchbereich entsprechend eingrenzen.
Das After definiert nur den Startpunkt der Suche, aber es wird trotzdem der gesamte Bereich durchsucht, der Teil der vor dem After liegt halt erst am Ende.
Also nicht
.Cells.Find(..)
Sondern
.Range(.Cells(6, 3), .Cells.Specialcells(xlcelltypelastcell)).find(..)
Oder
.Usedrange.Offset(5, 2).find(..)
Gruß Daniel
Frage geklärt
19.10.2016 09:57:09
Max2
.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige