Dupliquer automatiquement une formule à l'insertion d'une ligne

Bonjour à tous,

Je suis entrain de créer un fichier Gsheet qui sera utilisé par plusieurs personnes qui ne maitrisent pas forcément la mécaniques des formules. Ainsi, j'aimerai avoir la possibilité d'insérer automatiquement une formule sur chaque ligne à chaque insertion de ligne intermédiaire afin d'éviter de demander aux utilisateurs de faire des copier-coller manuels, ce qui pourrait en plus mettre à mal le fonctionnement du fichier si quelqu'un faisait une erreur.

Voici le lien vers un fichier allégé qui permettra d'illustrer mon besoin: https://docs.google.com/spreadsheets/d/1HtbVbBzb46Lp1hOCeBfFv7w7voSjWxiE/edit?usp=sharing&ouid=10961...

Mon besoin est de pouvoir sélectionner en colonne C via un menu déroulant la bonne classification en fonction du nombre d'heures saisis en colonne B. Dans la deuxième feuille "Liste de données", j'ai la liste des classifications possible (col A) associé aux heures (col B) à utiliser comme référence.

Dans la feuille de travail, j'ai crée en colonne F la formule suivante qui répond parfaitement à ce que j'attend:

=transpose(filter('Liste de données'!$A$2:$A$10;'Liste de données'!$B$2:$B$10=$B2))

Puis je vais chercher via la validation de données le résultat issu de ma formule en colonne F pour l'amener en colonne C via le menu déroulant.

L'idée serait donc de pouvoir dupliquer cette formule de façon automatique sur toutes les lignes, sachant que le fichier peut en contenir max 500 lignes.

Je suis novice et après quelques recherches, j'ai vu que la fonction ARRAYFORMULA pouvait répondre à mon besoin. J'ai analysé plusieurs réponses sur différents forums pour m'inspirer une idée de formule mais malheureusement à chaque essai, j'ai une erreur qui tombe, notamment celle qui dit que le nombre de ligne demandé n'est pas en adéquation avec le nombre de ligne saisi sur la fonction FILTER.

Pourriez-vous svp m'aider à construire cette formule?

Je reste disponible si vous avez besoin de précision.

Merci beaucoup de votre aide.

Marina.

Bonjour Marina,

Pas facile !

Au passage ton fichier était au format xlsx ?

Au prix d'un léger changement des données de base, tu peux utiliser en F2

=arrayformula(iferror(vlookup(B2:B;'Liste de données'!A:E;{2\3\4\5};0)))

Les données de base peuvent être obtenues par une fonction complexe si tu voulais conserver ta disposition initiale. Mais je pense que ton objectif principal est quand même atteint.

https://docs.google.com/spreadsheets/d/1-SeeMpwuM7tx-qs022-Au76x4ubODaf1dRf2-yX_BLg/edit?usp=sharing

change si besoin tes paramètres régionaux

Bonjour,

Merci infiniment pour ta réponse !

Oui, c'est un excel car ma boite empêche toute sortie ou partage de lien de mon compte google pro vers l'extérieur. J'ai du user d'astuce en le telechargeant pour le récupérer sous mon compte perso, en passant donc par Excel ! Bref... C'est bien un Gsheet que je manipule au quotidien.

J'ai le PC eteint là mais j'ai regardé rapidement via le tel et je pense que je peux adapter mon fichier comme tu le proposes. C'est malin, je n'avais pas pensé à mettre les data au format horizontal.

Je teste demain sur mon vrai big fichier et je valide le sujet si c'est ok!

Merc encore, j'y ai passé des heures. Tu n'imagines pas ma joie en lisant ta réponse ! Top !

Bonne soirée.

Marina

Merci encore, j'y ai passé des heures.

Moi aussi ... mais sujet très intéressant !

J'ai trouvé comment également mettre la formule dans l'en-tête (en F1) et non pas dans la première ligne de données, et j'ai recalé en fonction de ta formule de validation

=arrayformula(iferror(vlookup(B:B,'Liste de données'!A:F,{2,3,4,5,6},0)))

c'était tout bête !


ou pour éviter de taper la suite 2,3,4,5,6, voire de mettre un nom à la place de 'Liste de données'!A:F

=arrayformula(iferror(vlookup(B:B,maListe,sequence(1,columns(maListe)-1,2,1),0)))

en version FR

=arrayformula(iferror(vlookup(B:B;maListe;sequence(1;columns(maListe)-1;2;1);0)))

Salut!

Merci pour tout le temps que tu y as passé et le chauffage de neurone associé!

ça marche parfaitement dans mon big fichier!

Bravo à toi!!!! :)

Il est possible aussi de mettre les listes verticalement, c'est parfois plus "naturel". Dans ce cas, transpose 'Liste de données'!A:F

Merci pour ton retour ...

Rechercher des sujets similaires à "dupliquer automatiquement formule insertion ligne"