VBA Recherche a 3 paramètres

Bonjour ,

Je suis à la création d'une projet en VBA pour la gestion de stock , les produits ont comme paramètres N T , C , Q (Nom ,taille , coleur et quantité ).

à l ajout d'une nouvelle entrée il faut vérifier si notre produit existe avec les meme paramètres N, T et C dans ce cas il va juste ajouter la quantité , sinon il va le mettre dans un nouveau ligne comme un nouveau produit ,

la problème c'est la fonction dont je dois utiliser pour qu'il fais la rechercher d'une ligne selon 3 paramètres N,T,C

merci.

Bonjour Abbassi

Le plus simple je pense et le plus fiable est d'ajouter une colonne NTC avec agrégation des 3 éléments

Il suffira alors de vérifier la cellule de cette colonne

A+

bonjour,

C'est un tableau et excel>=2019 ?

Bonjour,

je vais essayer de te donner un exemple malgré l'absence de fichier.

La formule filtre peut aider pour les visualiser

= FILTRE (tableau; (tableau[Nom] = critereNom) * (tableau[Couleur]  = critereCouleur) * (tableau[critereTaille] = critereTaille);"pas trouvé")

Tu peux également compter à l'aide de la fonction NB.SI.ENS permettra de tester le nombre de champ remplissant tous les critères

L'exemple ci dessous renverra VRAI s'il y a au moins un produit répondant à 3 critères

=NB.SI.ENS(Tableau[CritereNom];CritereNom;Tableau[CritereCouleur];CritereCouleur;Tableau[CritereTaille];CritereTaille) > 0

Tu peux ensuite tester une cellule contenant une de ces formules par exemple

bonjour et merci pour vos réponses rapides ,

@BsAlv : je suis toujours avec Excel 2016 malheureusement ,

@bruno m45 : vraiment cette idée a disparue de ma mémoire malgré que j'en ai deja travaillé avec , donc merci .

@wonderAleph : je vais essayer avec l agrégation des paramètres sinon je vais essayer avec cette formule , je vous contacterai monsieur en cas j'avais besoin d aide avec cette formule merci pour votre aide .

re

Sub Recherche()
     nom = "A"
     taille = "B"
     couleur = "C"
     arr = Evaluate("=offset(tableau1,,,,1)&""|""&offset(tableau1,,1,,1)&""|""&offset(tableau1,,2,,1)")     'array avec les 3 columns combiné par un pipe
     r = Application.Match(Join(Array(nom, taille, couleur), "|"), arr, 0)     'cherche une combination dans cet array
     If IsNumeric(r) Then MsgBox "ligne " & r & " du tableau" Else MsgBox "no match"
End Sub
14recherche-abc.xlsb (22.21 Ko)
Rechercher des sujets similaires à "vba recherche parametres"