Macro de recherche dans une matrice

  • Initiateur de la discussion Initiateur de la discussion rodgeur80
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

rodgeur80

XLDnaute Nouveau
Bonjour,
J'ai un tableau (feuille "données") avec en tête de colonne des ingrédient et en tête de ligne des produits.
A l'intersection des colonne ligne se trouve le pourcentage de l'ingrédient dans le produit.

Dans la feuille "fiche recette"
Je souhaite à l'aide d'une macro, en choisissant dans la liste en K3 un produit, avoir la liste des ingrédient qui ont une valeur pour ce produit dans la colonne A et le pourcentage de ceux ci dans la colonne B

Ci joint le fichier
PS : le pourcentage des ingrédient ne sont pas renseigné

merci d'avance pour votre aide.
 

Pièces jointes

Re : Macro de recherche dans une matrice

Bonjour,

Voici une solution :

Appuyer sur la touche analyse aprés avoir sélectionné le type de produit


Merci camarchepas pour ton aide
J'ai légèrement modifié ton code pour pouvoir afficher tous les ingrédients qui ont une valeur mais je n'arrive pas à faire en sorte qu'il n'y ait pas de ligne vide dans le tableau final.
Aurais tu une solution stp?
 

Pièces jointes

Re : Macro de recherche dans une matrice

Salut rodgeur80, camarchepas, le Forum

Peut être comme cela

Option Explicit

Sub jj()
Dim ColMax As Long
Dim Valeur As Long
Dim Tourne As Long
Dim Trouve As Range
Dim Ligne As Long
Dim LigneVal
Dim DerLig As Long, i As Long
Worksheets("Fiche recette").Range("A7:B600").ClearContents
Worksheets("Fiche recette").Range("A3") = Worksheets("Fiche recette").Range("K3")
ColMax = Worksheets("Données").Range("AZ1").End(xlToLeft).Column
Set Trouve = Worksheets("Données").Range("A:A").Find(Worksheets("Fiche recette").Range("K3"), lookat:=xlWhole)
Ligne = Trouve.Row

For Tourne = 2 To ColMax
LigneVal = Tourne + 5 'voici la ligne modifier
If Worksheets("Données").Range("A" & Ligne).Offset(0, Tourne - 1) <> "" Then
Worksheets("Fiche recette").Range("A" & LigneVal) = Worksheets("Données").Range("A1").Offset(0, Tourne - 1)
Worksheets("Fiche recette").Range("B" & LigneVal) = Worksheets("Données").Range("A" & Ligne).Offset(0, Tourne - 1)
End If
Next Tourne
DerLig = Feuil1.Range("A" & Rows.Count).End(xlUp).Row
Application.ScreenUpdating = False
For i = DerLig To 7 Step -1
If Cells(i, 1) = "" Then Rows(i).EntireRow.Delete
Next i
Application.ScreenUpdating = True
End Sub

Bonne Journée
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
265
Réponses
4
Affichages
195
Réponses
4
Affichages
170
Retour