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

XL 2016 Fonction formula, ESTNA et messages d'erreurs

BARNS

XLDnaute Junior
Bonjour,

Je dois m'approprier un fichier (Configuration canon) pour faire quelques modifications (Configuration_nv). En créant ce dernier fichier je n'ai pas réussi a retranscrire toute les fonctionnalités : notamment les messages d'erreurs, par exemple avec la combinaison suivante arroseur c, buse 19.1, pression 4 je devrais avoir un message d'erreur comme sur le fichier "configurateur" que je n'ai pas.

Donc j'ai compris le fonctionnement générale du fichier mais une certaine partie du code ne m'est pas très claire :

"surpression = Range("B50").Value
Worksheets("Pivot").Range("C14").Formula = surpression"

Même avec l'aide d'excel je ne comprends pas la fonction "formula".

Celui qui a crée le fichier originel a un peu fait le cochon en cachant des formules sur le tableur je les ai mises en jaune puisqu'elles interviennent dans le calcul de la pression et dans les messages d'erreurs. D'ailleurs cette partie là m'est totalement obscure puisque certaines fonctions renvoient à une case vide et je ne comprends pas non plus la fonction "ESTNA".

Pour votre compréhension ce sont des calculs hydrauliques, j'ai supprimé toute les données confidentielles/inutiles comme stipulé dans la charte.

Voilà je suis désolé j'ai vraiment pas l'habitude d'utiliser les forums puisqu'on peut tout apprendre avec les tutos mais là je ne connais pas le chemin de réflexion de l'auteur du fichier et je ne suis pas assez bon en excel pour le saisir, avant de poster j'ai déjà chercher pendant plusieurs heures.

Merci!
 

Pièces jointes

  • Configuration canon.xlsm
    52.1 KB · Affichages: 11
  • Configuration_nv.xlsm
    55.4 KB · Affichages: 5

Nairolf

XLDnaute Accro
Salut,

Tu n'as pas adapté une partie du code :
VB:
If Range("B8").Value
Devrait être :
VB:
If Range("C13").Value
Même avec l'aide d'excel je ne comprends pas la fonction "formula".
Ici, ça ne sert à rien (ça sert à écrire une formule dans la cellule via vba), tu pourrais même l'enlever et ça fonctionnerait.
je ne comprends pas non plus la fonction "ESTNA".
C'est lié à des bouts de codes :
Code:
Range("A32").Formula = Range("B27").Value
VB:
If Range("B8").Value = 2 Then If Range("B32").Value = 1 Then Range("B9").Value = "#N/A": MsgBox "Fonctionnement du canon hors recommandations du fabricant.", vbOKOnly Else If Range("A32").Value < 10.8 Then Range("B9").Value = "#N/A": MsgBox "Surpresseur non adapté: débit trop faible." Else If Range("A32").Value > 28.8 Then Range("B9").Value = "#N/A": MsgBox "Surpresseur non adapté: débit trop élevé."

Je comprends que tu ais du mal à t'y retrouver car le code n'est pas écrit pour être très lisible.
 

BARNS

XLDnaute Junior
Tout d'abord un grand merci pour ton retour rapide!

Après avoir fait toutes les modifications que tu m'as suggérées je rencontre un message d'erreur pour certaines combinaisons "erreur d'exécution '13': Incompatibilité de type" et sur le code quand on passe la souris on peut voir "erreur 2042". Et puis comme je ne comprends pas comment fonctionne cette partie de code je ne sais pas ce que je dois modifier.
ou est le calcul de A32? Comment Range("A32").Value < 10.8 puisque A32 n'a aucune formule?

Je continue a fouiller sur les forums
 

Pièces jointes

  • Configuration canon.xlsm
    52.1 KB · Affichages: 5
  • Configuration_nv.xlsm
    55.4 KB · Affichages: 4

Nairolf

XLDnaute Accro
Salut,

Je regarde tes nouveaux fichiers, en attendant voici la réponse à
ou est le calcul de A32? Comment Range("A32").Value < 10.8 puisque A32 n'a aucune formule?

En fait la valeur en A32 est générée par le code vba avec la ligne de commande :
VB:
Range("A32").Formula = Range("B27").Value

Son contenu est effacé ensuite avec le code suivant :
VB:
Range("A32").Select
Selection.ClearContents
 

Nairolf

XLDnaute Accro
En reformalisant une partie du code que tu as modifié dans ton fichier :
VB:
If Range("C13").Value = 3 Then
    If Range("B32").Value = 1 Then
        Range("C14").Value = "#N/A"
        MsgBox "Fonctionnement du canon hors recommandations du fabricant.", vbOKOnly
    ElseIf Range("B51").Value < 18 Then
        Range("C14").Value = "#N/A"
        MsgBox "Surpresseur non adapté: débit trop faible."
    ElseIf Range("B51").Value > 61.2 Then
        Range("C14").Value = "#N/A"
        MsgBox "Surpresseur non adapté: débit trop élevé."
    End If
End If
on voit bien que tu n'as pas tout mis à jour, "B32" devrait être "C51" dans ton nouveau fichier.
Donc vérifie qu'il n'y a pas d'autres cas (ctrl+F fonctionne aussi dans le code vba).
 

BARNS

XLDnaute Junior
Oui désolé je me suis planté dans un enregistrement je t'avais renvoyé un ancien fichier, je pensais être tiré d'affaire en ignorant les erreurs mais elles réapparaissent après réouverture... je crois que je vais devoir refaire depuis 0 cette partie pour la comprendre.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…