Incompatibilité de type sur une boucle

Résolu/Fermé
gino0068 Messages postés 3 Date d'inscription vendredi 6 mai 2016 Statut Membre Dernière intervention 7 mai 2016 - 7 mai 2016 à 00:15
gino0068 Messages postés 3 Date d'inscription vendredi 6 mai 2016 Statut Membre Dernière intervention 7 mai 2016 - 7 mai 2016 à 23:18
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.


A voir également:

2 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
7 mai 2016 à 08:16
Bonjour,

sans voir le classeur...
0
gino0068 Messages postés 3 Date d'inscription vendredi 6 mai 2016 Statut Membre Dernière intervention 7 mai 2016
7 mai 2016 à 23:18
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