Liste déroulante saisie semi automatique

Pour toutes vos questions à propos d'Excel ...

Liste déroulante saisie semi automatique

Messagepar eedouard » 10 Nov 2011, 00:24

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
Recette-base ingrédient.xlsx
(19.26 Kio) Téléchargé 32 fois
eedouard
Nouveau venu
 
Messages: 2
Inscription: 10 Nov 2011, 00:07
Version Excel: 2007

Re: Liste déroulante saisie semi automatique

Messagepar Benead » 11 Nov 2011, 00:14

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 :

Code: Tout sélectionner
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 Sub
 


Il 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
Fichiers joints
Recette-base ingrédient.xlsm
(34.47 Kio) Téléchargé 51 fois
Dernière édition par Benead le 11 Nov 2011, 01:22, édité 1 fois.
Benead
Membre habitué
 
Messages: 97
Inscription: 15 Oct 2011, 13:11
Version Excel: 2007 FR

Re: Liste déroulante saisie semi automatique

Messagepar eedouard » 11 Nov 2011, 00:41

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!
eedouard
Nouveau venu
 
Messages: 2
Inscription: 10 Nov 2011, 00:07
Version Excel: 2007


Retourner vers Excel - VBA

 


  • Sujets similaires
    Réponses
    Vus
    Dernier message

Utilisateurs en ligne

Utilisateurs parcourant ce forum: Bing [Bot] et 3 invités