Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

suchen von unten nach oben





Frage

hallo excelaner, ich benutze folgendes makro, um einen wert in spalte 1 und 4 zu suchen. in spalte 4 kommen öfters werte doppelt vor. das makro zeigt mir den ersten wert an, den er von oben gefunden hat bzw. mit der sucheingabe übereinstimmt: Sub BegriffSuchenInSpalte1und4() Dim gZelle As Range Dim Msg1$, Msg2$, sBegriff$ Msg1 = "Bitte Suchbegriff eingeben:" Msg2 = "Suchbegriff wurde nicht gefunden!" sBegriff = InputBox(Msg1) If sBegriff = "" Then Exit Sub Set gZelle = Worksheets(1).Range("A:A,D:d") _ .Find(sBegriff, lookat:=xlWhole) Tabelle1, Spalte 1+4 If gZelle Is Nothing Then MsgBox Msg2 Else gZelle.Select End If End Sub allerdings soll nicht der suchvorgang von oben her sondern von unten gestartet werden. d.h. es soll immer der aktuellere/neuere wert angezeigt werden. da die tabelle von oben nach unten fortgeführt wird (bei der erfassung), ist auch der neuere wert eher im unteren bereich. ich habe irgendwo etwas gelesen mit TopToBottom oder so was. gibt es auch so was wie BottomToTop? was muss ich ergänzen (wohin schreiben) bzw. löschen, dass der suchvorgang in der tabelle von unten nach oben verläuft? bin über jeden tip dankbar! goofe

Antwort 1 von Guenter

Hallo goofe,

wenn es keine Möglichkeiten gibt, die Suche von unten nach oben durchzuführen, wie wäre es denn damit, die Tabelle umzudrehen, so daß die Zahlen der letzten Reihe jetzt oben stehen, usw. Kann man durch Sortieren -> Aufsteigend/Absteigend machen.

Das nennt man dann wohl "work around".

Gruß
Günter

Antwort 2 von sicci

Hallo Goofe,

Du kannst mit vorgeschalteter Reihenzählung:

Dim x%
x = Cells(Rows.Count,4).End(xlUP).row
Cells(x + 1 ,4).select
(oder: Range("D" & x + 1 & ").select)

die nächstfreie Zelle am Ende Deiner letzten Spalte (D) selektieren und

mit Find .... SearchDirection:=xlPrevious

nach oben suchen lassen.

Gruß
sicci


Antwort 3 von sicci

..

sorry! Fehler: ein Anführungszeichen zu wenig.

Es muß heißen
(oder: Range("D" & x + 1 & "").select)

Gruß
sicci


Antwort 4 von michael oberley

hehe ganz einfach
rem 20 zeilen rueckwaerts
for t=20 to 0
rem 20 spalten rueckwaerts
for t1=chr$(85) to chr$(65) step-1
rem test wird gesucht
If range(chr(t1) & t)="test" then
rem dann so und so
endif
next t1
next t

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: