Incompatibilité de type

Résolu
DGVDR Messages postés 158 Date d'inscription   Statut Membre Dernière intervention   -  
 G_33 -
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
 
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   Statut Contributeur Dernière intervention   1 311
 
Bonjour,

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

Cordialement.
0
G_33
 
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   Statut Membre Dernière intervention  
 
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
G_33
 
j'ai modifié ma précédente réponse
0
DGVDR Messages postés 158 Date d'inscription   Statut Membre Dernière intervention  
 
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
G_33
 
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   Statut Membre Dernière intervention  
 
G_33,

Merci de nouveau pour cette réponse,

non je n'ai pas d'espace.
0
G_33
 
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   Statut Membre Dernière intervention  
 
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