Incompatibilité de type sous VBA

Cacou78

XLDnaute Nouveau
Bonjour,
j'ai créer un code qui génère une erreur, mais je ne vois pas où.
Pourriez vous m'aidez?

' Déclaration des variables
Dim date_deb, date_fin, date_act As Date
Dim charge_total, charge_jour As Integer

For j = 10 To 126 Step 7
For i = 0 To 5

'Affectation des variables

date_deb = Worksheets("charge_jour").Cells(2, j - 7 - i).Value
date_fin = Worksheets("charge_jour").Cells(2, j - 6 - i).Value
date_act = Worksheets("charge_mois").Cells(1, j).Value
charge_total = Worksheets("charge_jour").Cells(2, j - 4 - i).Value
charge_jour = Worksheets("charge_jour").Cells(2, j - 3 - i).Value
Cells(3, j + i).Select
If date_fin = "" Then
ActiveCell.Value = 0
ElseIf date_deb < DateSerial(Year(date_act), Month(date_act), 1) Then
If date_fin < DateSerial(Year(date_act), Month(date_act), 1) Then
ActiveCell.Value = 0
ElseIf (Year(date_fin) = Year(date_act)) And (Month(date_fin) = Month(date_act)) Then
ActiveCell.Value = DateDiff("d", DateSerial(Year(date_act), Month(date_act), 1), date_fin) * charge_jour
Else
ActiveCell.Value = 30 * charge_jour
End If

ElseIf (Year(date_deb) = Year(date_act)) And (Month(date_deb) = Month(date_act)) Then
If (Year(date_fin) = Year(date_act)) And (Month(date_fin) = Month(date_act)) Then
ActiveCell.Value = charge_total
Else
ActiveCell.Value = DateDiff("d", date_deb, DateSerial(Year(date_act), Month(date_act) + 1, 1) - 1) * charge_jour
End If
Else
ActiveCell.Value = 0
End If



Next i
Next j
 

kjin

XLDnaute Barbatruc
Re : Incompatibilité de type sous VBA

Bonjour,
Bonjour,
j'ai créer un code qui génère une erreur...
J'en vois au moins 2
1 - ne pas mettre le code entre balises, c'est plus agréable et ça permet le copier/coller (# dans le menu)
2 - ne pas joindre un fichier, parce que là hormis de déclarer dat_deb et date_fin comme dates, ma boule de cristal refuse obstinément
A+
kjin
 

Cacou78

XLDnaute Nouveau
Re : Incompatibilité de type sous VBA

le point d'arret se trouve à ce niveau la
charge_jour = Worksheets("charge_jour").Cells(2, j - 3 - i).Value
Sinon pour le fichier, je peux vraiment pas. Il est super gros et je mettrais trop de temps à le modifier, aprés je comprend totalement que vous ne puissiez pas m'aider sans. Mais jpréfère ne pas prendre de risque
 

Pierrot93

XLDnaute Barbatruc
Re : Incompatibilité de type sous VBA

Re,

ce code fonctionne chez moi :
Code:
Dim charge_jour As Double
charge_jour = 3.333

sinon essaye de le déclarer en "Variant" et vérifie le type de valeur renvoyée... pour ce faire, affiche la fenêtre variables locales dans l'éditeur vba.
 

Pierrot93

XLDnaute Barbatruc
Re : Incompatibilité de type sous VBA

Re,

méfie toi tout de même pour la suite, car en fonction du type de valeur renvoyé tu risques d'avoir une erreur, par exemple lors de l'exécution de cette ligne, si "charge_jour" contient du "texte" lors de la multiplication cela va boguer...


Code:
ActiveCell.Value = DateDiff("d", date_deb, DateSerial(Year(date_act), Month(date_act) + 1, 1) - 1) * charge_jour
 

Statistiques des forums

Discussions
312 764
Messages
2 091 864
Membres
105 084
dernier inscrit
lca.pertus