Bonjour,

Je cherche à créer des outils facilitant pour notre préparatoire dans la pharmacie où je travaille.

Feuille "Formulaire PO" : Je souhaite faire apparaître la composition d'une préparation lorsqu'on sélectionne la préparation dans une liste (valeur en F7). J'ai un tableau avec les numéro d'ingrédient en colonne C (1 à 15), sachant que le nombre d'ingrédient est variable selon la préparation.
Feuille "Liste PO" : j'ai mis les compositions des préparations avec une clé d'identification sous forme "Nom de la prep_n" etc. pour chaque ingrédient (".._1" pour l'ingrédient numéro 1, ".._2" pour l'ingrédient numéro 2 etc)

J'arrive à le faire pour la première ligne mais je voudrais faire en sorte simplement que la totalité des lignes de ma composition apparaissent dans mon tableau (sans avoir à copier le code pour les 15 lignes potentielles).
Je ne sais pas si je suis très claire...

Voici le code que j'utilise pour le moment : (j"ai fait des essais de variable avec "Nb" mais je ne suis pas allée au bout)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 
Sub Enregistrement_PO()
 
ligne = Sheets("Liste PO").Range("B2").End(xlDown).Row
Dim Liste_PO As Range 'plage de recherche
    Set Liste_PO = Sheets("Liste PO").Range("A2:H" & ligne)
Dim Compo_PO As Range 'plage dans laquelle inscrire le résultat
    Set Compo_PO = Sheets("Formulaire PO").Range("E51:L65")
Dim Denomin_PO As Variant 'valeur recherchée
    Denomin_PO = Sheets("Formulaire PO").Range("F7").Value
Dim Compo As Range 'résultat de la recherche
 
Dim Nb As Integer 'définit la ligne concernée à partir de E51
    Nb = Range("C51").Value
Set Compo = Liste_PO.Find(what:=Denomin_PO & "_" & Sheets("Formulaire PO").Range("C51"), LookIn:=xlValues, LookAt:=xlWhole)
If Not Compo Is Nothing Then
    Sheets("Formulaire PO").Range("E51").Value = Compo.Offset(ColumnOffset:=3).Value
    Sheets("Formulaire PO").Range("F51").Value = Compo.Offset(ColumnOffset:=4).Value
    Sheets("Formulaire PO").Range("H51").Value = Compo.Offset(ColumnOffset:=5).Value
    Sheets("Formulaire PO").Range("J51").Value = Compo.Offset(ColumnOffset:=6).Value
    Sheets("Formulaire PO").Range("K51").Value = Compo.Offset(ColumnOffset:=7).Value
    Sheets("Formulaire PO").Range("L51").Value = Compo.Offset(ColumnOffset:=8).Value
 
Else
        Sheets("Formulaire PO").Range("E51").Value = "Erreur"
End If
 
End Sub
Merci pour votre aide je suis en train de m'arracher les cheveux et les yeux