XL 2013 Problème liaison de listes

YouRiTmiX

XLDnaute Nouveau
Bonjour à tous,

J'ai une problématique probablement simpliste pour un connaisseur d'excel mais qui me bloque.

J'ai un tableau qui regroupe les coûts de fabrication des produits => http://www.partage-fichiers.com/upload/mabq81qy/

Dans le dernier onglet bénéfice j'aimerais faire en sort d'avoir une liste déroulante contenant tous les produits sur tous les onglets (c'est à dire les buns, bandeau, modulables et plissés) et qu'en face une fois le tissu sélectionné le prix de fabrication renseigné sur les tableaux s'affiche (je ne sais pas si c'est très clair ^^).

Il me semble que c'est une formule avec si et recherchev mais impossible d'y arriver.
 

job75

XLDnaute Barbatruc
Bonjour YouRiTmix,

Il suffit de reconstituer, par copier-coller (comme j'ai fait) ou par formules, la liste des tissus et de leurs coûts, en colonne J:K de la feuille "Bénéfice".

Fichier joint.

A+
 

Pièces jointes

  • CALCULS_DES_COUTS_ET_BENEFICES(1).xlsx
    26.6 KB · Affichages: 55

YouRiTmiX

XLDnaute Nouveau
D'accord en regroupant tout on obtient ça parfait, merci beaucoup !

Simple question par rapport à la formule à partir de quoi complète-t'on le champs valeur proche ?

Puisque je suppose que la variable no_index_col se complète par rapport à la table_matrice ?
 

YouRiTmiX

XLDnaute Nouveau
Ben j'avoue ne pas tout comprendre à la formule, enfin plus précisément les deux dernières valeurs je ne comprends pas exactement sur quoi elles sont basées (même si j'arrive à déduire que no_index_col est basée sur la table_matrice je suppose).
 

job75

XLDnaute Barbatruc
Bonjour YouRiTmix, le forum,

Voici une solution VBA avec cette macro à placer dans le code de la feuille "Bénéfice" :
Code:
Private Sub Worksheet_Activate()
Dim f As Object, d As Object, t, i&
Set f = Sheets(Array("Bun", "Modulable", "Plissé", "Bandeau")) 'feuilles sources
Set d = CreateObject("Scripting.Dictionary")
For Each f In f
  t = f.[A3].CurrentRegion.Resize(, 5).Value2 '.Value2 nécessaire à cause du format monétaire
  For i = 2 To UBound(t)
    d(t(i, 1)) = t(i, 5)
Next i, f
With Sheets("Liste").[A1]
  .CurrentRegion.ClearContents 'RAZ
  If d.Count Then
    .Resize(d.Count) = Application.Transpose(d.keys)
    .Cells(1, 2).Resize(d.Count) = Application.Transpose(d.items)
  End If
  .CurrentRegion.Name = "Liste" 'plage nommée
End With
End Sub
Elle se lance quand on active la feuille.

La liste nommée Liste est créée dans la feuille "Liste" (à masquer).

Les modifications des feuilles sources sont répercutées automatiquement dans la liste.

Fichier .xlsm joint.

Bonne journée.
 

Pièces jointes

  • CALCULS_DES_COUTS_ET_BENEFICES - VBA(1).xlsm
    36.2 KB · Affichages: 29

Statistiques des forums

Discussions
312 196
Messages
2 086 098
Membres
103 116
dernier inscrit
kutobi87