Liste déroulante saisie semi automatique
Bonjour,
Merci par avance pour votre aide! Je suis débutant en Excel.
Je travaille sur un classeur comprenant des recettes de cuisine et une base de données d'ingrédients.
J'aimerais faciliter la saisie en créant une liste déroulante à saisie semi automatique dans chaque ligne d'une recette pour permettre de saisir plus vite les noms des ingrédients et surtout d'avoir les mêmes noms ds tt le classeur.
Pour permettre de gagner du temps, j'aimerais également lier la base aux recettes. Ainsi, en saisissant le nom d'un nouvel aliment (en A) dans la recette, la colonne unité (en C) et prix unitaire (en D) se mette à jour automatiquement en prenant en compte les données (unité et prix unitaire) du nouvel aliment dans la base ingrédient.
Est-ce possible??
J'espère ne pas être trop brouillon..!
Vous trouverez ci-joint un extrait du doc.
Un grand merci!
Edouard
Bonsoir,
J'ai fait une petite liste qui peut être facilement amélioré, notamment l'ordre des ingrédients. Mais je pense que c'est déjà un début :
Option Explicit
Private Sub CBOk_Click()
If ActiveCell.Column = 1 And CoBIngr.ListIndex > -1 Then
ActiveCell = CoBIngr.List(CoBIngr.ListIndex, 0)
ActiveCell.Offset(0, 2) = CoBIngr.List(CoBIngr.ListIndex, 1)
ActiveCell.Offset(0, 3).Value = CDbl(CoBIngr.List(CoBIngr.ListIndex, 2))
End If
End Sub
Private Sub UserForm_Initialize()
Dim lLig As Long
With ThisWorkbook.Worksheets("Base Ingrédients")
For lLig = 2 To .UsedRange.Rows.Count
If Not .Cells(lLig, 2) = Empty Then
CoBIngr.AddItem .Cells(lLig, 2)
CoBIngr.List(CoBIngr.ListCount - 1, 1) = .Cells(lLig, 3).Value
CoBIngr.List(CoBIngr.ListCount - 1, 2) = .Cells(lLig, 5).Value
End If
Next lLig
End With
End SubIl faut commencer par afficher la liste (bouton en Recette 1) et il faut que la cellule active soit dans la colonne A.
A+
Benead
A+
Benead
Bonsoir Benead,
Un grand merci!
C'est un début mais c'est déjà beaucoup!
N'étant pas familier avec les macros, je vais pouvoir me pencher dessus et apprendre!
A bientôt!