Formule INDIRECT

Bonjour,

Je voudrais faire une formule pour qu'une case de la feuille2 (appelé « Document final ») affiche le résultat d'une case de la feuille1 (ici appelé « classé ») et que la case de la feuille2 n’affiche rien si la case de la feuille1 est vide.

J’aimerais également pouvoir ajouter une ligne n’importe où dans la feuille1 et que le résultat entré dans une case de la nouvelle ligne créé s'affiche automatiquement dans une case à l'endroit voulu sur la feuille2.

J’aimerais pouvoir recopier la formule verticalement vers le bas pour ne pas avoir à copié et changé le numéro de chaque case manuellement dans la formule.

J'ai essayé avec la fonction IF, mais si j'ajoute une ligne elle ne s'ajoute pas sur la feuille2.

J'ai essayé avec la fonction INDIRECT, mais je ne peux la recopié vers le bas et qu'elle s'ajuste automatiquement pour chaque ligne.

Je ne connais pas très bien le fonctionnement des formules dans Excel et j’aurais besoin d’aide S.V.P.

Si quelqu'un connais la solution, je lui serais infiniment reconnaissant.

Merci

Bonjour et

Je ne sais pas trop si j'ai compris ... essaie toujours, en A1:

=INDIRECT("Classé!A"&LIGNES($1:1))

à recopier vers le bas.

... si je suis sur la bonne voie, on verra s'il faut améliorer les choses pour pouvoir copier à droite

Bonjour U. Milité,

Cela ne fonctionne pas, j’ai une erreur « #NAME? » qui s’affiche dans la case.

Je vais tenter de mieux expliquer mon problème.

Sur la feuille1 j’ai 2 colonnes. Dans la « colonne A » j’ai des noms de compagnie en ordre alphabétique et dans la « colonne B » j’ai leurs emplacements dans notre magasin.

Sur la feuille2 j’ai 4 colonnes par page. Les colonnes A et C sont les noms de compagnies partant de la ligne A1 à A55, qui continue de C1 à C55, qui se poursuit de A56 à A110, puis de C56 à C110 et ainsi de suite. Les colonnes B et D sont leurs emplacements dans le magasin, de la ligne B1 à B55 qui continu de D1 à D55, ensuite de B56 à B110 puis de D56 à D110, etc., enfin vous comprenez.

Je voudrais pouvoir ajouter une ligne sur la feuille1 pour pouvoir insérer le nom d’une nouvelle compagnie dans la nouvelle case créée de la colonne A ainsi que son emplacement dans la colonne B et que l'information s’affiche à la bonne place sur la feuille2 pour conserve l’ordre alphabétique.

Exemple :

Je veux ajouter une ligne sur la feuille1 en dessous de la ligne A75 pour entrer un nouveau nom. Ce qui était en A76 est maintenant en A77. Je veux que le nom entré dans la nouvelle case A76 de la feuille1 s’affiche dans la case C21 de la feuille2 et que le nom qui est maintenant dans la case A77 de la feuille1 s’affiche dans la case C22 de la feuille2, autrement dit que tout le reste décale d’une case vers le bas en conservant l’ordre.

De plus, si une case de la feuille 1 est vide, je veux que la feuille2 n’affiche rien (blank) et non un 0 comme c’est le cas présentement.

J’espère avoir été un peu plus clair.

Merci de prendre de votre temps pour m’aider, c’est vraiment gentil.

Bonjour,

MelenorVorGoth a écrit :

Cela ne fonctionne pas, j’ai une erreur « #NAME? » qui s’affiche dans la case.

Ta version d'Excel serait-elle en anglais? Si c'est le cas, il faut aussi traduire les fonctions ... INDIRECT() ne devrait pas changer; LIGNES() devrait devenir ROWS()

Ceci étant, à lire la suite, je ne crois pas que ce soit là la solution que tu recherches

MelenorVorGoth a écrit :

Sur la feuille2 j’ai 4 colonnes par page. Les colonnes A et C sont les noms de compagnies partant de la ligne A1 à A55, qui continue de C1 à C55, qui se poursuit de A56 à A110, puis de C56 à C110 et ainsi de suite. Les colonnes B et D sont leurs emplacements dans le magasin, de la ligne B1 à B55 qui continu de D1 à D55, ensuite de B56 à B110 puis de D56 à D110, etc., enfin vous comprenez.

