Erreur dans le Code ???????

G

Gabriel

Guest
Bonjour le Forum

Il y quelque jours j'ai demandé j'ai reçu de l'aide pour l'un de mes problèmes. Puis j'ai très légèrement modifier le code et ca ne fonctionne plus. L'erreur donnée est Subscript out of range. Puis c'est quasiment du copier coller. Donc je ne sais vraiment pas c'est quoi l'erreur. C'est peut-être une erreur d'inattention ou peut-être que j'ai rien compris du VBA.
le code est en annexe.

Merci pour votre aide

Gabriel
 

Pièces jointes

  • Prototype_2_1.zip
    15.9 KB · Affichages: 23
G

Gabriel

Guest
Rebonjour à tous.

Finalement le code a plus qu'un erreur. Le problème mentionné dans le premier message est causé par le fait que le fichier est travailler dans deux langues ( je crois ). Car ce bout de code fonctionne, mais il y a encore des erreur.

merci

Gabriel
 
Y

Yeahou

Guest
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
 

Discussions similaires

Statistiques des forums

Discussions
313 099
Messages
2 095 241
Membres
106 234
dernier inscrit
JESS97354