Je reviens vers vous car je sèche et je n'arrive pas à trouver une solution dans toutes les discussions que j'ai pu lire.
Je recherche une fonction (j'aimerai éviter le VBA) pour faire une recherche de date sur une ligne.
En gros j'ai une ligne (A1) qui contient des dates, mais pas que, et j'aimerai que dans un autre onglet sa puisse me lister toutes les dates présente dans cette ligne. Ensuite dans la colonne d'après j'aimerai avoir une recherche des valeurs présentes sur la ligne 27.
Voila je suis bloquer.
Merci d'avance à ceux qui pourrons m'aider dans cette problématique.
Donc vous n'avez pas compris les formules précédentes.
1- Il fallait que les intitulés soient différents Date1,date2,date3 ...
2- Il fallait un Date x sur le bloc suivant le dernier bloc utilisé.
Come ce n'est pas le cas dans votre PJ, j'ai changé de formule avec :
La limite est qu'un bloc fasse moins de 16 colonnes ( <=15 ) car il faut bien limiter la zone de recherche dans le bloc considéré. ( en considérant que les 3 premières colonnes d'un bloc soient des dates, donc n'est rien en ligne 27 )
J'ai laissé l'autre formule en exemple mais cela suppose que les intitulés soient différents.
Le plus simple est de taper "=SIERREUR(PETITE.VALEUR( " puis d'aller sur la bonne feuille et cliquer sur la ligne 1 puis continuer la formule avec ";LIGNE()-2);"")" ainsi vous aurez la bonne syntaxe.
Idem pour la seconde formule.
Si votre feuille s'appelle toto alors cela devrait faire :
VB:
=SIERREUR(PETITE.VALEUR(toto!$1:$1;LIGNE()-2);"")
Sinon rectifiez votre PJ avec les bons noms d'onglets, et livrez le.
Le plus simple est de taper "=SIERREUR(PETITE.VALEUR( " puis d'aller sur la bonne feuille et cliquer sur la ligne 1 puis continuer la formule avec ";LIGNE()-2);"")" ainsi vous aurez la bonne syntaxe.
Idem pour la seconde formule.
Si votre feuille s'appelle toto alors cela devrait faire :
VB:
=SIERREUR(PETITE.VALEUR(toto!$1:$1;LIGNE()-2);"")
Sinon rectifiez votre PJ avec les bons noms d'onglets, et livrez le.
Alors c'est que votre fichier déjà envoyé n'est pas représentatif du votre actuel.
Vérifier ce point :
Dans la feuille de votre tableau, regardez en ligne 1 en quelle colonne est écrit "Date 2".
Descendez en ligne 27 colonne précédente, vous devez avoir la valeur demandée. Sinon c'est que la structure n'est pas la même.
Par ex dans la dernière PJ :
Date 2 est en Z1
Valeur est en Y27, c'est à dire 27 lignes plus bas, une colonne à gauche.
Alors c'est que votre fichier déjà envoyé n'est pas représentatif du votre actuel.
Vérifier ce point :
Dans la feuille de votre tableau, regardez en ligne 1 en quelle colonne est écrit "Date 2".
Descendez en ligne 27 colonne précédente, vous devez avoir la valeur demandée. Sinon c'est que la structure n'est pas la même.
Par ex dans la dernière PJ :
Date 2 est en Z1
Valeur est en Y27, c'est à dire 27 lignes plus bas, une colonne à gauche.
Et bien si c'est bien sa pourtant c'est pour sa que je ne comprend pas parce que il y a juste des calculs dans ma feuille que je ne vous ai pas donné pensant que sa ne changerai rien voici une nouvelle version avec tous les calcul. Et d'ailleurs sur cette feuille vous verrez quelque chose que je ne comprend pas non plus je ne peu pas faire de somme sur la colonne R ligne 27 en total franchement je suis perdu la^^
Bien évidemment puisque si vous faites cela vous avez une référence circulaire puisque R26 utilise R27.
Mais si vous mettez en R27 par ex "=SOMME(R4:R25)" alors ça marche.
Cela m'étonnes que votre XL ne vous dit pas qu'il y a une référence circulaire quand vous tentez de mettre cette formule dans R27 :
Bien évidemment puisque si vous faites cela vous avez une référence circulaire puisque R26 utilise R27.
Mais si vous mettez en R27 par ex "=SOMME(R4:R25)" alors ça marche.
Cela m'étonnes que votre XL ne vous dit pas qu'il y a une référence circulaire quand vous tentez de mettre cette formule dans R27 : Regarde la pièce jointe 1183804
Alors non Excel ne me disais rien il me mettait 0 en valeur et vu que je ne suis pas à l'origine de ce tableau et de ces calculs je suis un peu perdu...
Le souci est que je ne peut pas donner le nom de l'onglet... En revanche je remarque que lorsque je clic sur l'onglet pour remplacer celui de la formule il me l'écrit comme ceci :
VB:
Ta formule : =SIERREUR(INDEX(test!$27:$27;EQUIV("Date "&LIGNE()-1;test!$1:$1;0)-1);"")
Ma formule : =SIERREUR(INDEX('mononglet'!$27:$27;EQUIV("Date "&LIGNE()-1;'mononglet'!$1:$1;0)-1);"")
ce que je peut te dire c'est que le nom de l'onglet est de cette forme "1234123 charge quelque" voilà mais je ne voit pas en quoi cela change quelque chose
Et sinon je vient de penser que si je n'ai pas noter Date mais autre chose avant la date dans la 5eme colonne de chaque "Blocs" cela changerai les choses?? C'est toujours le même texte avant la date...
Bien évidemment que ça change tout, puisque la formule dans Equiv recherche la chaine "Date 2" à "Date n", mais ça je ne peux pas l'imaginer, seul vous pouvez résoudre le problème.
RechercheV cherche une valeur dans un tableau à une certaine colonne. Mais si vos blocs n'ont pas toujours la même taille, vous ne pourrez jamais savoir de combien de colonnes vous devez vous décaler pour avoir la bonne valeur.
Franchement c'est n'importe quoi. En quoi un nom d'onglet peut être à ce point une donnée sensible ???
Dernier test, puis j'abandonne.
Dans ma PJ vous renommer l'onglet des datas par le nom de votre onglet, les formules se remettront à jour avec le bon nom d'onglet. Et vous recopiez cette formule dans votre fichier, et testez. Mais s'il n'y a pas Date 2 quelque part en ligne 1, ça ne peut pas marcher.