Bonjour à tous,
Je suis débutant en vba et rencontre déjà mes premiers blocages.
Je souhaite créer une fonction assez simple de calcul dans laquelle j'ai besoin de rechercher la position d'une cellule (en fait d'une colonne) pour lui prendre ça valeur.
Cette recherche dépend d'au moins 3 critères. Imaginer un tableau avec 3 en-têtes (catégorie, sous-catégorie, sous-sous catégorie). En fouillant sur différents forum j'ai trouver la technique du:
Evaluate("match(1,(PlageDonneeCategorie=""critere1"")*(PlageDonneeSousCategorie=""critere2""),0)") qui fonctionne très bien quand est inclu dans la procédure la critere1 et critere2.
Par contre lorsque l'on cree une fonction ça ne marche plus du tout:
Function Etat(PlageDonneeCategorie As Range, PlageDonneeSousCategorie As Range, critere1, critere2)
Dim MyVar As Double
MyVar = Evaluate("Application.WorksheetFunction.Match(1,(PlageDonneeCategorie=critere1)*(PlageDonneeSousCategorie=critere2),0)")
Etat=MyVar
End Function
Les plages de données sont déjà définies dans la feuille Excel. Critere1 et 2 corresponde à des cellules sont tu texte dans des cellules (par exemple F1 et F2). J'ai l'impression qu'il ne comprend pas ce que sont critere1 et 2. Je ne sais pas comment les définir.
Si quelqu'un à une idée, merci d'avance,
Tibo
Je suis débutant en vba et rencontre déjà mes premiers blocages.
Je souhaite créer une fonction assez simple de calcul dans laquelle j'ai besoin de rechercher la position d'une cellule (en fait d'une colonne) pour lui prendre ça valeur.
Cette recherche dépend d'au moins 3 critères. Imaginer un tableau avec 3 en-têtes (catégorie, sous-catégorie, sous-sous catégorie). En fouillant sur différents forum j'ai trouver la technique du:
Evaluate("match(1,(PlageDonneeCategorie=""critere1"")*(PlageDonneeSousCategorie=""critere2""),0)") qui fonctionne très bien quand est inclu dans la procédure la critere1 et critere2.
Par contre lorsque l'on cree une fonction ça ne marche plus du tout:
Function Etat(PlageDonneeCategorie As Range, PlageDonneeSousCategorie As Range, critere1, critere2)
Dim MyVar As Double
MyVar = Evaluate("Application.WorksheetFunction.Match(1,(PlageDonneeCategorie=critere1)*(PlageDonneeSousCategorie=critere2),0)")
Etat=MyVar
End Function
Les plages de données sont déjà définies dans la feuille Excel. Critere1 et 2 corresponde à des cellules sont tu texte dans des cellules (par exemple F1 et F2). J'ai l'impression qu'il ne comprend pas ce que sont critere1 et 2. Je ne sais pas comment les définir.
Si quelqu'un à une idée, merci d'avance,
Tibo