VBA : Excel Comparaison de date

perdeak Messages postés 80 Statut Membre -  
phil_232 Messages postés 286 Statut Membre -
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
Configuration: Windows XP
Firefox 2.0.0.11

3 réponses

  1. phil_232 Messages postés 286 Statut Membre 33
     
    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
  2. perdeak Messages postés 80 Statut Membre 1
     
    Il ne se passe toujours rien...
    0
  3. phil_232 Messages postés 286 Statut Membre 33
     
    peut-être

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