VBA, boucles & erreur incompatibilité de type

Fermé
amdbg Messages postés 17 Date d'inscription lundi 27 juillet 2009 Statut Membre Dernière intervention 22 juin 2011 - Modifié par amdbg le 8/06/2011 à 16:41
amdbg Messages postés 17 Date d'inscription lundi 27 juillet 2009 Statut Membre Dernière intervention 22 juin 2011 - 10 juin 2011 à 11:04
Bonjour,

Je cherche a créer un programme sur VBA qui pourra traiter une multitude de données.
Dans la colonne E à partir de la ligne 16 j'ai des dates.
Dans la colonne K à partir de la ligne 16 j'ai quelques dates qui figurent toutes parmis les dates de E.
A une date de K est annexé un chiffre dans la colonne L sur la même ligne.

Si la date en E# correspond a une des dates en K j'aimerais mettre en H#, le chiffre de la colonne L qui correspond à la date en K.

J'ai écris ce programme



Sub Vep()

Dim n As Long
Dim m As Long
n = Application.CountA(Range("K16", Range("K16").End(xlDown)))
m = Application.CountA(Range("E16", Range("E16").End(xlDown)))
'Je compte le nombre de dates en E:m et en K:n

Dim j As Long
Dim i As Long
Dim s As Long
s = 0

For j = 16 To m + 16
For i = 16 To n + 16
'Je fais une boucle

Dim k As Date
Dim l As Date
k = Cells(i, 12).Value
l = Cells(j, 5).Value
' c'est sur ce l qu'il y a l'erreur 13 incompatibilité de type

If k = l Then s = s + Cells(i, 13)

Next i
Next j


End Sub

Je ne suis pas sur de ma définition de n et m.
Mon programme ne fonctionne pas il semble y avoir une erreur lorsque je définis l (et non pour k).

De plus je souhaite m'assurer que le programme test tous les i avant de passer au j suivant.


Comment améliorer mon programme?!

3 réponses

amdbg Messages postés 17 Date d'inscription lundi 27 juillet 2009 Statut Membre Dernière intervention 22 juin 2011
8 juin 2011 à 16:42
S'il vous plaît!!
0
ccm81 Messages postés 10856 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 10 mai 2024 2 404
8 juin 2011 à 17:18
bonjour

1. as tu fait un débogage de ta procedure et vérifié les valeurs de m et de n
2. qu'y a til dans Cells(j, 5) quand ça plante?

3. peux tu envoyer ton fichier au format excel 2003 (sans données confidentielles) sur cjoint.com ou cijoint.fr et coller le lien dans ton prochain post

bonne suite
0
amdbg Messages postés 17 Date d'inscription lundi 27 juillet 2009 Statut Membre Dernière intervention 22 juin 2011
10 juin 2011 à 11:04
Bonjour, désolé je ne pouvais pas envoyer le fichier. J'ai finalement réussi à bien coder ce fichier. Il y avait une erreur lors de la définition du s et d'autres, si il y a des intéressés la voici:

Sub vep()

Sheets("calcul").Select
Dim nk As Long
Dim ne As Long
nk = Application.CountA(Range("K16", Range("K16").End(xlDown)))
ne = Application.CountA(Range("E16", Range("E16").End(xlDown)))

Dim ie As Long
Dim ik As Long
ie = 16


For ik = 16 To nk + 16

Dim k As Date
Dim e As Date
k = Cells(ik, 11).Value
e = Cells(ie, 5).Value

Do While e < k And ie <= ne + 16
k = Cells(ik, 11).Value
e = Cells(ie, 5).Value


l = Cells(ie, 12)
h = Cells(ie, 8)

If k = e Then h = l Else h = 0

Cells(ie, 8) = h

ie = ie + 1
Loop



Next ik



End Sub
0