XL 2013 fiche technique + mercuriale cuisine

Dylan

XLDnaute Nouveau
Bonjour, je suis actuellement en train d'essayer de réaliser une fiche technique interactive pour nos amis cuisinier qu'ils puissent estimer les coups d'un plats.
Mais pour cela il faut rechercher dans un documents appelé mercuriale qui référence tous les prix des denrées en cuisine
IMG_5745.JPG
et intégrer ce prix sur la fiche technique de fabrication sur exel mais ce travail est long et fastidieux.
J'aimerais donc que de mamiére automatique lorsque je rentre le nom d'un produit en B16 exel trouve le nom du produit sur la feuille 2 et qu'il inscrive son prix qui se trouve dans la colone à coté du nom du produits (feuille 2)
IMG_5744.JPG
. Et ce prix j'aimerais qu'il s'affiche dans la cellule J16.

Merci d'avance
 

Positive37

XLDnaute Nouveau
Ça, (Fiche technique interactive En cours Amélioration.xlsm ) c'est ce que j'ai trouvé un peu plus haut, dans ton message du 13 aout dernier. J'ai créé 2 autres feuilles "fiches techniques", et c'est super que ça soit "vierge", je veux justement le remplir avec mes données, mais c'est en anglais

L'autre , est en français, très bien, j'y ai rajouté une feuille 'fiche technique 2", et j'ai mis ton code, mais ça ne fonctionne pas sur toute la feuille, les cases B16 à B18 ne fonctionnent pas, contrairement aux suivantes.

J'espère que c'est plus clair comme ça...
merci de ton aide
Crystèle
 

Pièces jointes

  • Fiche technique interactive En cours Amélioration.xlsm
    109.3 KB · Affichages: 14
  • Fiche technique interactive - Mercuriale (FR).xlsm
    58.6 KB · Affichages: 13

jcf6464

XLDnaute Occasionnel
Bonjour Positive, chti et le forum

chti ta donné la solution la fiche technique marche avec la mercuriale en post22 + rajouter bout de code dans fiche technique pour l'actualisation des prix dans la fiche à l'ouverture de celle-ci

a+ jc
 

Positive37

XLDnaute Nouveau
Effectivement, ça marche, mais le fichier est en anglais, et je ne parle pas anglais.
J'ai testé la ligne de code sur un autre fichier en français, j'y ai rajouté une feuille 'fiche technique 2", mais ça ne fonctionne pas sur toute la feuille, les cases B16 à B18 ne fonctionnent pas, contrairement aux suivantes.
C'est ça que Chti a dit regarder "demain"
 

Pièces jointes

  • Fiche technique interactive - Mercuriale (FR).xlsm
    58.7 KB · Affichages: 15

Positive37

XLDnaute Nouveau
tu veux parler des colonnes 1 à 5 de denrées, qui sont dans les colonnes D à H ?
Elles sont utiles, parce qu'une même denrée par exemple du beurre peut être utilisée plusieurs fois dans une recette (dans une pate à tarte, dans la crème que l'on va poser dessus... donc oui, elles sont utiles.
 

ChTi160

XLDnaute Barbatruc
Bonjour Positive37
Bonjour le Fil ,le Forum
je vois que cela avance !
Dans un premier temps ,j'ai une réponse pour ce qui est de ta demande du Post #37
cases B16 à B18 ne fonctionnent pas
Normal car dans la procédure de la Deuxième feuille #29 , j'ai mis
VB:
Range ("b19:b50")
Au lieu de B16. Excuses !
à voir !
Ensuite si l'on veut pouvoir utiliser plusieurs "Fiches Techniques"
Première possibilité.
Insérer les procédures dans Chaque feuilles
soit
VB:
Private Sub Worksheet_Activate()
FromFichTech = False
End Sub
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("b16:b50")) Is Nothing Then
FromFichTech = True
Sheets("Mercuriale").Activate
MsgBox "Double-cliquez sur le produit à placer sur la fiche technique.", vbInformation
End If
End Sub
ou alors travailler avec la Procédure
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Soit
J’ai déclaré dans le Module standard
"Module 1"
Les variables suivantes :
VB:
Option Explicit
Public FromFichTech As Boolean
Public ShtName As String
Public RngCible As Range
Public RngSource As Range
Public ShCible As Worksheet
Public ShSource As Worksheet
Puis dans le module du Classeur "ThisWorkbook"
VB:
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
           ShtName = Sh.Name
   FromFichTech = False 'On met a False
               Cancel = False 'evite la selection de la Cellule
With Sh 'Avec la feuille
 'Si feuille "technique" et cellule dans la Plage "B16:B50"
 If ShtName Like "Fiche technique*" And Not Intersect(Target, .Range("b16:b50")) Is Nothing Then
     Set ShCible = Sh 'On récupére la Feuille "Fiche technique"
    FromFichTech = True 'On met a true
    Set RngCible = Target 'On récupére
         Sheets("Mercuriale").Activate
         MsgBox "Double-cliquez sur le produit à placer sur la fiche technique.", vbInformation
   ElseIf Sh.Name = "Mercuriale" Then 'Si feuille "Mercuriale"
     If FromFichTech Or Not IsNumeric(Target.Offset(, 2)) Then Exit Sub 'Si pas de selection dans une feulle Cible"Fiche technique"
           Set ShSource = Sh 'On récupére la Feuille "Mercuriale"
          Set RngSource = Target 'On récupére
         RngCible.Value = RngSource.Value 'On colle la valeur dans la cellule de la feuille Cible
         RngCible.Offset(, 1).Value = RngSource.Offset(, 1).Value 'Idem
         RngCible.Offset(, 8).Value = RngSource.Offset(, 2).Value 'Idem
         ShCible.Activate 'retour a la feuille "Fiche technique x
         FromFichTech = False 'On met a False
 End If
End With
Cancel = True 'On réinitialise
End Sub
voir le fichier
jean marie
 

Pièces jointes

  • Fiche technique interactive - Mercuriale-Chti160-2.xlsm
    62.9 KB · Affichages: 21

Positive37

XLDnaute Nouveau
Merci beaucoup Jean Marie!
Je crois que je vais m'en tenir à ajouter le code sur chaque nouvelle fiche que je vais créer, parce que je n'ai rien compris à la 2ème possibilité, mon niveau est tout à fait insuffisant... . j'imagine que c'est évident pour la plupart des gens qui viennent sur ce forum, je me sens très limitée... Sauf s'il y a une explication simple à ces procédures et modules :-\
 

ChTi160

XLDnaute Barbatruc
Re
c'est très simple
la procédure "
Workbook_SheetBeforeDoubleClick
veut dire avant Double Click dans une feuille du Classeur
Donc détecte un Double Clic quelque soit la feuille du Classeur ou il se produit.
et
Worksheet_BeforeDoubleClick
veut dire avant Double Click dans la seule Feuille concernée
Donc le but , c'est de faire le distinguo entre les feuilles ou vont se produire les Double Click
Des feuilles Cible "Fiche technique x" et la feuille Source "Mercuriale"
une procédure pour x feuilles "Fiche technique"
mais bon ! tu vois .
n'hésite pas ,si besoin d'autres explications
jean marie