• Initiateur de la discussion Initiateur de la discussion pdrean
  • 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 !

P

pdrean

Guest
[Résolu]Problème de Syntaxe INDIRECT

Bonjour,

J'ai essayé de trouver un problème similaire au mien, sans réussite.

Quelqu'un peut il me dire quelle est la différence entre :

INDIRECT("'652'!A2:A75")

et

INDIRECT("'652'!B2:d2") ?

Le premier fonctionne et le deuxième m'affiche #VALEUR.

J'ai beau tourner le truc dans tous les sens, sans réussite.
 
Dernière modification par un modérateur:
Re : INDIRECT synthaxe

A2:A75 est une zone avec exclusivement des cellules avec des caractères et B2:d2 sont des dates Dans aucun cas, il y'a des cellules vides. il s'agit en fait d'une matrice.

En fait, je bosse sur des tarifications de transporteurs. B2:d2 correspond à l'échéance des contrats et A2:A75 aux régions desservies.

Cela permet de faire une synthèse sur une année des prix de transport en fonction de la date de chargement et de la région.

Aussi, pour simplifier la lecture du topic, '652'!A2:A75 et '652'!B2:d2 sont, dans la formule, écrit avec Adresse(). j'ai testé en écrivant directement INDIRECT("''652'!B2:d2") et le resultat est le même alors que ca fonctionne bien avec ("'652!A2:A75")
 
Dernière modification par un modérateur:
Re : INDIRECT synthaxe

Bonjour,

Le problème semble provenir du fait que la première formule concerne une seule colonne alors que la deuxième concerne trois colonnes.

C'est l'origine de l'affichage du message, je ne saurais apporter davantage d'explication.

Par contre, pourquoi utiliser la fonction INDIRECT ?

Elle ne me paraît pas nécessaire.

Cela dit, pour t'aider plus en détail, il nous faudrait un extrait de ton fichier, ou un fichier exemple proche de ton vrai fichier

A te (re)lire

@+
 
Re : INDIRECT synthaxe

Je vais traiter plus de 3000 lignes se référant par exemple à '652'!A2:A75 et '652'!B2😀2 en même temps.

Le problème est que '652'!A2:A75 et '652'!B2😀2 sont variables. Aussi bien le nom de la feuille (code transporteur) que le nombre de ligne (pour A2:a75) (Régions desservies) et le nombre de colonnes (B2😀2) (échéances du contrat).

Chaque feuille correspond à une matrice transporteur avec en ligne les échéances et en colonnes les régions.

Si vous avez une autre fonction qu'indirect pour traiter la variabilité des matrices transporteur, je suis preneur.
 
Dernière modification par un modérateur:
Re : INDIRECT synthaxe

Re,
Bonjour Tibo 😉

Dans de nombreux cas DECALER peut remplacer INDIRECT, mais je ne pense pas que le problème vienne de là (bien que je puisse me tromper 🙂)

sans un petit fichier exemple avec des tableaux à taille limitée, et le type de calcul réalisé sur les plages, je ne vois pas trop
Si le problème vient du fait des colonnes à la place des lignes comme Tibo le suggère, peut-être avec un

Code:
=TRANSPOSE(INDIRECT([COLOR=red]"[/COLOR]'652'!B2:D2[COLOR=red]"[/COLOR]))
 
Re : INDIRECT synthaxe

Voici donc un exemple du fichier.

La feuille analyse comporte plus de 3000 lignes. Il existe plus de 30 feuilles transporteurs.

La cellule en rouge est la cellule qui comporte l'erreur. Celle du dessus la valeur à afficher avec "l'adressage" figé
 

Pièces jointes

Re : INDIRECT synthaxe

Re,

si tu valides ta formule en F5

Code:
=INDIRECT(CONCATENER("'";D2;"'!B2:";ADRESSE(2;NBVAL(INDIRECT(CONCATENER("'";D2;"'!2:2")));4)))

en matriciel (Ctrl+Maj+entrée), tu verras qu'elle renvoie bien une valeur

Tu ne peux pas l'insérer dans la formule en E3 parce que tu dépasses les 7 niveaux d'imbrication des fonctions (limite d'Excel 2003 et antérieurs)

A la place de la formule en E3, je propose :

Code:
=RECHERCHEV(C2;INDIRECT("'"&D2&"'!A2:Z5000");EQUIV(A2;INDIRECT("'"&D2&"'!A2:IV2");0);FAUX)
 
Re : INDIRECT synthaxe

Bonjour

Tototiti est plus rapide !

Je poste néanmoins ma formule :
Code:
=SOMMEPROD((DECALER(INDIRECT("'"&D2&"'!"&"$A$3");;;NBVAL(INDIRECT("'"&D2&"'!"&"A:A"))-2;1)=Analyse!C2)*DECALER(INDIRECT("'"&D2&"'!"&"$B$3");;EQUIV(Analyse!A2;INDIRECT("'"&D2&"'!"&"2:2");0)-2;NBVAL(INDIRECT("'"&D2&"'!"&"A:A"))-2;1))
Moins optimisée !!

EDit : et le pire c'est que j'ai expliqué il y a quelques jours comment valoriser le 3ème Argument de RECHERCHEV par EQUIV 🙄
 
Dernière édition:
Re : INDIRECT synthaxe

cela fonctionne lorsque la date (A2) est entre le 01/07/10 et le 31/07/10.
Dès que l'on passe au 01/08/10, cela ne marche car cela ne doit pas prendre en compte les autres contrats (Colonnes C et D de '652')
 
Re : INDIRECT synthaxe

Impeccable !!!

Vous me retirez une grosse épine du pied !

Merci pour tous les intervenants à ce Topic

Bonne continuation

PS : J'ai encore des trucs à voir sur le maniement des formules excel !
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

T
Réponses
13
Affichages
3 K
Réponses
2
Affichages
3 K
K
Réponses
3
Affichages
1 K
Réponses
4
Affichages
1 K
B
Réponses
60
Affichages
8 K
Bob O' Deville
B
E
Réponses
10
Affichages
11 K
Ethiryn - Glarilak
E
C
Réponses
5
Affichages
2 K
coolcoolcool
C
Retour