Incompatibilité de type

Résolu/Fermé
DGVDR Messages postés 158 Date d'inscription vendredi 10 août 2012 Statut Membre Dernière intervention 20 juillet 2015 - 19 nov. 2012 à 12:26
 G_33 - 19 nov. 2012 à 16:09
Bonjour,

Petit problème de pose de variable (je pense) dont je ne trouve pas la solution,

Mon code :

Sub MTBF()

Dim l As Integer 'variable recherche d'intervention'
Dim m As Integer ' variable machines'
Dim n As Long 'variable incrémentante'
Dim Nbre As Integer 'Nombre de fois qu'on a une intervention


With Worksheets("Enregistrements interventions")
For m = 5 To 20
Machine = Worksheets("Global").Range("V" & m)
Nbre = Worksheets("Enregistrements interventions").Application.CountIf(.Range("C5:C300"), Machine)
For l = 5 To 500

    If Worksheets("Enregistrements interventions").Range("C" & l) = Machine And Worksheets("Enregistrements interventions").Range("C" & l + 1) = Machine Then
    n = Worksheets("Enregistrements interventions").Range("C" & l + 1) - Worksheets("Enregistrements interventions").Range("C" & l)
    ElseIf Worksheets("Enregistrements interventions").Range("C" & l) = Machine And Worksheets("Enregistrements interventions").Range("C" & l + 1) <> Machine Then
    
    End If
    Next
    Worksheets("Global").Range("W" & m) = n / (Nbre - 1)
    Next
    End With
    
    
    
    
End Sub



C'est ma variable n qui pose problème, cette variable reçoit la différence entre deux dates.

Si michel_m passe par là, tu remarqueras que j'utilises ton code, encore une fois merci.

Merci,
DGVDR

6 réponses

Utilisateur anonyme
19 nov. 2012 à 15:49
Bonjour

La question est peut-être bête, mais les cellules concernées contiennent-elles bien toutes les 2 des valeurs numériques ?
1
chossette9 Messages postés 4239 Date d'inscription lundi 20 avril 2009 Statut Contributeur Dernière intervention 12 septembre 2014 1 307
19 nov. 2012 à 13:00
Bonjour,

quel est exactement le problème (message d'erreur, résultat obtenu ne correspondant pas à un résultat souhaité...) ?

Cordialement.
0
Bonjour
quand tu arrives à

Worksheets("Global").Range("W" & m) = n / (Nbre - 1)

si (Nbre - 1) =0 tu ne peux pas diviser n par zéro en vba


cordialement
0
DGVDR Messages postés 158 Date d'inscription vendredi 10 août 2012 Statut Membre Dernière intervention 20 juillet 2015
19 nov. 2012 à 14:05
Bonjour à vous

Merci à vous deux pour ces réponses,

le problème persiste même avec une déclaration en "Date"

j'obtiens une erreur d'éxécution '13' : Incompatibilité de type.

Des idées?

DGVDR
0
j'ai modifié ma précédente réponse
0
DGVDR Messages postés 158 Date d'inscription vendredi 10 août 2012 Statut Membre Dernière intervention 20 juillet 2015
19 nov. 2012 à 14:41
Merci G_33 pour cette nouvelle réponse,

Cependant le problème persiste.

Il semble que c'est vraiment la ligne :

n = Worksheets("Enregistrements interventions").Range("C" & l + 1) - Worksheets("Enregistrements interventions").Range("C" & l)


Qui pose problème par une" incompatibilité de type."
0
As tu vérifié si il n'y a pas un espace en début ou fin de cellule "Range("C" & l)".

j'ai fait un test avec des dates et ça marche parfaitement.

Par contre j'ai rajouté un espace en début de cellule et j'ai effectivement l'erreur
"incompatibilité de type"
0

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

Posez votre question
DGVDR Messages postés 158 Date d'inscription vendredi 10 août 2012 Statut Membre Dernière intervention 20 juillet 2015
19 nov. 2012 à 15:39
G_33,

Merci de nouveau pour cette réponse,

non je n'ai pas d'espace.
0
je ne vois pas trop

mais essaie ça

Dim madate As Date
Dim madate_2 As Date

debut de ton code

If Worksheets("Enregistrements interventions").Range("C" & l) = Machine And Worksheets("Enregistrements interventions").Range("C" & l + 1) = Machine Then

madate = CDate(Worksheets("Enregistrements interventions").Range("C" & l))
madate_2 = CDate(Worksheets("Enregistrements interventions").Range("C" & l + 1))
n = madate_2 - madate

suite de ton code
0
DGVDR Messages postés 158 Date d'inscription vendredi 10 août 2012 Statut Membre Dernière intervention 20 juillet 2015
19 nov. 2012 à 15:56
Bonjour le père,

Question loin d'être bête et tout à fait pertinante, c'était des cellules de la colonne F et non C à soustraire... (erreur bête par contre !)

Merci à vous deux.

On peut clore.
0