Incompatibilité de type sur une boucle

Résolu
gino0068 Messages postés 3 Statut Membre -  
gino0068 Messages postés 3 Statut Membre -
Bonjour,
n'étant pas As de la programmation, je bute sur une boucle avec une erreur d'exécution '13' : incompatibilité de type sur la ligne ValEuro = ValEuro + Qn * Pn
depuis des heures
ci-dessous un extrait de la macro :

Sub ()
...
Dim Pi As Variant, Qi As Variant
ValEuro = 0
For i = 1 To 25
With Sheets("Feuil1").Cells(16 + i, 5)
Qn = Cells(16 + i, 5).Value
Pn = Cells(16 + i, 5).Offset(0, 1).Value
ValEuro = ValEuro + Qn * Pn
Mtant_B = ValEuro * (655957 / 1000)
Mtant_R = Mtant_B - Mtant_H
End With
Next i
...
End sub

Merci d'avance pour aide.

2 réponses

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour,

    sans voir le classeur...
    0
  2. gino0068 Messages postés 3 Statut Membre
     
    Merci pour ton intérêt michel_m.
    Je viens de trouver la solution avec une formule conditionnelle :
    En fait Qn allait au bout de la boucle à la ligne 25 alors que Pn s'arrêtait à la dernière ligne non vide. il fallait arrêter la récursivité des 2 variables sur la même ligne.

    Sub ()
    ...
    Dim Pn As Variant, Qn As Variant
    ValEuro = 0
    For i = 1 To 25
    If Cells(16 + i, 5).Value <> 0 Or Cells(16 + i, 5).Value <> "" Then
    Qn = Cells(16 + i, 5).Value
    Pn = Cells(16 + i, 5).Offset(0, 1).Value
    ValEuro = ValEuro + Qn * Pn
    Mtant_B = ValEuro * (655957 / 1000)
    Mtant_R = Mtant_B - Mtant_H
    Else: End If
    Next i
    ...
    End sub

    Merci encore
    0