Traduction d'une formule

Bonjour à tous,

j'avais besoin de récupérer des informations toutes les 56 lignes, on m'a donné une formule qui marche trés bien, mais j'aimerai la comprendre pour pouvoir l'adapter plus tard.

Quelqu'un pourrait il m'expliquer comment elle marche s'il vous plais ?

la voici :

En B4 mettre cette formule

=INDIRECT(ADRESSE(LIGNE($A1)*56+1;1;3;1;"tableau source");1)

je vous remercie d'avance,

Cordialement

stephanie

Bonjour,

Sais-tu que la consultation de l'Aide sur chaque fonction est suffisamment bien faite pour te fournir en général toutes les informations que tu peux souhaiter à son propos, et souvent plus que tu n'en auras en réponse à une question, accompagnée d'exemples...

La fonction ADRESSE une adresse de cellule sous forme texte. Sa syntaxe est la suivante :

ADRESSE(numéro de ligne; numéro de colonne; [caractère absolu ou relatif de la référence]; [style de référence]; [nom de feuille])

Les deux premiers arguments sont obligatoires, les suivants facultatifs.

Le premier est défini dans ta formule par : LIGNE(A1)*56+1

LIGNE(A1) renvoie 1 (numéro de ligne de A1) ; 1*56+1 renverra donc 57

Ceci en B4 car recopiée en B5 LIGNE(A1) deviendra LIGNE(A2) [la référence étant relative], lequel renvoie 2, d'où : 2*56+1 =>113

Le deuxième argument est fixé à 1 : la colonne de la référence renvoyée par ADRESSE sera donc toujours A.

Pour le 3e, la valeur 3 signifie colonne absolue et ligne relative. Pour le 4e la valeur 1 signifie référence de style A1. Quant au dernier il conduit la fonction à inclure le nom de feuille dans la référence renvoyée.

Ainsi en B4 la fonction renverrra : 'tableau source'!$A56

et en B5 : 'tableau source'!$A113

etc.

Il faut noter que le 4e argument peut être omis (la réf. sera en style A1 par défaut).

Le 3e peut l'être également : par défaut la réf. sera absolue, ce qui n'a aucune incidence dans la valeur renvoyée par ta formule, le recalcul incrémenté de la ligne étant fait sur chaque ligne.

Donc en écrivant : ADRESSE(LIGNE(A1)*56+1;1;;;"tableau source")

le résultat sera : 'tableau source'!$A$56 en B4

et : 'tableau source'!$A$113 en B5, et ainsi de suite.

ADRESSE renvoie une valeur texte. Cette valeur représente une référence de cellule mais le fait de l'inscrire n'appelle pas le contenu de la cellule désignée, il ne fait qu'inscrire la référence sous forme texte.

C'est la fonction INDIRECT qui permet de pointer vers la référence à partir de sa valeur texte.

Ainsi :

=INDIRECT(ADRESSE(LIGNE(A1)*56+1;1;;;"tableau source"))

affichera en B4 le contenu de la cellule A56 de la feuille tableau source, en B5 celui de la cellule A113, en B6 celui de A169...

J'ai aussi omis le 2e argument de INDIRECT facultatif, 1 ou VRAI étant sa valeur par défaut pour interpréter la référence textuelle comme étant de style A1 (ce qui est le cas).

Cordialement.

bonjour et grand merci !!

je viens de voir ton message je vais plancher dessus !! c 'est surper merci et j'irai voir l"aide" promis !!

bonne soirée

Rechercher des sujets similaires à "traduction formule"