Fonction IsError()

Résolu/Fermé
Stikmou - 28 août 2014 à 09:10
 Stikmou - 28 août 2014 à 11:09
Bonjour,

J'ai des problèmes avec la fonction IsError(), auparavant je disposais d'une formule excel contenant ESTERREUR() et j'ai voulu la transformer en macro en utilisant IsError().
Dans la fonction j'exécute un calcul et j'aimerais que quand celui-ci ne peut pas se faire il ne se fasse pas pour qu'il n'y est pas d'erreur mais l'erreur se produit sur la fonction avec ce message : Erreur d'exécution 13 : incompatibilité de type.

If IsError(Worksheets("PIECES USINEES").Cells(i, 9).Value * Worksheets("PIECES USINEES").Cells(i, 10).Value * Worksheets("PIECES USINEES").Cells(i, 11).Value / 1000000000 * PoidsMatiere) = True Then
Worksheets("PIECES USINEES").Cells(i, 12).Value = "Données incorrectes"
Else
Worksheets("PIECES USINEES").Cells(i, 12).Value = Worksheets("PIECES USINEES").Cells(i, 9).Value * Worksheets("PIECES USINEES").Cells(i, 10).Value * Worksheets("PIECES USINEES").Cells(i, 11).Value / 1000000000 * PoidsMatiere
End If

Pouvez-vous m'aider ?

5 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 310
Modifié par michel_m le 28/08/2014 à 09:30
Bonjour,

J'aurais plutôt écris ceci:
 Option Explicit
'-------
Sub xxxx()
Dim Poidsmatiere As Double

With Worksheets("PIECES USINEES")
On Error GoTo erreur
.Cells(i, 12) = .Cells(i, 9) * .Cells(i, 10) * .Cells(i, 11) / 1000000000 * Poidsmatiere
End With
Exit Sub

'gestion erreurs
erreur:
.Cells(i, 12) = "Données incorrectes"
End With
End Sub

Michel
1
J'ai testé ta macro et chose incompréhensible, ma fonction réalisant ce calcul est une boucle, la première fois qu'il tombe sur une erreur il écrit bien données incorrectes et tout va bien et la deuxième fois (sur un autre calcul avec une erreur) : incompatibilité de type !!!
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 750
28 août 2014 à 10:41
Bonjour,

Salut Michel,

Désolé pour l'incruste...

La procédure donnée par Michel n'est pas en cause. Je suppose qu'il s'agit d'une erreur dans le format des données de la feuille. Il suffit que l'une des trois valeurs contenues dans : .Cells(i, 9), .Cells(i, 10), .Cells(i, 11) ne soit pas numérique, ou que tu tentes de stocker, dans Poidsmatiere, autre chose qu'une valeur numérique et ça plante...
0
Je sais que certaines de mes valeurs ne sont pas numériques c'est pour ça que je veux qu'il écrive données incorrectes quand ce cas se produit
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 750
28 août 2014 à 10:45
Donnes nous ton code avec boucle stp?
0