Clever-Excel-Forum

Normale Version: Wildcard Suche in Suchergebnis
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
Nein klappt nicht.

Ich bin wieder am Anfang. Wie bringe ich eine Selection oder einen Range in ein Array?

Ich mache einen Range mit dem Union Befehl


Code:
 Set rng = Union(rng, FoundCell)


Danach muss ich den rng in ein Array kriegen und nochmals durchsuchen, oder währen der Suche in einen zweiten Loop setzen.

Nur, ich krieg das einfach nicht hin.

Aber ich bin ziemlich sicher so würde es klappen.
Hallöchen,

da wirst Du wohl mehrere Arrays bilden oder Zellen einzeln übernehmen müssen. Eine direkte Übernahme geht nur mit einem zusammenhängenden Bereich Sad
oh.

Mein rng.Address spuckt dies aus

$S$17365,$S$57104,$S$71989:$S$71990,$S$72025:$S$72026,$S$15445

kann man diese Rows nicht in ein Array laden?
Hallöchen,

bei so wenigen Treffern würde ich selbige einzeln in ein Array überführen, sofern nötig.
Ansonsten nimmst Du $S$17365:$S$15445 in ein Array und filterst die Treffer raus. Das könnte z.B. so gehen:

Code:
Sub test()
arrRng1 = WorksheetFunction.Transpose(Range("$S$17365", "$S$15445"))
arrRng2 = Filter(arrRng1, "Anneliese")
End Sub
Ich glaub ich bin zu blöd, aber wie krieg den Range nicht in das array?

Ich habe das gefunden, das geht ja auch, nur ich krieg die Inhalte nicht rein. Huh

Code:
Option Explicit

Sub SplitRangeAddrrtoArray()

Dim cells_addresses As Variant
Dim UnionRng As Range
Dim RngArea As Range
Dim C As Range
Dim i As Long
Dim Output_Array() As Variant

cells_addresses = "$A$1,$C$3:$F$3,$F$4"
ReDim Output_Array(0 To 1000) ' init array size >> will optimize later

Set UnionRng = Range(cells_addresses) '<-- Set a Range with the cells addresses provided
' loop through range's areas in case there are multiple areas
For Each RngArea In UnionRng.Areas
   For Each C In RngArea ' loop through the area's cells
       Output_Array(i) = C.Address
       i = i + 1
   Next C
Next RngArea
ReDim Preserve Output_Array(0 To i - 1) '<-- resize to actual populated size

End Sub
Hallöchen,

dann musst Du auch die Inhalte (Value) rein nehmen und nicht die Adressen.
Nun ich bin soweit weitergekommen als dass ich die Suchresultate in einen neuen Tab schreibe und von da halt die suche nochmals Starte mit dem Namen und dementsprechend nochmals ein neues Suchresultat erhalte.
Das erste ist quasi eine Zwischentabelle. Kann man eigentlich eine temp. Tabelle erstellen? Wie mit SQL?

So ist's nicht schön, aber ich krieg's in einem Schritt nicht hin.

Das ist dann etwa so aus:

Nach dem ersten Suchlauf (Strasse Nr, PLZ, Ort) erhalte ich ein Resultat von 40. (aus ca. 65k)
Dann suche ich nach dem Namen und erhalte am Schluss 8 (wenn alles so klappt wie gewünscht..)

ca 25 Sekunden dauert das ganze...

Meiner Meinung nach sicher ausbaufähig
Hallöchen,

eine Frage wäre, was Du unter einer temporären Tabelle verstehst. Array's hatten wir ja schon …
Manche legen auch ein Blatt an, spielen die Daten dort drauf, verarbeiten sie und löschen das Blatt dann wieder.

Deine Arrays springen auch ganz schön hin und her. Mal hast Du was irgendwo in Spalte S, dann in A1 und C3:F4, …

Wie gesagt, wenn Deine Daten so zerpflückt sind musst Du sie entweder einzeln in ein Array überführen und dann verarbeiten oder du findest eine Logik, um mit einem zusammenhängenden größeren Bereich zu arbeiten, den Du in einem Rutsch auslesen kannst.
Nein, so kompliziert ist es ja gar nicht

Ich hab mir je eine Suchspalte gemacht.

Tabelle A - Suchspalte I
Tabelle B - Suchspalte S

Ergebis: Tabelle B (A:R) & Tabelle A (G:H)

mit temp. Tabelle meine ich eigentlich sowas wie ein Array. Ist ja quasi dasselbe. Ich würde ja auch ein Array nehmen, wenn ich nur den Scheiss da reinkriegen würde.
Ich hab die Ergebnisse jeweils in einen Range.entireRow gefasst, den ich dann über Selection in einen neuen Sheet kopiere. 
Wieso kann ich nicht einfach die Range.Address nehmen und die in ein neues Array füllen? Geht das nicht, weil ich die ganze Row markiere?
Wenn ich dem Row angeben könnte wie breit er ist, ginge es vielleicht..
Hach ich komm einfach nicht weiter

Ich wollte nun einen neuen Angriff starten mit SQL Query. Des ist aber so grottenlangsam und da krieg ich das Problem mit dem Namensfeld noch weniger in den Griff.
Bin eigentlich wieder am selben Punkt wie am Anfang. 
Seiten: 1 2 3