Incompatibilité de type

Résolu
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

  1. Bonjour

    La question est peut-être bête, mais les cellules concernées contiennent-elles bien toutes les 2 des valeurs numériques ?
    1. Contributeur
      Bonjour,

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

      Cordialement.
      1. 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
    2. 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
      1. j'ai modifié ma précédente réponse
    3. 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."
      1. 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"
    4. G_33,

      Merci de nouveau pour cette réponse,

      non je n'ai pas d'espace.
      1. 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
    5. 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.