Bonjour Gabriel, le forum
Ce code n'a jamais pu fonctionner, il y a des erreurs de sélection, de syntaxe et de code proprement dit. Tu ne définis pas les zones de test, les arguments de columns sont mal définis, les colonnes mal référencées et pour finir tu compares des chèvres et des choux, des valeurs de dates entières avec des extractions de jours, mois, années. voici un exemple de ton code modifié pour le rendre fonctionnel dans lequel j'ai défini des plages de comparaison. Etudie le bien en comparant avec l'original pour comprendre et n'hésites pas à recourir à l'aide VBA lorsque tu programmes.
Cordialement, A+
Sub Button5_Click()
'
' Classer Macro
' Macro recorded 2000-11-02 by gabriel
'
''Déclaration des variable.
Dim Debits As Worksheet
Dim Classement As Worksheet
Dim myAns As Variant
Dim myJour As Variant
Dim myMois As Variant
Dim myDebit As Double
Dim COLDate As Range ' Colonn ou sont situé les dates reçues
Dim COLCOMDate As Range ' Colonne ou les dates sont comparées
'Assigne les variable au bonnes feuilles
Set Debits = Sheets("Feuil2") 'Assigne la feuille de Hydat
Set Classement = Sheets("Feuil3") 'Assigne la feuille de classement (forme calendrier)
'Première boucle pour la vérification de la date
For Each COLDate In Debits.Columns(3).SpecialCells(xlCellTypeConstants, 23)
myAns = Year(COLDate.Value) 'myAns = à la valeur de l'année de la cellule
myJour = Day(COLDate.Value) 'myJour = à la valeur du jour de la cellule
myMois = Month(COLDate.Value) 'myMois = à la valeur du mois de la cellule
myDebit = COLDate.Offset(0, 1).Value 'myDebit = à la valeur qui est dans la colonne à droite de la cellule de la date
'Deuxième boucle pour faire le classment
For Each COLCOMDate In Classement.Columns(5).SpecialCells(xlCellTypeFormulas, 1)
If Day(COLCOMDate) = myJour And Month(COLCOMDate) = myMois And Year(COLCOMDate) = myAns Then
COLCOMDate.Offset(0, 1).Value = myDebit
Exit For ' Sort de la deuxième boucle
End If
Next COLCOMDate
Next COLDate
End Sub