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

Max. Wert einer Zelle aber mind. 1 nehme

Max. Wert einer Zelle aber mind. 1 nehme
08.06.2021 10:19:53
Dennis
Nachrichtenvorschau
Zurück
Guten Morgen zusammen,
ich benötige mal wieder euer Know-how beim Lösen eines Problems.
In einer Tabelle haben die Spalten 8 bis 10 in denen jeweils ein Datum stehen kann. Diese sind immer absteigend von 8 nach 10 (sprich in 10 wäre immer das älteste von den 3). Jetzt will ich überprüfen, ob in der Spalte 10 ein Datum drinsteht und gleichzeitig den Wert aus Spalte 35. Hier steht endweder nix drin oder Zahlen ab 2. Da ich hier den Wert aber mit einer anderen Zahl multiplizieren muss, möchte ich also bei "" eine 1 übergeben. Sollte Spalte 10 leer sein, wird der Vorgang mit Spalte 9 (und Spalte 34) wiederholt, um so das älteste Datum bzw. die ältesten Einträge in Spalte 33-35 zu finden. Dies wollte ich mit der Funktion MAX machen, leider habe ich hier irgendwo einen Fehler drin. Ich hoffe ihr könnt mir helfen.
Viele Grüße
Dennis

Sub test()
Set td = Worksheets("Daten")
With td
lngZeileMax = td.Cells(Rows.Count, 1).End(xlUp).Row
For i = 3 To lngZeileMax
If .Cells(i, 10)  "" Then
old1 = Max(1, .Cells(i, 35)) * .Cells(i, 29).Value
Else
If .Cells(i, 9)  "" Then
old1 = Max(1, .Cells(i, 34)) * .Cells(i, 29).Value
Else
If .Cells(i, 8)  "" Then
old1 = Max(1, .Cells(i, 33)) * .Cells(i, 29).Value
End If
Next i
End With
End Sub

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: so wie Du es verbal beschreibst ...
08.06.2021 11:15:35
neopa
Hallo Dennis,
... hätte ich eine reine Formellösung zu bieten, wobei ich davon ausgehe, dass in Spalte 8:10 nur echte Datumswerte eingeschrieben werden und keine sonstigen Zahlenwerte. In dem Fall könnte die Formel noch um Prüfung auf zutreffenden/vorgegbenen Datumsbereich erweitert werden.
=WENNFEHLER(MAX(INDEX(AG:AI;AGGREGAT(15;6;ZEILE(H2:H99)/ISTZAHL(H2:J99)/(SPALTE(H2:J2)=AGGREGAT(14;6;SPALTE(H2:J2)/ISTZAHL(H2:J99);1));1);AGGREGAT(14;6;SPALTE(A2:C2)/ISTZAHL(H2:J99);1));1);1)
Gruß Werner
.. , - ...
AW: so wie Du es verbal beschreibst ...
08.06.2021 12:16:35
Dennis
Hallo Werner,
danke für deine Antwort. Ja in Spalte 8 bis 10 stehen nur echte Datumswerte. Nix anderes. Mit der Formel mache ich es ja direkt im Tabellenblatt. Aber brauche das als Variable in VBA. Oder geht es damit nicht so wie gedacht? Also nur über Umwege? Oder habe ich dich falsch verstanden?
Viele Grüße
Dennis
Anzeige
AW: VBA-Lösung gesucht, thread offen owT
08.06.2021 13:17:46
neopa
Gruß Werner
.. , - ...
AW: Max. Wert einer Zelle aber mind. 1 nehme
08.06.2021 20:21:32
GerdL
Moin Dennis,
und deklariere die Variablen.

Set td = Worksheets("Daten")
With td
lngZeileMax = td.Cells(Rows.Count, 29).End(xlUp).Row
For i = 3 To lngZeileMax
old1 = 0
If .Cells(i, 10)  "" Then
old1 = Max(1, .Cells(i, 35)) * .Cells(i, 29).Value
Else
If .Cells(i, 9)  "" Then
old1 = Max(1, .Cells(i, 34)) * .Cells(i, 29).Value
Else
If .Cells(i, 8)  "" Then
old1 = Max(1, .Cells(i, 33)) * .Cells(i, 29).Value
End If
If old1  0 Then .Cells(i, 30) = old1
Next i
End With
Gruß Gerd
AW: Max. Wert einer Zelle aber mind. 1 nehme
08.06.2021 21:57:00
Dennis
Hallo Gerd,
danke für deine Antwort. Bei deinem Code hat er auch das Wort "Max" angekreidet, dass er dies nicht kennt. WorksheetFunction.Max muss noch hin. Sonst läuft alles wie gewollt. Danke
Anzeige

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige