Pb de comparaison date aussi en VBA

  • Initiateur de la discussion Initiateur de la discussion dodoremix
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

dodoremix

XLDnaute Nouveau
Bonjour,

Le VBA est un ennemi sournois 🙂

En effet ,je me trouve confronté à un problème avec la macro vba .
Je ne sais pas pourquoi mais elle fait des caprices dans la comparaison.
Le but de la macro est de faire une comparaison de dates d'une colonne ("C*" de la feuille "DOS") avec la fonction "=AUJOURDHUI()-2" qui se trouve dans une cellule("H11") d'une feuille ("acceuil").
Suite à cette comparaison il doit colorer les lignes correspondantes
Cela marche mais de facon aléatoire avce ma macro 😕
J ai dû utiliser la fonction left("C*",5) car le format des dates de la feuille dos (jj/mm/yyyy HH:MM) est different de celui de acceuil(jj/mm/yyyy)
Là je deviens chèvre !!!

Ci dessous mon code vba :

Sub condition()
'
' condition Macro
' Macro enregistrée le 13/05/2008 par dodoremix
'

'
Sheets("CLI").Select

pos_dans_feuille = Sheets("CLI").Range("A65536").End(xlUp).Row
'

For i = 2 To pos_dans_feuille
If Range("C" & i).Value <> "" Then
If Left(Range("C" & i).Value, 5) = Left(Sheets("acceuil").Range("H11").Value, 5) Then
Range("A" & i & ":" & "J" & i).Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
With Selection.Interior
.ColorIndex = 46
.Pattern = xlSolid
End With
ElseIf Left(Range("C" & i).Value, 5) < Left(Sheets("acceuil").Range("H11").Value, 5) Then
Range("A" & i & ":" & "J" & i).Select

With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
With Selection.Interior
.ColorIndex = 3
.Pattern = xlSolid
End With
End If

End If
Next

Sheets("DOS").Select

pos_dans_feuille = Sheets("DOS").Range("A65536").End(xlUp).Row
'

For i = 2 To pos_dans_feuille
If Range("C" & i).Value <> "" Then
If Left(Range("C" & i).Value, 5) = Left(Sheets("acceuil").Range("H11").Value, 5) Then
Range("A" & i & ":" & "J" & i).Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
With Selection.Interior
.ColorIndex = 46
.Pattern = xlSolid
End With
ElseIf Left(Range("C" & i).Value, 5) < Left(Sheets("acceuil").Range("H11").Value, 5) Then
Range("A" & i & ":" & "J" & i).Select

With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
With Selection.Interior
.ColorIndex = 3
.Pattern = xlSolid
End With
End If
End If
Next


End Sub

Y a t'il un problème avec ma comparaison ?

D'avance merci de votre aide 😱
 
Re : Pb de comparaison date aussi en VBA

Bonjour

en VBA je préfère toujours utilisé le Cdate pour comparer les dates

Donc il faudrait essayer ainsi

If CDate(Left(Range("C" & i).Value, 5)) = CDate(Left(Sheets("acceuil").Range("H11").Value, 5)) Then


Bien sûr à essayer sur tous les codes de comparaison
 
Re : Pb de comparaison date aussi en VBA

Merci beaucoup c'est presque parfait mais je comprend pas il ne prend pas les dates de 2007 du mois 11 et 12.

Mais bon y a moins de bug c 'est déjà ca

😀

Merci,si tu as une idée pour les mois de Novembre et decembre 2007.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
532
Réponses
4
Affichages
478
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
664
Réponses
3
Affichages
682
Réponses
11
Affichages
785
Retour