Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
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

Erste Zelle von unten finden....

Erste Zelle von unten finden....
21.10.2016 09:02:57
unten
Hallo Forum,
ich möchte per VBA folgendes lösen.
Im range Q2 steht der Wert 60.
Ich möchte per Makro die ersten Zelle von unten finden, deren Wert größer als in Range Q2 angegeben ist. Wie setzt man so etwas mit der .find Methode um?
Sub x()
dim ende as long
ende = Sheets("XY").Range("B:B").Find(What:=HIER GRÖßER als Wert in Q2, searchorder:=xlByRows,  _
SearchDirection:=xlPrevious).Row
msgbox ende
End Sub

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Erste Zelle von unten finden....
21.10.2016 09:25:36
unten
Hallo,
das geht mit der Find-Methode nicht. Lies die Daten der Spalte in ein Array ein und suche das linear durch.
Ein Beispiel:
Public Sub Beispiel()
    Dim avntValues As Variant
    Dim ialngIndex As Long
    Dim dblValue As Double
    dblValue = Range("Q2").Value
    avntValues = Range(Cells(1, 2), Cells(Rows.Count, 2).End(xlUp)).Value
    For ialngIndex = UBound(avntValues) To LBound(avntValues) Step -1
        If avntValues(ialngIndex, 1) > dblValue Then Exit For
    Next
    MsgBox "Zeile " & CStr(ialngIndex)
End Sub

Gruß
Nepumuk
Anzeige
AW: Erste Zelle von unten finden....
21.10.2016 09:36:34
unten
Hallo Nepumuk,
Danke für deine Hilfe. Das Makro funktioniert .
Da ich mich mit Arrays noch nicht beschäftigt habe, schließt sich gleich die nächste Frage an.
Wenn das Makro die entsprechende Zelle gefunden hat, z.B. O20, sollen danach alle
Zellen gelöscht werden, d.h. immer von A2-O(reihennummer variabel...).
Beginn ist also immer A2-O...irgendwas
...entirerow.delete müsste es sein, meine ich...
Nochmals danke,
Chris
AW: Erste Zelle von unten finden....
21.10.2016 09:52:25
unten
Hallo,
so?
Cells(ialngIndex - 1, 1).EntireRow.Delete
Gruß
Nepumuk
AW: Erste Zelle von unten finden....
21.10.2016 11:44:38
unten
Hi,
fast!. Dein Makro löscht nur die Reihe, die bei Spalte O einen Wert größer als in Q2 angegeben hat.
Es soll immer der RangeBereich von A2:O gelöscht werden.
Also wenn zum Bespiel dein Makro die Zelle O22 ermittelt, dann lösche A2:O22
ermittelt, es O43, dann lösche A2:O43.
Danke und Grüße
Chris
Anzeige
AW: Erste Zelle von unten finden....
21.10.2016 11:46:43
unten
Range(Cells(2, 2), Cells(ialngIndex, 1)).EntireRow.Delete
AW: Erste Zelle von unten finden....
21.10.2016 12:12:35
unten
Hallo,
ja, das ist es. Jetzt läuft es. Für mich zum Verständnis:
Die Variablenbezeichnungen:
ialng = steht genau für was? lng = ling, ia für ?
avntValues = ? avnt ?
Cells(ialngIndex - 1, 1)
ialngIndex -1 = ?
gruß
AW: Erste Zelle von unten finden....
21.10.2016 12:19:10
unten
Hallo,
ialng = Index Array Datentyp Long
avnt = Array Datentyp Variant
Dadurch siehst du sofort welche Art von Variable du vor dir hast.
ialngIndex -1 = Eine Zeile oberhalb der gefundenen
Gruß
Nepumuk
AW: Erste Zelle von unten finden....
21.10.2016 12:52:36
unten
ok, danke. OWT
AW: Erste Zelle von unten finden....
21.10.2016 12:51:28
unten
Hallo,
ja, das ist es. Jetzt läuft es. Für mich zum Verständnis:
Die Variablenbezeichnungen:
ialng = steht genau für was? lng = ling, ia für ?
avntValues = ? avnt ?
Cells(ialngIndex - 1, 1)
ialngIndex -1 = ?
gruß
Anzeige
AW: Erste Zelle von unten finden....
21.10.2016 11:45:21
unten
doch eher so oder? (Von 2 bis ...
Range(Cells(2, 2), Cells(ialngIndex - 1, 1)).EntireRow.Delete
AW: Erste Zelle von unten finden....
21.10.2016 09:40:59
unten
Hallo Nepumuk,
Danke für deine Hilfe. Das Makro funktioniert .
Da ich mich mit Arrays noch nicht beschäftigt habe, schließt sich gleich die nächste Frage an.
Wenn das Makro die entsprechende Zelle gefunden hat, z.B. O20, sollen danach alle
Zellen gelöscht werden, d.h. immer von A2-O(reihennummer variabel...).
Beginn ist also immer A2-O...irgendwas
...entirerow.delete müsste es sein, meine ich...
Nochmals danke,
Chris

312 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige