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

  1. 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
  2. chossette9 Messages postés 6855 Date d'inscription   Statut Contributeur Dernière intervention   1 313
     
    Bonjour,

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

    Cordialement.
    0
    1. 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
  3. 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
    1. G_33
       
      j'ai modifié ma précédente réponse
      0
  4. 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
    1. 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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. 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
    1. 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
  7. 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