Forum Clubic

Aide sur Excel : variable lignes colonnes

Bonjour, question bête qui sera sans doute facile pour certains, mais je n’arrive vraiment pas à trouver la réponse que google :

Quand je tape une formule sous excel, je voudrais pouvoir mettre une variable désignant le numéro de la ligne ou de la colonne correspondante, histoire de pouvoir faire des copiers-collés de mes formules à chaque lignes, sans avoir à changer le numéro à chaque fois.

Par exemple, au lieu d’écrire pour ma case B5
=(H4+((F5*100)/E5))/A6

Je voudrais pouvoir écrire, en admettant que x soit la variable des numéros de lignes :
=(H[x-1]+((Fx*100)/Ex))/A[x+1]

Quel est x ?

MErci d’avance, vous me feriez gagner beaucoup de temps…
Edité le 10/02/2010 à 01:08

Si tu as sur une ligne : =(H4+((F5*100)/E5))/A6
Puis, fais un copier/coller de cette formule sur la ligne suivante et regarde ce qu’il t’as fait.

Si tu fais un copier/coller de ta cellule B5 en B6, Excel va automatiquement te mettre à jour ta formule
=(H4+((F5100)/E5))/A6 --> =(H5+((F6100)/E6))/A7
sans que tu aies à te préoccuper de gérer les numéros de ligne
Si tu veux conserver la même valeur de formule lors d’un copier/coller, il faut que tu travailles avec des rérérences absolues (de la forme $A$1) ou mixtes.

Sinon, pour répondre à ta question d’origine, tu as ligne() et colonne() pour récupérer les coordonnées de ta cellule

Edit :
Nostradamus --> désolé, je n’avais pas vu ton message
Edité le 09/02/2010 à 09:29

gcc :jap:

Je connais le truc du copié-collé mis à jour. Mais ça ne marche pas dans tous les cas, quand on pousse excel dans ses derniers retranchements.

Pouvez-vous me donner ma formule transformée avec les références absolues ?
=(H[x-1]+((Fx*100)/Ex))/A[x+1]

Ca donnera quoi avec des $A$1 ? Ou avec ligne() et colonne() ?
=(Hligne(-1)+((Fligne()*100)/Eligne()))/Aligne(+1)

c’est ça ?

C’est pas très clair… en tout cas, pour moi.
Si tu veux faire référence à des lignes+1, c’est peut-être une macro qu’il faudrait.

Mais je n’ai pas compris ce que tu veux.
C’est quoi x dans ta formule ?
Si c’est la ligne sur laquelle tu te trouves, alors
=(H[x-1]+((Fx100)/Ex))/A[x+1]
devient :
Si cette formule se trouve colonne A ligne 2, donc en A2, tu tapes : =(H1+((F2
100)/E2))/A3

Tu peux donner un exemple concret de cas où ça ne marche pas ?

Rien de bon dans ton cas, justement, puisque tu veux que à chaque fois faire référence à des cellules qui ont les mêmes positions relatives. On utilise les références absolues quand on veut faire un copier/coller avec une partie de la formule qui se réfère en permanence aux mêmes cellules (par ex la ligne 0 d’un tableau).

Si tu écris Hligne(-1), Excel va chercher une fonction Hligne qui bien entendu n’existe pas.
Si tu veux composer une référence à partit de la lettre H et de son numéro de ligne, il faut que tu écrives “H” & ligne()
Et ligne(+1), ça ne marchera jamais. Ligne() n’accepte comme paramètre que les références des cellules dont il doit retourner la (les) ligne(s).
Il faut que ton +1 porte sur la valeur de retour de la fonction.

J’ai ma réponse.
Il faut utiliser les formules
=INDIRECT(ADRESSE((LIGNE()+x);(COLONNE()+y)))

Ca permet d’afficher le contenu d’une cellule selon la case où l’on est.
Et ça permet de passer par la notation LxCy bien meilleure tout en restant dans la notation habituelle, sans changer les options.

Je le mets là au cas où d’autres auraient ce problème…
Edité le 10/02/2010 à 01:05

Merci pour la réponse, ça c’est pratique aussi…
Edité le 10/02/2010 à 01:07