Remplir les cellules d'une colonne en fonction de 2 critères

Bonjour à tous,

J'ai un problème pour faire une macro qui ferait une recherche multicrière dans un onglet précis.

Je vais essayer d'etre clair:

J'ai une liste de champs dans un onglet:

Type d'emballage (colonne B)

Classe d'emballage (colonne AB)

Je souhaite, grace a une macro, mettre dans ma colonne AC le prix d'emballage, qui correspond aux deux critères précédents (pour un certain type donné, pour une classe donné, correspond un prix), information disponible dans l'onglet "prix"

J'essaye avec Vlookup mais je patauge....

Voila mon fichier simplifié:

https://www.excel-pratique.com/~files/doc/recherche_ver.xls

Merci d'avance pour votre aide!

Edit, message annulé

Bonjour

avec Index/Equi, tu devrais trouver ton bonheur

Cependant, dans le tableau des prix, il faut que les Types soient les mêmes (E422)

la formule dans la cellule AC2

=INDEX(prix!$D$4:$E$12;EQUIV(Feuil2!AB2;prix!$A$4:$A$12;0);EQUIV(Feuil2!B2;prix!$D$3:$E$3;0))

ton fichier :

https://www.excel-pratique.com/~files/doc/recherche_ver_v1.zip

Rebonjour,

Dabord, merci pour cette réponse rapide!

En fait je cherche à mettre cette formule dans une macro, pour justement, ne pas devoir la retaper à chaque fois; En fait, c'est un fichier de reporting, qui sera utilisé tous les mois par des gens qui ne savent pas vraiment utiliser les formules excel.

J'ai déjà un bout de macro qui me permet de supprimer les lignes vides, et de remplir les cellules vides, donc j'aimerais pouvoir rajouter le champ du prix de manière automatique dans ma macro!

Merci pour votre aide!

Re-,

le fichier avec la macro

Je détermines toutes les zones nommées (pour les voir, tu fais insertion/Nom/Définir)

La zone "base" qui comprend tous les prix

La zone "type" qui comprend les types (à partir de D3 jusqu'à la dernière colonne remplie de la ligne 3

et la zone "classe", qui comprend les classes de A4 à la dernière ligne remplie de la colonne A

Puis la même fonction que j'ai mis dans le précédent classeur, mais en VBA

Le code :

Sub prix()
Dim cel As Range
With Sheets("prix")
    .Range("A4:A" & .[A65000].End(xlUp).Row).Name = "classe"
    .Range(.Cells(3, 4), .Cells(3, .[IV3].End(xlToLeft).Column)).Name = "type"
    .Range(.Cells(4, 4), .Cells(.[A65000].End(xlUp).Row, .[IV3].End(xlToLeft).Column)).Name = "base"
End With
With Sheets("Feuil2")
    For Each cel In .Range("B2:B" & .[B65000].End(xlUp).Row)
        If Not IsEmpty(cel) Then _
            .Cells(cel.Row, "AC").Value = Application.Index([base], Application.Match(.Cells(cel.Row, "AB"), [classe], 0), Application.Match(cel, [Type], 0))
    Next cel
End With
End Sub

Le fichier (appuie sur le petit rectangle jaune dans la cellule A1

https://www.excel-pratique.com/~files/doc/recherche_ver_v2.zip

Nota, attention, comme dit dans mon précédent post, les classes et les types doivent être exactement les mêmes (E422 et non pas 422)

Bonjour,

Désolé pour cette réponse si tardive... (c'était même pas à cause du pont du 1er mai )

Bref.

Merci Felix pour cette Macro qui fonctionne a merveille!

Par contre, j'ai juste un petit souci: J'aimerais pouvoir éxécuter cette macro sur diverses feuilles (indépendamment l'une de l'autre); jusque maintenant, je faisais fonctionner ma macro sur l'onglet actif.

J'ai essayé (comme un novice que je suis) de simplement supprimer le

With Sheets ("Feuil2") ../... End With

Mais ça n'a pas l'air de fonctionner... Quelqu'un peut m'aider??? Merci beaucoup!

Bonjour,

Si je comprends bien, remplace les lignes :

With Sheets("prix")
With Sheets("Feuil2")

par :

With ActiveSheet

A tester si c'est bien cela que tu veux, car la macro initiale fait les manipulations sur les deux feuilles(prix et Feuil2) alors que après modifications, elle les effectuera sur la feuille active.

Cdlt,

(Re)Bonjour,

Merci beaucoup, c'est parfait! En fait je nne remplace que

With Sheets ("Feuil2") 

par

 With ActiveSheet

Et la, je dois dire que c'est presque magique

Merci à tous!

Rechercher des sujets similaires à "remplir colonne fonction criteres"