• Initiateur de la discussion Initiateur de la discussion netten
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

netten

XLDnaute Junior
Bonjour,

J'utilise avec plusieurs listes de validation la fonction indirect, de cette façon j'arrive à avoir une arborescence à 4 étages différents.

Jusqu'à maintenant, toutes mes bases de données étaient configurées de la façon suivante : Toutes les données sont mises en colonnes et la fonction indirect prend les lignes ou l'on retrouve l'ensemble des colonnes, ça marche très bien.

Le hic, la dernière série de l'arboresence comprend beaucoup de données, excel 2003 de comportant pas beaucoup de colonnes, j'ai du séparer en plusieurs séries qui ne sont pas sur les mêmes lignes.

Ma question est la suivante : est-il possible d'utiliser la fonction indirect en faisant une selection de plusieurs lignes comme si il s'agissait de réunir plusieur fonction indirect ensemble.

Je ne sais pas si j'explique bien, mais l'idée c'est le nombre de colonnes comprenant des données fait 4 longueur entière d'excel 2003. Et que je ne sais pas utiliser la fonction indirect lorsque le tableau n'est pas en un seul et même bloc.


Merci beaucoup


Eric
 
Re : fonction "INDIRECT"

Salut netten et le forum
Indirect("A") sert à indiquer que le texte A est une référence d'une cellule.
=Somme(Indirect("A1:B8")) fera la somme de toutes les cellules de la plage A1 à B8.

On a du mal à pouvoir t'aider, tu ne donnes aucune indication réelle de ce que tu veux. Donne un exemple de ce que tu veux optenir.
A+
 
Re : fonction "INDIRECT"

Bonjour Eric, Gorfael

Si j'ai bien compris, ta 'base' fait plus de champs que les 256 colonnes d'excel, et tu voudrais savoir (toujours si j'ai bien compris) tout ce qui concerne la ligne (par ex) 45 de la feuille 1 plus la ligne 45 de la feuille 2 ...
1ère remarque : si c'est cela :
1.1 je ne suis pas sur que ta base soit bien construite
1.2 je ne pense pas qu'excel soit le meilleur outil si tu as autant de données
2ème remarque : il nous faut absolument un bout de ton fichier pour t'aider efficacement
 
Re : fonction "INDIRECT"

D'abord

Unité foncitonnelle Met ce code dans validation
=DECALER(INDIRECT($I$4&"41");0;0;NBVAL(INDIRECT($I$4 &"41:" & $I$4&"47"));1)


Ensemble met ce code
=DECALER(INDIRECT($I$5&"352");0;0;NBVAL(INDIRECT($I$5&"352:" &$I$5 & "356" ));1)

Pour Organe

Tu devrais ajouter la ligne de départ a coté de la colonne
De 366 à 1625
En A tu met la description
en B la colonne avec un indirect
En C tu devrais ajouter la ligne de départ et l'utiliser avec Indirect
Pour la ligne de fin, tu prend départ + 34
 
Re : fonction "INDIRECT"

J'aimerais bien que tu m'explique surtout comment tu as raisonner et employé la fonction DECALER, et quel est le but de rajouter une colonne de nombre pour la partie concernant les ENSEMBLES, je pense qu'un détail m'échappe finalement sur la fonction INDIRECT.

Et le +34, que signifie-t-il ? J'aimerais pouvoir réutiliser ce type de formules à l'avenir et donc éviter de me contenter d'exploiter ton travail sans en comprendre les raisonement amonts. Merci beaucoup
 
Re : fonction "INDIRECT"

Re,

D'abord il faut savoir que tu met une colonne dynamiquement en utilisant indirect alors que ta ligne est statique. J'ai juste mise ET la ligne Et la colonne dynamiquement.


J'avais inscrit +34 car c'était le nombre de colonne utilisé pour Organe par Unité.
Mais bon ce chiffre ne sert a rien.
C'est plutot + 10 qu'il fallait prendre. Soit le nombre de ligne utilisées -1.

si on décortique cette formule.

=DECALER(INDIRECT($I$6&$I$7);0;0;NBVAL(INDIRECT($I$6& $I$7 & ":" &$I$6 & $I$7+ 10 ));1)


La fonction Décaler prend 5 paramètre. La référence de départ, la ligne, la colonne, la hauteur, la largeur.

Ligne et colonne permettent un déplacement. Ici je mets 0 et 0 car je n'en veux pas.

Hauteur et largeur permettent la dimension. Ici la largeur est 1. Et la hauteur est le nombre d'éléments. Autrement dit, si j'ai 5 éléments, ma liste va en avoir 5. Si j'ai 10 éléments ma liste va en avoir 10.

Pour calculer la hauteur j'utilise la fonction NBVAL.
Pour cela j'ai besoin de la ligne de départ et de la ligne de fin.
La ligne de départ est en I7
Et la ligne de fin est I7 + 10
La colonne étant I6
I6= BS
I7= 1634
ca renvoie donc NBVAL(BS1634:BS1644) qui est égale a 2

Donc...
=DECALER(INDIRECT($I$6&$I$7);0;0;NBVAL(INDIRECT($I$6& $I$7 & ":" &$I$6 & $I$7+ 10 ));1)

s'inscrit
=DECALER(INDIRECT($I$6&$I$7);0;0;2;1)

Ma référence ici est la cellule de départ
Soit INDIRECT($I$6&$I$7) qui me renvoie= BS1634

Alors
=Decaler(BS1634;0;0;2;1), ca me renvoie une matrice d'une hauteur de 2, largeur de 1 qui commence à la cellule BS1634.


Pas sur que c'est clair
 
Re : fonction "INDIRECT"

ah ah ah, mes collègues me regarde bizarrement ^^. Ca entre, je dois juste relire 40 fois et ça devrait être bon. J'ai compris cette histoire de décalage des lignes et des colonnes, est-on obligé de mettre 0 quand il n'y a pas de décalage dans le sens ou peut-on ne rien mettre ? NBVAL, ne serait-ce pas nombre de valeurs, c'est à dire qu'il compte jusqu'au moment ou il ne trouve plus rien et de cette façon il délimite la hauteur ?
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
834
Réponses
1
Affichages
132
  • Question Question
Microsoft 365 macro TCD
Réponses
4
Affichages
241
Réponses
1
Affichages
461
Réponses
11
Affichages
725
Retour