VBA : Excel Comparaison de date
perdeak
Messages postés
79
Date d'inscription
Statut
Membre
Dernière intervention
-
phil_232 Messages postés 286 Date d'inscription Statut Membre Dernière intervention -
phil_232 Messages postés 286 Date d'inscription Statut Membre Dernière intervention -
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:
Quand je lance ma macro, ça mouline mais rien ne se passe....HELP
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
A voir également:
- VBA : Excel Comparaison de date
- Excel compter cellule couleur sans vba - Guide
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Erreur 13 incompatibilité de type VBA excel ✓ - Forum Excel
- Mkdir vba ✓ - Forum VB / VBA
- Dépassement de capacité vba ✓ - Forum Excel
3 réponses
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
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