Disons que je comprends ce que tu écris ... mais pas le sens ou l'intérêt de la manipulation

Bonjour U. Milité,

Effectivement mon Excel est en anglais.

J’ai changé LIGNES() pour ROWS() et ça fonctionne à merveille.

Je vais essayer de vous expliquer l’intérêt de cette manipulation.

J’ai un plan de mon magasin où j’ai assigné une lettre pour chaque rangé et un numéro pour chaque 4’ de tablette. Je veux y joindre un document qui contient la liste des compagnies et tous les emplacements où il y a de leurs produits dans le magasin afin de pouvoir rapidement localiser leurs produits. Je veux pouvoir imprimer le document s’il y a lieu, c’est pourquoi j’ai fait 4 colonnes sur la feuille2 pour optimiser l’espace et avoir moins de feuille à imprimer.

Présentement, si j’ajoute un nouveau nom dans la liste, je dois resélectionner la colonne A de la feuille1, par exemple les cases A56 à A110 et les coller au bon endroit dans ma feuille2, soit C1 à C55, afin que le document conserve l’ordre alphabétique. Ainsi de suite pour les cases A111 à A165 collé en A56 à A111 sur la feuille2, etc.

Lorsque nous offrons un produit d’une nouvelle compagnie, je veux pourvoir ajouter le nom de la compagnie et l’emplacement du produit et qu’ils s’insèrent automatiquement au bon endroit dans la liste sans avoir à tout recopier et recoller à la bonne place. D’où l’intérêt de cette manœuvre, afin de m’éviter de perdre du temps à refaire la mise en page de mon document à chaque nouvel ajout.

Cependant, je voudrais également, si possible, que les cases vides n’affichent pas un 0 mais quelles restent vide. Est-ce possible de modifier la formule pour avoir le résultat voulu?

Merci.

Bonjour,

Avec la formule proposée, mais en l'adaptant en première ligne, dans chaque colonne, essaie (respectivement en A1, B1, C1, D1, E1 et F1 ... je te laisse le soin de poursuivre au-delà )

[inutile de rappeler que tu dois remplacer LIGNES par ROWS ? ]

=INDIRECT("Classé!A"&LIGNES($1:1))
=INDIRECT("Classé!B"&LIGNES($1:1))
=INDIRECT("Classé!A"&LIGNES($1:1)+55)
=INDIRECT("Classé!B"&LIGNES($1:1)+55)
=INDIRECT("Classé!A"&LIGNES($1:1)+110)
=INDIRECT("Classé!B"&LIGNES($1:1)+110)

Sélectionne ensuite la plage A1:F1 et recopie jusqu'en ligne 55 (et dis-nous si j'ai compris et si ça fonctionne !)

Pour "masquer" les '0', la première question à se poser est de savoir s'il ne risque pas d'y avoir un '0' dans la feuille source, mais qui devrait apparaître dans les résultats. Si ce n'est pas le cas, il existe plusieurs solutions:

  • dans les options d'Excel (Fichier > Options) > Options avancées > Options d'affichage de la feuille de calcul > Décocher la case "Afficher un zéro dans les cellules ayant une valeur nulle" ... s'appliquera à toute la feuille
  • une mise en forme conditionnelle, appliquée à toute la plage, en spécifiant que si la valeur de la cellule est égale à 0, on applique une couleur de police identique à celle d'arrière-plan (blanc sur blanc, le plus souvent)
  • un format de cellule personnalisé (appliqué à la plage, ici aussi) permet d'indiquer que les 0 ne doivent plus être affichés ... mais là il faudra définir aussi l'affichage souhaité pour les nombres positifs, les nombres négatifs, le texte, etc. Les 2 solutions précédentes sont donc plus simples.

Bonjour U. Milité,

J'ai compris le principe d'ajouté 55 de plus à chaque page et ça fonctionne parfaitement.

Et il est impossible qu'il y ait un '0' dans une de mes cases, ce sera toujours un nom ou un localisation exemple A1, A2, alors la première solution est parfaite pour moi.

Un immense merci pour ton aide.

Rechercher des sujets similaires à "formule indirect"