VBA : Excel Comparaison de date

Fermé
perdeak Messages postés 79 Date d'inscription mardi 11 décembre 2007 Statut Membre Dernière intervention 21 janvier 2009 - 22 janv. 2008 à 23:37
phil_232 Messages postés 286 Date d'inscription jeudi 6 décembre 2007 Statut Membre Dernière intervention 12 juin 2008 - 23 janv. 2008 à 21:46
Bonjour,

Voilà mon problème:
J'ai 2 colonnes A et B. Dans A on retrouve des dates du style '28-mars-01', dans B on retrouve une chaîne de caractères du style '005 ROUT01'.
Je veux parcourir l'ensemble de ma colonne B, trouver 2 occurences identiques, si j'en trouve 2 identiques, je compare les dates, et je voudrais garder seulement l'occurence qui a la date la plus récente et effacer la ligne ou la date est la plus ancienne. En plus de ça j'aimerai rajouter un test sur la date, il faut qu'elle soit inférieur au '31/12/07'

Voilà mon code:

For i = 2 To 1264
        For j = 3 To 1264
            If Cells("B" & i).Value = Range("B" & j) Then
                If Range("A" & i) > Range("A" & j) Then
                    If Range("A" & i) < CDate(31 - déc - 7) Then
                        Rows("j:j").Select
                        Selection.Cut
                        Rows("i:i").Select
                        ActiveSheet.Paste
                        Rows("j:j").Select
                        Selection.Delete Shift:=xlUp
                    Else
                        'on verra
                    End If
                End If
                If Range("A" & i) > Range("A" & j) Then
                    If Range("A" & j) < CDate(31 - déc - 7) Then
                        Rows("i:i").Select
                        Selection.Cut
                        Rows("j:j").Select
                        ActiveSheet.Paste
                        Rows("i:i").Select
                        Selection.Delete Shift:=xlUp
                    Else
                        'on verra
                    End If
                End If
                If Range("A" & i) = Range("A" & j) Then
                    Rows("i:i").Select
                    Selection.Cut
                    Rows("j:j").Select
                    ActiveSheet.Paste
                    Rows("i:i").Select
                    Selection.Delete Shift:=xlUp
                End If
            End If
        Next j
Next i


Quand je lance ma macro, ça mouline mais rien ne se passe....HELP

3 réponses

phil_232 Messages postés 286 Date d'inscription jeudi 6 décembre 2007 Statut Membre Dernière intervention 12 juin 2008 33
23 janv. 2008 à 02:12
In Excel, the CDate function converts a value to a date.

The syntax for the CDate function is:

CDate( expression )

expression must be a valid date.

VBA Code

The CDate function can only be used in VBA code. For example:

Dim LstrDate As String
Dim LDate As Date

LstrDate = "Apr 6, 2003"
LDate = CDate(LstrDate)

In this example, the variable LDate would now contain the value 4/6/2003.

Donc
CDate("31 - déc - 7")

Bref j'imagine qu'Excel fait avec ca

CDate(31 - déc - 7)

CDate(31 - 12 - 7)

CDate(12)

Date devient le 12 du mois courant de l'année en cours
0
perdeak Messages postés 79 Date d'inscription mardi 11 décembre 2007 Statut Membre Dernière intervention 21 janvier 2009 1
23 janv. 2008 à 08:46
Il ne se passe toujours rien...
0
phil_232 Messages postés 286 Date d'inscription jeudi 6 décembre 2007 Statut Membre Dernière intervention 12 juin 2008 33
23 janv. 2008 à 21:46
peut-être

CDate("31-déc-7") ?
0