Problème sur une macro

Résolu/Fermé
floflo18 Messages postés 14 Date d'inscription lundi 28 avril 2014 Statut Membre Dernière intervention 30 avril 2014 - 29 avril 2014 à 15:08
floflo18 Messages postés 14 Date d'inscription lundi 28 avril 2014 Statut Membre Dernière intervention 30 avril 2014 - 29 avril 2014 à 16:15
Bonjour à tous,

J'ai un message d'erreur sur une macro. Je n'arrive pas à comprendre pourquoi.

Message d'erreur à l'exécution :
Erreur 16 Incompatilibité de type
Ligne concernée :
datedeb = .Cells(li, codeb + 12)


Le code est le suivant :

Option Explicit

Const F1 = "INTO"
Const lideb = 2
Const codeb = 1
Const cofin = 4

Const F2 = "INTO2"

Public Sub insererLig()
Dim li As Long, lifin As Long, datedeb As Date, datefin As Date, ld As Long
Dim d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12, d13, d14, d15, d16, d17, d18, d19, d20, d21, d22, d23, d24, d25, d26, d27, d28, d29
Application.ScreenUpdating = False
With Sheets(F1)
lifin = .Cells(Rows.Count, codeb).End(xlUp).Row
For li = lifin To lideb Step -1
d1 = .Cells(li, codeb)
d2 = .Cells(li, codeb + 1)
d3 = .Cells(li, codeb + 2)
d4 = .Cells(li, codeb + 3)
d5 = .Cells(li, codeb + 4)
d6 = .Cells(li, codeb + 5)
d7 = .Cells(li, codeb + 6)
d8 = .Cells(li, codeb + 7)
d9 = .Cells(li, codeb + 8)
d10 = .Cells(li, codeb + 9)
d11 = .Cells(li, codeb + 10)
d12 = .Cells(li, codeb + 11)
datedeb = .Cells(li, codeb + 12)
d14 = .Cells(li, codeb + 13)
datefin = .Cells(li, codeb + 14)
d16 = .Cells(li, codeb + 15)
d17 = .Cells(li, codeb + 16)
d18 = .Cells(li, codeb + 17)
d19 = .Cells(li, codeb + 18)
d20 = .Cells(li, codeb + 19)
d21 = .Cells(li, codeb + 20)
d22 = .Cells(li, codeb + 21)
d23 = .Cells(li, codeb + 22)
d24 = .Cells(li, codeb + 23)
d25 = .Cells(li, codeb + 24)
d26 = .Cells(li, codeb + 25)
d27 = .Cells(li, codeb + 26)
d28 = .Cells(li, codeb + 27)
d29 = .Cells(li, codeb + 28)



For ld = 1 To datefin - datedeb
Rows(li + ld).Insert
.Cells(li + ld, codeb) = d1
.Cells(li + ld, codeb + 1) = d2
.Cells(li + ld, codeb + 2) = d3
.Cells(li + ld, codeb + 3) = d4
.Cells(li + ld, codeb + 4) = d5
.Cells(li + ld, codeb + 5) = d6
.Cells(li + ld, codeb + 6) = d7
.Cells(li + ld, codeb + 7) = d8
.Cells(li + ld, codeb + 8) = d9
.Cells(li + ld, codeb + 9) = d10
.Cells(li + ld, codeb + 10) = d11
.Cells(li + ld, codeb + 11) = d12
.Cells(li + ld, codeb + 12) = datedeb + ld
.Cells(li + ld, codeb + 13) = d14
.Cells(li + ld, codeb + 14) = datedeb + ld
.Cells(li + ld, codeb + 15) = d16
.Cells(li + ld, codeb + 16) = d17
.Cells(li + ld, codeb + 17) = d18
.Cells(li + ld, codeb + 18) = d19
.Cells(li + ld, codeb + 19) = d20
.Cells(li + ld, codeb + 20) = d21
.Cells(li + ld, codeb + 21) = d22
.Cells(li + ld, codeb + 22) = d23
.Cells(li + ld, codeb + 23) = d24
.Cells(li + ld, codeb + 24) = d25
.Cells(li + ld, codeb + 25) = d26
.Cells(li + ld, codeb + 26) = d27
.Cells(li + ld, codeb + 27) = d28
.Cells(li + ld, codeb + 28) = d29
Next ld
Next li
End With
Application.ScreenUpdating = True
End Sub

Public Sub RAZ()
Sheets(F1).Cells.ClearContents
Sheets(F2).Range("A1:D5").Copy Sheets(F1).Range("A1")
End Sub


Est-ce que vous pouvez m'aider?

Merci beaucoup

floflo18
A voir également:

6 réponses

Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
29 avril 2014 à 15:16
Bonjour,

Tu peux commencer par regarder la valeur de la variable "li" ainsi que la valeur de .Cells(li, codeb + 12)

Sans fichier, difficile d'en dire plus.

A+
0
floflo18 Messages postés 14 Date d'inscription lundi 28 avril 2014 Statut Membre Dernière intervention 30 avril 2014
29 avril 2014 à 15:28
J'aimerais bien mais comment est-ce que je fais pour mettre un fichier Excel en lien?

Merci d'avance

floflo18
0
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
29 avril 2014 à 15:31
0
floflo18 Messages postés 14 Date d'inscription lundi 28 avril 2014 Statut Membre Dernière intervention 30 avril 2014
29 avril 2014 à 15:35
Merci. Voici le fichier :


http://cjoint.com/data3/3DDpHLdz083.htm
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
29 avril 2014 à 15:45
Si tu regardes la valeur des différentes variables dans l'instruction
datedeb = .Cells(li, codeb + 12)

li a pour valeur 3
codeb a pour valeur 1
.Cells(li, codeb + 12) correspond à .Cells(3, 13) qui a pour valeur "M"

L'erreur s'explique, il ne s'agit pas d'une date.

A+
0
floflo18 Messages postés 14 Date d'inscription lundi 28 avril 2014 Statut Membre Dernière intervention 30 avril 2014
29 avril 2014 à 16:15
Merci Beaucoup ça marche :)

floflo18
0