Bonsoir,
Voici une fonction personnalisée qui fait ce que tu demandes. Code à coller dans un module "Standart" (Module1) :
DefBool Y
Function XYZ(x As Range, y As Range, z As Range)
Var$ = ""
Y1 = z = "épaisseur" Or z = "hauteur"
Y2 = x = "longueur" And y = "largeur" And Y1
Y3 = z = "volume"
Y4 = Y2 Or Y3
Y5 = z = "largeur" Or z = "épaisseur" Or z = "hauteur"
Y6 = y = "longueur" Or y = "largeur"
Y7 = Y5 And Y6
Y8 = Y7 Or z = "surface"
Y9 = z = "longueur" Or z = "HO" Or z = "DO" Or z = "R" Or z = "largeur"
Y10 = z = "nombre" And y <> ""
Y11 = z = "nombre" And y = ""
Y12 = z = "ratios d'acier S"
Y13 = z = "ratios d'acier V"
Y14 = z = "poids"
Y0 = Y4 Or Y8 Or Y9 Or Y10 Or Y11 Or Y12 Or Y13 Or Y14
If Y0 = True Then
Select Case Y0
Case Y4: Var = "m3"
Case Y8: Var = "m2"
Case Y9: Var = "ML"
Case Y10: Var = H4
Case Y11: Var = "U"
Case Y12: Var = "kg/m2"
Case Y13: Var = "kg/m3"
Case Y14: Var = "kg"
End Select
End If
XYZ = Var
End Function
En H4 Ecrire :
=XYZ(F3;F4;F5)Euh... Tu vas surement être déçu car le résultat ne correspond surement pas à ton attente, cependant je ne pense pas pas avoir commis d'erreur de transcription.
Important : Le module ne doit pas comporter la mention Option Explicit en tête.
A+