Problème sur une macro

Résolu
floflo18 Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   -  
floflo18 Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   526
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   526
 
0
floflo18 Messages postés 14 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   526
 
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   Statut Membre Dernière intervention  
 
Merci Beaucoup ça marche :)

floflo18
0