Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
352to356
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
352to356
352to356
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makro läuft nicht. Denkfehler?

Makro läuft nicht. Denkfehler?
17.12.2003 21:04:38
Steffen
Guten abend,

ich bastle schon ne ganze Weile an einem Stück Code rum und weiß nicht warum es nicht läuft. Ich hatte weiter unten schon einmal eine ähnliche Frage gestellt, aber hier ist nun auch mal der Code dazu.

In der Tabelle 1 stehen in Spalte C Bezeichner und in F Geburtsdaten. Ich möchte nun die Aälteste, bzw. jüngste Person ermitteln, unter der Bedingung, dass in der Spalte c ein bestimmter Bezeichner steht. Somit werden dann einige Geburtsdaten ausgelassen.

Die Ermittlung des ältesten geht prima. Funktioniert.
Bei der Ermittlung des Jüngsten geht gar nichts. Wenn ich den unten stehenden Code laufen lasse, springt er gar nicht in die If schleife mit datediff("d".....d.h. die Variable 'Jüngster_nur_wfr' bleibt immer leer. Wenn ich für Date was anderes eingebe, was ja eigentlich keinen Sinn macht, läuft es durch, auch nur die Zeilen in denen der gewünschte Bezeichner steht, aber es wird einfach immer das nächste Datum genommen, egal, ob es jünger oder älter ist.

Ich kann da irgendwie keinen Fehler finden. Denkee ist vielleicht ein Denkfehler drin

Würd mcih freuen, wenn ihn vielleicht ein anderer findet.

Ermittlung des Ältesten:

Sub Ältester()
zeile = 2
d = .Cells(zeile, 6).Value
For zeile = 2 To .Cells(65536, 6).End(xlUp).Row
If .Cells(zeile, 3).Value = "wfr" Then
If DateDiff("d", .Cells(zeile, 6).Value, Date) > maxdiff Then
maxdiff = DateDiff("d", .Cells(zeile, 6).Value, Date)
Ältester_nur_wfr = .Cells(zeile, 6).Address
End If
End If
Next
End With
End Sub


Ermittlung des Jüngsten:

Sub Jüngster()
zeile = 2
d = .Cells(zeile, 6).Value
For zeile = 2 To .Cells(65536, 6).End(xlUp).Row
If .Cells(zeile, 3).Value = "wfr" Then
If DateDiff("d", .Cells(zeile, 6).Value, Date) < mindiff Then
mindiff = DateDiff("d", .Cells(zeile, 6).Value, Date)
Jüngster_nur_wfr = .Cells(zeile, 6).Address
End If
End If
Next
End With
End Sub

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro läuft nicht. Denkfehler?
17.12.2003 21:21:30
IngoG
HAllo Steffen,

noch ein tip, obwohl Dir meine Matrixformel nicht gefallen hat ;-)
wenn Du an den Anfang noch die Zeile setzt:

mindiff=99999

sollte es funktionieren

Du hast mE immer die differenz mit 0 verglichen und daher nie ein ergebnis bekommen
beim Ältesten spielt das übrigens keine Rolle da jede differenz grösser 0 ist und Du so einen anfangswert bekommst.

Gruß Ingo

PS eine Rückmeldung wäre nett...
Vielen Dank!
17.12.2003 21:36:36
Steffen
Hallo,

sei nciht böse wegen der Matrixformel.

Vielen Dnak für den Tip. Das mit mindiff= 99999999 klappt.

Vielen Dank für die Hilfe.

Gruß

Steffen
Anzeige
no Prob, war nur Spass, danke für die Rückmeld. oT
17.12.2003 21:38:58
IngoG
.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige