Copier automatiquement des champs suite à une validation en liste

guy974

XLDnaute Junior
Bonjour,

Je sollicite votre aide pour une boucle de code.

Dans le fichier joint, j’ai deux feuilles, la première (tableau de référence) qui liste tous les ingrédients pouvant être utilisés dans des recettes avec pour chacun des ingrédients la composition (lipide, glucide, vitamine,…..N.B. dans le fichier les compositions sont toutes factices).

Dans la deuxième feuille (saisie), l’utilisateur du fichier doit sélectionner dans la colonne ingrédients tous les ingrédients de sa recette (la validation en liste de l’ingrédient existe déjà).

Je souhaite qu’après la sélection de l’ingrédient une macro se lance automatiquement pour copier les valeurs renseignées pour la composition de l’ingrédient ( ces valeurs de référence sont dans la feuille « tableau de référence »)

Pour moi l’idéal serait que la boucle de code soit :

1/ Dès que l’ingrédient est sélectionné (depuis la validation en liste) , la macro se lance automatiquement

2/ Détail de la macro :
La macro retrouve la ligne concernée de l’ingrédient dans la feuille (tableaux de référence) ensuite pour chaque composant de l’ingrédient, la macro recherche si le composant existe dans la ligne de titre de la feuille (saisie).

Pour les composants, lorsque qu’un titre de colonne (feuille saisie) est égal à celui de la feuille référence, la cellule de la ligne de l’ingrédient concerné est copiée.

NB. :
Je préfère ce type de boucle plutôt que des copies réalisées avec des références en « dur ».
pour la copie des composants de l'ingrédient, je préfère que le critère soit « si le contenu de la cellule de titre est le même » ,alors copier le contenu de la cellule.

En vous remerciant

Guy
 

Mick29

XLDnaute Nouveau
Re : Copier automatiquement des champs suite à une validation en liste

salut j'aimerais savoir comme tu fais pour avoir plusieurs choix dans la même colonne, par exemple ( arome, amidon, vinaigre etc ... ).

merci d'avance

cordialement

Mick
 

Dull

XLDnaute Barbatruc
Re : Copier automatiquement des champs suite à une validation en liste

Salut guy974 :), Mick 29, le Forum

Un essai en pièce Jointe

@Mick29

Insertion/nom/définir

Nom dans le Classeur Ingrédient Par Exemple
Fait référence à =DECALER(Tab_Référence!$B$5;;;NBVAL(Tab_Référence!$B:$B)-1)

Ajouter et fermer

Ensuite Données/Validation
Autoriser Liste
Source: =Ingrédient

Bonne Journée
 

Pièces jointes

  • recette-1guy974.zip
    8.3 KB · Affichages: 58
Dernière édition:

guy974

XLDnaute Junior
Re : Copier automatiquement des champs suite à une validation en liste

Merci beaucoup,Mick29, Dull et le Forum :)

Mick29, dans la feuille saisie, :

*/ chaque ligne représente un ingrédient avec sa composition
*/ chaque ingrédient dépend d'une recette (c'est le premier champ)

Dull,
cela fait plaisir de "croiser" un exel_aute de la Réunion, j'y suis depuis 10 ans et habite l'Entre-Deux.

le résultat de ta macro est PARFAIT, ton code en "dur" est plus simple que celui auquel je pensais et je le comprends très bien.

Je ne connaissais pas l'astuce, " =DECALER(Tab_Référence!$B$5;;;NBVAL(Tab_Référence! $B:$B)-1) " comme je le comprends cela permettrait d'avoir un champ qui va s'actualiser automatiquement en fonction des incrémentations futures

Merci infiniment

Bonne soirée

Guy
 

Dull

XLDnaute Barbatruc
Re : Copier automatiquement des champs suite à une validation en liste

Re le fil

Heureux d'avoir pu t'aider Guy

Comme on dit par chez nous "in'min lav l'ot" Une Main lave l'autre autrement dit "A charge de revanche" :)

Bonne Journée à tous
 

Dull

XLDnaute Barbatruc
Re : Copier automatiquement des champs suite à une validation en liste

Salut Guy, le Forum

Dans ton fichier il n'y a aucune formule (dumoinsjen'enn'aipasvu):D

Si ce sont des formules que tu veux regarde avec la Fonction RECHERCHEV

Bonne Journée
 

Pièces jointes

  • recette-2guy974.zip
    9 KB · Affichages: 43

guy974

XLDnaute Junior
Re : Copier automatiquement des champs suite à une validation en liste

Merci beaucoup, je reviens un peux tard sur le net.

Dull, c'est bien cela que je cherchais.

Effectivement le fichier que j'avais soumis n'avait pas de formule, c'est en quelque sorte le modèle réduit fait à la "va vite" d'un fichier que je ne pouvait pas envoyer.

Bon WE

Guy
 

guy974

XLDnaute Junior
Re : Copier automatiquement des champs suite à une validation en liste

En fait dans mon tableau de référence, j'ai des formules à copier (j'ai oublié de les saisirs dans le fichier joint).

Les différentes solutions que j'ai essayé : ne font que copier la valeur mais pas les formules des cellules source !

Une idée ?
 

Dull

XLDnaute Barbatruc
Re : Copier automatiquement des champs suite à une validation en liste

Salut Guy, le Forum

Si j'ai bien compris tu veux mettre les formules de ton tableau Tab_Référence selon la valeur saisi en B de la feuille Saisie.

Reprends donc mon premier fichier et remplace
Code:
        ActiveCell.Offset(0, 1).Value = C.Offset(0, 4).[B]Value[/B]
        ActiveCell.Offset(0, 2).Value = C.Offset(0, 2).Value
        ActiveCell.Offset(0, 3).Value = C.Offset(0, 1).Value
        ActiveCell.Offset(0, 4).Value = C.Offset(0, 7).Value
        ActiveCell.Offset(0, 5).Value = C.Offset(0, 6).Value
        ActiveCell.Offset(0, 6).Value = C.Offset(0, 5).Value
par
Code:
        ActiveCell.Offset(0, 1).Value = C.Offset(0, 4).[B]FormulaLocal[/B]
        ActiveCell.Offset(0, 2).Value = C.Offset(0, 2).FormulaLocal
        ActiveCell.Offset(0, 3).Value = C.Offset(0, 1).FormulaLocal
        ActiveCell.Offset(0, 4).Value = C.Offset(0, 7).FormulaLocal
        ActiveCell.Offset(0, 5).Value = C.Offset(0, 6).FormulaLocal
        ActiveCell.Offset(0, 6).Value = C.Offset(0, 5).FormulaLocal
en espérant que ce soit ce que tu souhaite

Bonne Journée

EDITION: Attention si les formules de ta feuille Tab_Référence font référence à des cellules de cette feuille ou d'autres feuilles, ce code prendra les références de la feuille active

Ex en C5 de la feuille Tab_référence
Valeur de la cellule M1 =1
Code:
=(5/5)*[B]$M$1[/B]
Ecrire en C5
Code:
=(5/5)*[B]Tab_Référence!$M$1[/B]
pour que cela fonctionne

Je cherche d'autre possibilités :)
 
Dernière édition:

Discussions similaires

Réponses
5
Affichages
171
Réponses
56
Affichages
1 K
Réponses
8
Affichages
473

Statistiques des forums

Discussions
312 500
Messages
2 089 013
Membres
104 004
dernier inscrit
mista