Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Problème Erreur 2042

yakutake83

XLDnaute Occasionnel
Bonjour à tous!

J'ai un problème dans une macro que j'utilise, je me retrouve avec une de mes variables qui prend la valeur "Erreur 2042"... je vous mets ci dessous mon code, en espérant que vous trouverez le problème!


Le problème se situe sur la variable Variato et c'est elle qui renvoie parfois l'erreur 2042! Elle peut prendre des valeurs numériques (ce qui est le mieux pour moi) ou bien des valeurs de texte (ce qui me dérange)! Lorsque ça prend une valeur non numérique, je veux que Exo renvoie Soprano; et lorsqu'il y a une valeur numérique, je veux que Exo renvoie la formule Soprano * (1 + Variato)!
J'ai donc créé une variable supplémentaire, Alto, qui est un nombre de type Single et qui prend la valeur numérique de Variato!

Comme on peut le remarquer, dans les valeurs que peut prendre Variato, il y a "#N/A", et je pense que c'est là mon problème, car il semble que, lorsque la macro rencontre la valeur "#N/A", il se déclenche une erreur... tout du moins, quand j'arrive à une erreur et que je survole les variables sur la ligne qui bloque, je vois marqué
Variato = "Erreur 2042"

Comment faire pour contrer cette erreur, sachant que je ne peux pas modifier mon fichier de base où se trouvent les valeurs?

Merci d'avance pour votre aide!
 
Dernière édition:

Toine

XLDnaute Occasionnel
Re : Problème Erreur 2042

bonjour
a mon avis sa vien de
Variato = CStr(Worksheets("RCE").Cells(Maligne, ColVariato))
tu veux faire quoi avec cette ligne ???
o vue de ce que me dit l'aide sa sert pas a grand chose ici je pense
Variato = Worksheets("RCE").Cells(Maligne, ColVariato)
parait sufisant
 
Dernière édition:

Catrice

XLDnaute Barbatruc
Re : Problème Erreur 2042

Bonjour,

comme tu le précises, Variato peut prendre la valeur #NA car la cellule calculée par Variato = CStr(Worksheets("RCE").Cells(Maligne, ColVariato)) contient #NA.
Il faut juste que tu testes la cellule qui peut contenir #NA et affecter une autre valeur à Variato ou faire un autre traitment le cas échéant.

Par exemple :
Variato = Worksheets("RCE").Cells(Maligne, ColVariato)
If Application.IsError(Variato) Then Variato = X Else Variato = CStr(Variato) 'X à définir

ou
If Application.IsNA(Variato) Then Variato = X Else Variato = CStr(Variato) 'X à définir

ou
If IsError(Variato.value) Then Variato = X Else Variato = CStr(Variato) 'X à définir
 
Dernière édition:

yakutake83

XLDnaute Occasionnel
Re : Problème Erreur 2042

bon, bin c'est extra, le problème est résolu! merci à vous deux

juste un truc : j'ai du changer le type de Variato pour un Variant au lieu d'un String (je signale, ça peut servir à quelqu'un d'autre)
 

Discussions similaires

Réponses
6
Affichages
248
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…