Automatiser le décalage de ligne de référence dans la recopie d’une formule

Bonjour à tous et à chacun,

Ma question est à propos de la recopie automatique d’une formule. Cette formule va chercher un résultat d’une somme dans des tableaux de plusieurs lignes. Chaque tableau affiche donc une somme et chacune de ces sommes est reportée dans un autre tableau.

C'est dans cet autre tableau que je veux automatiser le décalage de ligne dans la recopie de la formule

Or, la recopie automatique d’une formule change la référence de la ligne d’une ligne à chaque fois et non pas de l’espacement de lignes existant entre chaque cellule de résultat des différents tableaux.

Ci-joint mon fichier exemple qui, je l'espère, rendra ma question plus explicite.

Cordialement

Patrick

Bonjour,

Si j'ai compris, pourquoi pas simplement en C3 :

=INDEX(Feuil1!$D$4:$D$50;EQUIV(B3;Feuil1!$C$4:$C$50;0))

Bonjour à tous !

Une autre approche en B3 :

=LET(
    plg; Feuil1!C4:D32;
    FILTRE(plg; GAUCHE(PRENDRE(plg; ; 1)) = "S")
)

La taille de la plage (plg) est à adapter !

Merci U milité, merci JFL.. d'avoir pris le temps de lire et de me répondre

J'ai appliqué la formule =INDEX(Feuil1!$D$4:$D$50;EQUIV(B3;Feuil1!$C$4:$C$50;0)) en C3.

Y'a pas de doute, ça fonctionne !

y'a t'il moyen d'adapter la formule pour que les cellules vides de la feuille 1 ne renvoient pas à #N/A sur la feuille 2 ?

Cordialement,

Patrick

Bonjour à tous de nouveau !

Ma proposition a été testée ?

Elle retourne ceci :

image

Bonjjour à tous

Une double variante macro ...

Bye !

Merci JFL

En effet, je n'ai pas testé ta proposition :-(

je tente ....

Bonjour tout le monde,

Ah décidément, cette fonction LET !

Sinon, on peut aussi faire, en B3 :

=DECALER(Feuil1!$C$4;(LIGNES($1:1)-1)*8;0)&""

et en C3 :

=SI(E3="";"";DECALER(Feuil1!$D$4;(LIGNES($1:1)-1)*8;0))

... maintenant, sur de gros volumes, je ne garantis rien (c'est juste que celles-ci reprennent le thème du "décalage" dans la demande initiale)

Bonjour à tous de nouveau !

@U.Milité : Hello !

Ah décidément, cette fonction LET !

C'est un apport majeur !

Re,

@JFL : je n'en disconviens nullement, très cher ... Ce sont mes 3 derniers neurones qui peinent dans la montée

Merci GMD pour ta proposition.

L'insertion d'objet et les macros sont sympas. Cependant, je n'ai pas compris comment cela résout la copie de la formule de transfert des données des sommes des tableaux de la feuille 1 vers le tableau récapitulatif de la feuille 2

Cordialement

Patrick

U.Milité et JFL,

Merci pour vos réponses à ma question. La fonction « LET » semble très importante mais bien difficile à comprendre pour moi. Je suis allé voir un tutoriel sur cette fonction :

https://youtu.be/td80bDYhS2A?feature=shared Celui-ci m’a éclairé sur son intérêt.

J’appliquerai donc bien la formule de JPL, à savoir :

LET(Feuil2!

plg; Feuil1!C4:D32;

(plg; GAUCHE(PRENDRE(plg; ; 1)) = "S")

Cependant, je ne sais pas par quoi remplacer « plg »…

S’il était possible d’appliquer cette formule dans mon fichier exemple et de me le renvoyer, cela m’aiderait à transposer l’exemple dans un autre fichier en suivant pas à pas la mise en place de la formule.

Cordialement,

Patrick

Bonsoir à tous !

Dans ma proposition, l'important n'est pas le nom de la variable utilisée (plg) mais son contenu. Il correspond à la plage de vos tableaux en Feuil1. C'est cette plage qu'il vous faut ajuster.

Merci JFL pour ta proposition.

J'ai essayé de recopier la formule pour afficher la ligne S5 sur le tableau TT de la feuille 2...

Et il s'est passé des choses bizarres.... : il ne m'a pas été possible de recopier la formule LET pour S5 et une erreur est intervenue qui m'a contraint à forcer la fermeture d'Excel !

Bref, je ne suis pas à la hauteur des connaissances nécessaires pour utiliser ce type de formule.

Merci néanmoins d'avoir pris le temps

Cordialement,

Patrick

Bonsoir à tous de nouveau !

Il ne faut pas renoncer.... surtout pour cette formule !

Si votre classeur réel est comparable au classeur exemple, l'adaptation devrait être aisée.

Quelles sont ces choses bizarres rencontrées ?

Merci JFL pour tes encouragements :-)

J’ai fait les choses suivantes :

Sur la feuille 1, j’ai complété le tableau T5 (S5 et le nombre 127)

Sur la feuille 2, sur le tableau TT, à la suite, j’ai écrit « S5 » dans la cellule B 7

J’ai positionné mon curseur sur la cellule C3 et j’ai voulu faire un copier de la formule pour la coller en C7

En fait, cela a effacé la formule en C3 et Excel est resté en attente de complément de formule sans que je ne puisse plus intervenir ni dans C3 ni dans C7.

Excel affiche divers messages auxquels je ne sais pas quoi répondre.

Ne sachant plus quoi faire, j’ai voulu fermer le fichier et le rouvrir ; Excel affiche qu’il n’est pas possible de fermer le fichier sans compléter d’abord la formule !!!

Bonsoir à tous de nouveau !

La formule est une formule dynamique matricielle, c'est-à-dire qu'elle va se propager automatiquement en fonction de la quantité de données à afficher.

Il est donc nécessaire que les cellules situées en dessous soient vides !

Il faut donc :

  • "Vider" les cellules de la plage B3:C14 (par exemple)
  • Copier la formule en B3 et prenant le soin d'adapter la plage à vos données situées en Feuil1

JFL,

J’ai copié la formule de B3 (feuille 2)

J’ai effacé toutes les cellules de B3 à C14

J’ai recopié la formule en B3, modifié la plage de C4:D32 en C4:D35

et appuyé sur « Entrée »

La formule reste apparente et il ne se passe rien ☹

Bonjour à tous !

Il serait judicieux de joindre ce classeur récalcitrant.....

Voici le fichier (c'est celui que j'ai téléchargé sur ton message et modifier depuis)

Merci JFL

Cordialement,

Patrick

Rechercher des sujets similaires à "automatiser decalage ligne reference recopie formule"