VBA Zelle größer Finden und Zellenadresse ausgeben

Bild

Betrifft: VBA Zelle größer Finden und Zellenadresse ausgeben
von: trx
Geschrieben am: 07.10.2015 21:56:03

Hallo zusammen,
da ich schon sehr viel aus diesem Forum herausgepickt habe, nun aber nicht mein Problem finde, werde ich mal ein eigenes Thema eröffnen.
Ich möchte gerne ab einer schon gesuchten ZellenAdresse eine Suche starten, bis das Ende der Spalte erreicht ist.
Es soll nach dem ersten Wert gesucht werden, der größer 0,01 ist.
So sieht die Spalte aus:
1,42E-07
1,37E-07
1,37E-07
0,319999993
0,349999994
Er soll mir also die Zeilennummer ausgeben, ab dem der Wert größer 0,01 ist, in diesem Fall also die Nummer von 0,31999999.
Nun soll dies über Mehrere Blätter laufen und mein Code sieht imoment so aus:

Sub Zeilen()
 Set wkbDaten = Workbooks("Mappe1.xlsm")
 For Each wks In wkbDaten.Sheets
________________________
    y = 1    
    x = wks.Range("A:A").End(xlDown).Row
    Set rngHandsOff = wks.Range("A" & y & ":A" & x).Find(What:="yes", LookIn:=xlValues, LookAt:= _
xlWhole)
    Zeile = rngHandsOff.Row
    wert = WorksheetFunction.Sum(wks.Range("A" & Zeile & ":A" & x))
    wks.Cells(10, 1).Value = wert
_____________________________
    avntArray = wks.Range("A" & y & ":A" & Zeile)
    For Each vntElem In avntArray
        If vntElem > 3 Then vntElem.Adress: Exit For
    Next
Next
End Sub
Natürlich funktioniert der Code nicht. Ich habe die Idee von ab "For Each vntElem" auch hier im Forum gefunden und dachte ich könnte einfach mit Adress die Adresse ausgeben. Ohne Erfolg. Mit Find fände ich sowas am einfachsten, aber leider kann ich Find nicht sagen, dass ich einen Wert >0,01 suche. Nun die Frage, wie könnte ich diesen Code umbauen, sodass ich die ZellenAdresse von dem vntElem habe.
Die brauche ich um in einer anderen Spalte die Werte (ab Zeile 1) bis dieser Zellenadresse zu summieren. Des Wegen der vorherige Code.
Dies ist aus meinem Testdokument, deswegen habe ich Variablen nur x und y benannt. In meinem Vollständigen Code sind die natürlich besser benannt. Auch habe ich hier nur 1 Spalte und 2 Blätter.
Ich hoffe ich konnte es einigermaßen erklären.

Bild

Betrifft: AW: VBA Zelle größer Finden und Zellenadresse ausgeben
von: Daniel
Geschrieben am: 07.10.2015 22:22:59
Hi
wenn die Liste aufsteigend sortiert ist, dann wäre die Funktion VERGLEICH die geeignte Funktion (in VBA Application.Match)


y = 1    
x = wks.Range("A:A").End(xlDown).Row
Zeile = y + Application.Match(0.01, wks.Range("A" & y & ":A" & x), 1)

Gruss Daniel

Bild

Betrifft: AW: VBA Zelle größer Finden und Zellenadresse ausgeben
von: Trx
Geschrieben am: 07.10.2015 23:05:13
Leider muss das ganze nicht aufsteigend sortiert sein sondern kann auch ein Durcheinander sein. Aber schonmal vielen Dank, das kann ich für ein Paar Blätter schonmal benutzen!!

Bild

Betrifft: AW: VBA Zelle größer Finden und Zellenadresse ausgeben
von: Daniel
Geschrieben am: 07.10.2015 23:16:24
Hi
wenns nicht sortiert ist, dann musst du mit ner Schleife über die Zellen laufen und die Zellewerte mit 0,01 vergleichen:

for Zeile = y to x
    if wks.cells(z, 1) > 0.01 then Exit for
next

nach abbruch der Schleife hat die Variable Zeile dann die Zeilennummer der ersten Zelle, deren Wert grösser als 0,01 ist.
sollte es vorkommen können, dass alle Werte kleiner als 0,01 sind, dann wird die Schleife vollständig durchlaufen. Um zu überprüfen, ob dieser Fall eingetreten ist vergleicht man Zeile mit dem Schleifenendwert. Ist der Schleifenzähler Zeile grösser als der Endwert x, wurde die Schleife vollständig durchlaufen und es gibt keinen Wert grösser 0,01
Gruss Daniel

Bild

Betrifft: AW: VBA Zelle größer Finden und Zellenadresse ausgeben
von: trx
Geschrieben am: 08.10.2015 18:06:18
Klappt super danke!

 Bild

Beiträge aus den Excel-Beispielen zum Thema "VBA Zelle größer Finden und Zellenadresse ausgeben"