Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Recherche

10 réponses
Avatar
Billylaroche
Bonjour,

Je cherche la fonction me permettant de faire une recherche étendue sur
plusieurs lignes et colonnes. Ci-joint, une version simplifiée de ce que je
cherche à faire.

Dans A1, j'ai une Date5 par exemple.

Je cherche une fonction pour rechercher cette Date5 dans un tableau du genre :

ColonneA ColonneB ColonneC
Ligne5 Date1 Date4 Date7
Ligne6 Date2 Date5 Date8
Ligne7 Date3 Date6 Date9

Merci beaucoup de votre aide!
--
Billy

10 réponses

Avatar
Jacquouille
Bonsoir Billy, The Kid

Sub Moi_Je_Cherche()
For each c in range("A5:C7")
If [c]="Date5" then c.select
next
msgbox "Bonne soirée et bonne chance"
end sub

--
Bien amicalmement,
"Le vin est au repas ce que le parfum est à la femme."

Jacquouille.

"Billylaroche" a écrit dans le
message de news:
Bonjour,

Je cherche la fonction me permettant de faire une recherche étendue sur
plusieurs lignes et colonnes. Ci-joint, une version simplifiée de ce que
je
cherche à faire.

Dans A1, j'ai une Date5 par exemple.

Je cherche une fonction pour rechercher cette Date5 dans un tableau du
genre :

ColonneA ColonneB ColonneC
Ligne5 Date1 Date4 Date7
Ligne6 Date2 Date5 Date8
Ligne7 Date3 Date6 Date9

Merci beaucoup de votre aide!
--
Billy


Avatar
Billylaroche
Bonjour Jacquouille,

Merci beaucoup de ton aide!
Est-ce que tu connaîtrais aussi une fonction sans à avoir à faire du VBA?

Merci beaucoup:)
--
Billy


"Jacquouille" a écrit :

Bonsoir Billy, The Kid

Sub Moi_Je_Cherche()
For each c in range("A5:C7")
If [c]="Date5" then c.select
next
msgbox "Bonne soirée et bonne chance"
end sub

--
Bien amicalmement,
"Le vin est au repas ce que le parfum est à la femme."

Jacquouille.

"Billylaroche" a écrit dans le
message de news:
> Bonjour,
>
> Je cherche la fonction me permettant de faire une recherche étendue sur
> plusieurs lignes et colonnes. Ci-joint, une version simplifiée de ce que
> je
> cherche à faire.
>
> Dans A1, j'ai une Date5 par exemple.
>
> Je cherche une fonction pour rechercher cette Date5 dans un tableau du
> genre :
>
> ColonneA ColonneB ColonneC
> Ligne5 Date1 Date4 Date7
> Ligne6 Date2 Date5 Date8
> Ligne7 Date3 Date6 Date9
>
> Merci beaucoup de votre aide!
> --
> Billy





Avatar
LSteph
Bonsoir,

Tout dépend alors de ce que tu entends par rechercher, c'est ce que fait
le code de Jacquouille, une action.
La différence
si on utilise une fonction est qu'elle a pour seule faculté le renvoi
d' un résultat..alors,
quel résultat qui serait le fruit d'une recherche veux tu dans une cellule ?

cordialement.

--
lSteph


Billylaroche a écrit :
Bonjour Jacquouille,

Merci beaucoup de ton aide!
Est-ce que tu connaîtrais aussi une fonction sans à avoir à faire du VBA?

Merci beaucoup:)


Avatar
Billylaroche
Bonjour,

En fait, c'est pour résoudre un problème décrit plus bas.

Mon problème provient de ma fonction recherche.
Je dois rechercher la date du jour dans un calendrier et je n'y arrive pas
sur plusieurs colonnes. J'ai pensé posé ma question de façon plus simple vu
que mon problème est spécifique à une recherche d'une valeur. Pour le reste
de la l'imbrication de formules, je pourrais ensuite y arriver car mon
raisonnement fonction, mais pour une simple colonne seulement. Lire ci-bas
pour mieux comprendre.

Merci beaucoup de votre aide! Je commence à douter que ce soit possible!
Pourtant je suis si près du but!

Merci!

Bonjour,

J'ai tenté de suivre votre conseil, mais malheureusement ça ne fonctionne
toujours pas sur plusieurs colonnes.

=SI(NBCOLOR(INDEX('2009'!H5:H11;EQUIV(LIST!B1;'2009'!H5:H11;0));'2009'!G2:G3)>0;"absent";"présent")

L'imbrication ne fonctionne que sur 1 seule colonne. La fonction
Index/Équivalent ne me permet pas la recherche sur plusieurs colonnes.

Néanmoins, je tiens à vous remercier d'avoir pris le temps de me répondre.

--
Billy


"Papyjac" a écrit :

Bonjour Billylaroche,

Je te vais pas te donner la solution, mais une piste pour l'atteindre.

En ta formule qui marche me fait peur. je te propose avant de pousuivre de
décomposer ta formule en formule élémentaire non imbriquée.
Mettre chaque formule intermédiaire dans une cellule différente
Une cellule pour le SI
Une cellule pour Le NBColor
Une cellule pour le INDEX
Une cellule pour le EQUIV
Je pense en effet que tu as 4 niveau d'imbrication
Tu fais marcher cette série de formule pour ta colonne H5 à H11
Puis tu chercheras à étendre
Ensuite tu effectueras la mise au point
Puis tu réimbriqueras tes formule

Le résultat sera peut être plus simple ou plus complexe. Tu verras bien
bien. Mais s'il est plus complexe je te déconseille d'imbriquer tes formules
car personne, ni toi sauras la modifier l'année prochaine


--
Papyjac


"Billylaroche" a écrit :

> Bonjour,
>
> J'ai créé un calendrier de vacances.
>
> Dans un onglet, j'ai le calendrier :
> Avec la formule suivante dans un module, je peux indiquer et compter les
> vacances des employés en colorant les cellules correspondantes aux dates de
> vacances :
>
> Function NBCOLOR(Cible As Range, oRef As Range) As Long
> Dim o, i%, k%
> Application.Volatile
> k = oRef.Interior.ColorIndex
> For Each o In Cible
> If o.Interior.ColorIndex = k Then i = i + 1
> Next
> NBCOLOR = i
> End Function
>
> Dans un autre onglet, j'ai une liste qui indique, à partir du calendrier de
> vacances, si l'employé à la date du jour est présent ou absent.
>
> La formule doit d'abord rechercher dans le calendrier la date du jour et si
> la cellule correspondante est en gris, indiquer que l'employé est absent, et
> si la cellule n'est pas coloriée, l'employé est absent.
>
> Voici mon raisonnement :
> Fonction 1: Compter les vacances représentées par des cellule en couleur
> Si la cellule est en grise, c'est que la cellule vaut 1.
> =NBCOLOR(PLAGE;cellule de couleur de référence)>0
>
> Fonction 2 : Rechercher la date de maintenant dans le calendrier
> Si je dois chercher la date du jour dans un tableau comprenant plusieurs
> lignes et plusieurs colonnes (voir schéma plus bas de mon fichier), je peux
> utiliser Index/Equiv
> =INDEX(plage;EQUIV(cellule de la date de maintenant;plage;valeur exacte))
>
> Fonction 3 : Déterminer la présence ou l'absence de l'employé.
> =SI(CELLULE DE LA DATE DU JOUR EST GRISE; si vrai "ABSENT"; si faux "PRÉSENT"
>
> Récapitulatif
> =SI(NBCOLOR(INDEX(plage;EQUIV(cellule date maintenant;plage;0));Cellule de
> couleur de référence)>0;"ABSENT";"PRÉSENT")
>
> Adaptée à mon tableau, la formule se lit comme suit :
> =SI(NBCOLOR(INDEX('2009'!$H$5:$H$11;EQUIV(LIST!$B$1;'2009'!$H$5:$H$11;0));'2009'!$G$2)>0;"ABSENT";"PRÉSENT")
>
> Mon problème est le suivant : la formule fonctionne que dans la plage d'une
> seule colonne (ici de H5:H11 représentant 1 semaine du mois de janvier). Mais
> quand je veux étendre ma plage pour les autres mois, un message #Valeur!
> m'apparaît! Pourtant ca fonctionne super bien lorsque ma plage n'est qu'une
> colonne.
>
> Voici un croquis de mon fichier :
>
> Lig/col H I J K
> janvier février mars ...
> 5 D 4 11 18 15
> 6 L 5 12 19 25
> 7 M 6 13 20 26
> 8 M 7 14 21 27
> 9 J 8 15 22 28
> 10 V 9 16 23 29
> 11 S 10 17 24 30
>
>
> S'il vous plaît, qu'en pensez-vous? Peut-être aurais-je dû choisir
> d'identifier les vacances pour un autre moyen que la couleur, mais par aspect
> pratique et visuel, cette méthode est préférable pour nous.
>
> Merci de votre aide!
>
> --
> Billy



--
Billy


"Billylaroche" a écrit :

Bonjour Jacquouille,

Merci beaucoup de ton aide!
Est-ce que tu connaîtrais aussi une fonction sans à avoir à faire du VBA?

Merci beaucoup:)
--
Billy


"Jacquouille" a écrit :

> Bonsoir Billy, The Kid
>
> Sub Moi_Je_Cherche()
> For each c in range("A5:C7")
> If [c]="Date5" then c.select
> next
> msgbox "Bonne soirée et bonne chance"
> end sub
>
> --
> Bien amicalmement,
> "Le vin est au repas ce que le parfum est à la femme."
>
> Jacquouille.
>
> "Billylaroche" a écrit dans le
> message de news:
> > Bonjour,
> >
> > Je cherche la fonction me permettant de faire une recherche étendue sur
> > plusieurs lignes et colonnes. Ci-joint, une version simplifiée de ce que
> > je
> > cherche à faire.
> >
> > Dans A1, j'ai une Date5 par exemple.
> >
> > Je cherche une fonction pour rechercher cette Date5 dans un tableau du
> > genre :
> >
> > ColonneA ColonneB ColonneC
> > Ligne5 Date1 Date4 Date7
> > Ligne6 Date2 Date5 Date8
> > Ligne7 Date3 Date6 Date9
> >
> > Merci beaucoup de votre aide!
> > --
> > Billy
>
>
>


Avatar
Billylaroche
Bonjour,

Finalement, ce que j'essaie d'expliquer, c'est que j'ai une liste
d'employés. Je voulais mettre en lien cette liste avec un calendrier de
vacances pour en faire une liste de présence qui se mettrait à jour toute
seule.

Donc pour se faire, j'ai besoin d'une fonction avec les critères suivants
1. Recherche la date du jour dans le calendrier (INDEXEQUIV)
2. Vérifier si la cellule est coloriée ou non (NBCOLOR)
3. M'indique si l'employé est présent ou absent selon le critère précédent
(SI)

=SI(NBCOLOR(INDEX('2009'!H5:H11;EQUIV(LIST!B1;'2009'!H5:H11;0));'2009'!G2:G3)>0;"absent";"présent")

C'est pour cela que j'ai besoin d'une recherche. Avec Index/Equiv j'ai
réussi! Ca fonctionne à merveille! Mais seulement sur une colonne, soit 1
semaine. Car mon tableau lui est construit à partir d'une colonne verticale
pour chaque semaine de l'année. Donc quand j'étire ma formule pour couvrir
toutes les semaines, ça fonctionne plus!

Merci de votre aide!
--
Billy


"LSteph" wrote:

Bonsoir,

Tout dépend alors de ce que tu entends par rechercher, c'est ce que fait
le code de Jacquouille, une action.
La différence
si on utilise une fonction est qu'elle a pour seule faculté le renvoi
d' un résultat..alors,
quel résultat qui serait le fruit d'une recherche veux tu dans une cellule ?

cordialement.

--
lSteph


Billylaroche a écrit :
> Bonjour Jacquouille,
>
> Merci beaucoup de ton aide!
> Est-ce que tu connaîtrais aussi une fonction sans à avoir à faire du VBA?
>
> Merci beaucoup:)



Avatar
LSteph
Bonjour,

supposons List! En B1 le nom en C1 la date

pour 1 mois dans 2009!
en A les emplyés avec les noms
en BCDE les 4 sem avec les dates

a_________B____C____D____E
Employés Sem1 Sem2 Sem3 Sem4


Pour rechercher dans le tableau (Horizontal+Vertical)

=index('2009'!$b$2:$e$11;equiv(LIST!B1;'2009'$a$2:$a$11;0);equiv(LIST!c1;'2009'!$b$1:$e$1;0))


..si c'est cela que tu cherches.

--
lSteph

Billylaroche a écrit :
Bonjour,

Finalement, ce que j'essaie d'expliquer, c'est que j'ai une liste
d'employés. Je voulais mettre en lien cette liste avec un calendrier de
vacances pour en faire une liste de présence qui se mettrait à jour toute
seule.

Donc pour se faire, j'ai besoin d'une fonction avec les critères suivants
1. Recherche la date du jour dans le calendrier (INDEXEQUIV)
2. Vérifier si la cellule est coloriée ou non (NBCOLOR)
3. M'indique si l'employé est présent ou absent selon le critère précédent
(SI)

=SI(NBCOLOR(INDEX('2009'!H5:H11;EQUIV(LIST!B1;'2009'!H5:H11;0));'2009'!G2:G3)>0;"absent";"présent")

C'est pour cela que j'ai besoin d'une recherche. Avec Index/Equiv j'ai
réussi! Ca fonctionne à merveille! Mais seulement sur une colonne, soit 1
semaine. Car mon tableau lui est construit à partir d'une colonne verticale
pour chaque semaine de l'année. Donc quand j'étire ma formule pour couvrir
toutes les semaines, ça fonctionne plus!

Merci de votre aide!


Avatar
Billylaroche
Bonjour LSteph!

Je remercie d'abord beaucoup de bien vouloir m'aider.

Ça fonctionne pas du tout pour l'instant. Peut-être si je te montrais mon
fichier?

http://cjoint.com/?mfo4XiKCGK

Encore merci!

--
Billy


"LSteph" a écrit :

Bonjour,

supposons List! En B1 le nom en C1 la date

pour 1 mois dans 2009!
en A les emplyés avec les noms
en BCDE les 4 sem avec les dates

a_________B____C____D____E
Employés Sem1 Sem2 Sem3 Sem4


Pour rechercher dans le tableau (Horizontal+Vertical)

=index('2009'!$b$2:$e$11;equiv(LIST!B1;'2009'$a$2:$a$11;0);equiv(LIST!c1;'2009'!$b$1:$e$1;0))


...si c'est cela que tu cherches.

--
lSteph

Billylaroche a écrit :
> Bonjour,
>
> Finalement, ce que j'essaie d'expliquer, c'est que j'ai une liste
> d'employés. Je voulais mettre en lien cette liste avec un calendrier de
> vacances pour en faire une liste de présence qui se mettrait à jour toute
> seule.
>
> Donc pour se faire, j'ai besoin d'une fonction avec les critères suivants
> 1. Recherche la date du jour dans le calendrier (INDEXEQUIV)
> 2. Vérifier si la cellule est coloriée ou non (NBCOLOR)
> 3. M'indique si l'employé est présent ou absent selon le critère précédent
> (SI)
>
> =SI(NBCOLOR(INDEX('2009'!H5:H11;EQUIV(LIST!B1;'2009'!H5:H11;0));'2009'!G2:G3)>0;"absent";"présent")
>
> C'est pour cela que j'ai besoin d'une recherche. Avec Index/Equiv j'ai
> réussi! Ca fonctionne à merveille! Mais seulement sur une colonne, soit 1
> semaine. Car mon tableau lui est construit à partir d'une colonne verticale
> pour chaque semaine de l'année. Donc quand j'étire ma formule pour couvrir
> toutes les semaines, ça fonctionne plus!
>
> Merci de votre aide!



Avatar
Billylaroche
Allo,

Lorsqu'on colore la cellule de la couleur échantillon en G2 (gris le plus
pâle) dans l'onglet 2009 pour indiquer si l'employé est absent, une formule
dans l'onglet List! met à jour la liste des présences des employés.

http://cjoint.com/?mfo4XiKCGK

Je n'arrive vraiment pas à étendre cette fonction sur les autres semaines de
l'année. Ca fonctionne seulement pour 1 semaine.

Finalement VBA ou non, je cherche désespéramment une solution.

Je sais pas si mes explications sont maintenant suffisantes pour vous aider
à m'aider (sourires)

--
Billy


"LSteph" a écrit :

Bonjour,

supposons List! En B1 le nom en C1 la date

pour 1 mois dans 2009!
en A les emplyés avec les noms
en BCDE les 4 sem avec les dates

a_________B____C____D____E
Employés Sem1 Sem2 Sem3 Sem4


Pour rechercher dans le tableau (Horizontal+Vertical)

=index('2009'!$b$2:$e$11;equiv(LIST!B1;'2009'$a$2:$a$11;0);equiv(LIST!c1;'2009'!$b$1:$e$1;0))


...si c'est cela que tu cherches.

--
lSteph

Billylaroche a écrit :
> Bonjour,
>
> Finalement, ce que j'essaie d'expliquer, c'est que j'ai une liste
> d'employés. Je voulais mettre en lien cette liste avec un calendrier de
> vacances pour en faire une liste de présence qui se mettrait à jour toute
> seule.
>
> Donc pour se faire, j'ai besoin d'une fonction avec les critères suivants
> 1. Recherche la date du jour dans le calendrier (INDEXEQUIV)
> 2. Vérifier si la cellule est coloriée ou non (NBCOLOR)
> 3. M'indique si l'employé est présent ou absent selon le critère précédent
> (SI)
>
> =SI(NBCOLOR(INDEX('2009'!H5:H11;EQUIV(LIST!B1;'2009'!H5:H11;0));'2009'!G2:G3)>0;"absent";"présent")
>
> C'est pour cela que j'ai besoin d'une recherche. Avec Index/Equiv j'ai
> réussi! Ca fonctionne à merveille! Mais seulement sur une colonne, soit 1
> semaine. Car mon tableau lui est construit à partir d'une colonne verticale
> pour chaque semaine de l'année. Donc quand j'étire ma formule pour couvrir
> toutes les semaines, ça fonctionne plus!
>
> Merci de votre aide!



Avatar
Jacquouille
Bonsoir
Si ce n'est que pour rechercher une date dans une liste, il suffit de
modifier:
----------------------------------
Sub Moi_Je_Cherche()
For each c in range("A5:C7")
If [c]Úte then c.select
next
end sub
-------------------------
sélectionnera la date du jour (du PC)
Si tu veux une autre date, tu l'écris en A1 et tu modifies:
If [c]¡ then c.select
--------------------
Bonne chance
--
Bien amicalmement,
"Le vin est au repas ce que le parfum est à la femme."

Jacquouille.

"Billylaroche" a écrit dans le
message de news:
Bonjour,

En fait, c'est pour résoudre un problème décrit plus bas.

Mon problème provient de ma fonction recherche.
Je dois rechercher la date du jour dans un calendrier et je n'y arrive pas
sur plusieurs colonnes. J'ai pensé posé ma question de façon plus simple
vu
que mon problème est spécifique à une recherche d'une valeur. Pour le
reste
de la l'imbrication de formules, je pourrais ensuite y arriver car mon
raisonnement fonction, mais pour une simple colonne seulement. Lire ci-bas
pour mieux comprendre.

Merci beaucoup de votre aide! Je commence à douter que ce soit possible!
Pourtant je suis si près du but!

Merci!

Bonjour,

J'ai tenté de suivre votre conseil, mais malheureusement ça ne fonctionne
toujours pas sur plusieurs colonnes.

=SI(NBCOLOR(INDEX('2009'!H5:H11;EQUIV(LIST!B1;'2009'!H5:H11;0));'2009'!G2:G3)>0;"absent";"présent")

L'imbrication ne fonctionne que sur 1 seule colonne. La fonction
Index/Équivalent ne me permet pas la recherche sur plusieurs colonnes.

Néanmoins, je tiens à vous remercier d'avoir pris le temps de me répondre.

--
Billy


"Papyjac" a écrit :

Bonjour Billylaroche,

Je te vais pas te donner la solution, mais une piste pour l'atteindre.

En ta formule qui marche me fait peur. je te propose avant de pousuivre
de
décomposer ta formule en formule élémentaire non imbriquée.
Mettre chaque formule intermédiaire dans une cellule différente
Une cellule pour le SI
Une cellule pour Le NBColor
Une cellule pour le INDEX
Une cellule pour le EQUIV
Je pense en effet que tu as 4 niveau d'imbrication
Tu fais marcher cette série de formule pour ta colonne H5 à H11
Puis tu chercheras à étendre
Ensuite tu effectueras la mise au point
Puis tu réimbriqueras tes formule

Le résultat sera peut être plus simple ou plus complexe. Tu verras bien
bien. Mais s'il est plus complexe je te déconseille d'imbriquer tes
formules
car personne, ni toi sauras la modifier l'année prochaine


--
Papyjac


"Billylaroche" a écrit :

> Bonjour,
>
> J'ai créé un calendrier de vacances.
>
> Dans un onglet, j'ai le calendrier :
> Avec la formule suivante dans un module, je peux indiquer et compter
> les
> vacances des employés en colorant les cellules correspondantes aux
> dates de
> vacances :
>
> Function NBCOLOR(Cible As Range, oRef As Range) As Long
> Dim o, i%, k%
> Application.Volatile
> k = oRef.Interior.ColorIndex
> For Each o In Cible
> If o.Interior.ColorIndex = k Then i = i + 1
> Next
> NBCOLOR = i
> End Function
>
> Dans un autre onglet, j'ai une liste qui indique, à partir du
> calendrier de
> vacances, si l'employé à la date du jour est présent ou absent.
>
> La formule doit d'abord rechercher dans le calendrier la date du jour
> et si
> la cellule correspondante est en gris, indiquer que l'employé est
> absent, et
> si la cellule n'est pas coloriée, l'employé est absent.
>
> Voici mon raisonnement :
> Fonction 1: Compter les vacances représentées par des cellule en
> couleur
> Si la cellule est en grise, c'est que la cellule vaut 1.
> =NBCOLOR(PLAGE;cellule de couleur de référence)>0
>
> Fonction 2 : Rechercher la date de maintenant dans le calendrier
> Si je dois chercher la date du jour dans un tableau comprenant
> plusieurs
> lignes et plusieurs colonnes (voir schéma plus bas de mon fichier), je
> peux
> utiliser Index/Equiv
> =INDEX(plage;EQUIV(cellule de la date de maintenant;plage;valeur
> exacte))
>
> Fonction 3 : Déterminer la présence ou l'absence de l'employé.
> =SI(CELLULE DE LA DATE DU JOUR EST GRISE; si vrai "ABSENT"; si faux
> "PRÉSENT"
>
> Récapitulatif
> =SI(NBCOLOR(INDEX(plage;EQUIV(cellule date maintenant;plage;0));Cellule
> de
> couleur de référence)>0;"ABSENT";"PRÉSENT")
>
> Adaptée à mon tableau, la formule se lit comme suit :
> =SI(NBCOLOR(INDEX('2009'!$H$5:$H$11;EQUIV(LIST!$B$1;'2009'!$H$5:$H$11;0));'2009'!$G$2)>0;"ABSENT";"PRÉSENT")
>
> Mon problème est le suivant : la formule fonctionne que dans la plage
> d'une
> seule colonne (ici de H5:H11 représentant 1 semaine du mois de
> janvier). Mais
> quand je veux étendre ma plage pour les autres mois, un message
> #Valeur!
> m'apparaît! Pourtant ca fonctionne super bien lorsque ma plage n'est
> qu'une
> colonne.
>
> Voici un croquis de mon fichier :
>
> Lig/col H I J K
> janvier février mars ...
> 5 D 4 11 18 15
> 6 L 5 12 19 25
> 7 M 6 13 20 26
> 8 M 7 14 21 27
> 9 J 8 15 22 28
> 10 V 9 16 23 29
> 11 S 10 17 24 30
>
>
> S'il vous plaît, qu'en pensez-vous? Peut-être aurais-je dû choisir
> d'identifier les vacances pour un autre moyen que la couleur, mais par
> aspect
> pratique et visuel, cette méthode est préférable pour nous.
>
> Merci de votre aide!
>
> --
> Billy



--
Billy


"Billylaroche" a écrit :

Bonjour Jacquouille,

Merci beaucoup de ton aide!
Est-ce que tu connaîtrais aussi une fonction sans à avoir à faire du VBA?

Merci beaucoup:)
--
Billy


"Jacquouille" a écrit :

> Bonsoir Billy, The Kid
>
> Sub Moi_Je_Cherche()
> For each c in range("A5:C7")
> If [c]="Date5" then c.select
> next
> msgbox "Bonne soirée et bonne chance"
> end sub
>
> --
> Bien amicalmement,
> "Le vin est au repas ce que le parfum est à la femme."
>
> Jacquouille.
>
> "Billylaroche" a écrit dans le
> message de news:
> > Bonjour,
> >
> > Je cherche la fonction me permettant de faire une recherche étendue
> > sur
> > plusieurs lignes et colonnes. Ci-joint, une version simplifiée de ce
> > que
> > je
> > cherche à faire.
> >
> > Dans A1, j'ai une Date5 par exemple.
> >
> > Je cherche une fonction pour rechercher cette Date5 dans un tableau
> > du
> > genre :
> >
> > ColonneA ColonneB ColonneC
> > Ligne5 Date1 Date4 Date7
> > Ligne6 Date2 Date5 Date8
> > Ligne7 Date3 Date6 Date9
> >
> > Merci beaucoup de votre aide!
> > --
> > Billy
>
>
>




Avatar
Billylaroche
Bonsoir!

Merci beaucoup! C'est génial!

--
Billy the kid :)


"Jacquouille" a écrit :

Bonsoir
Si ce n'est que pour rechercher une date dans une liste, il suffit de
modifier:
----------------------------------
Sub Moi_Je_Cherche()
For each c in range("A5:C7")
If [c]Úte then c.select
next
end sub
-------------------------
sélectionnera la date du jour (du PC)
Si tu veux une autre date, tu l'écris en A1 et tu modifies:
If [c]¡ then c.select
--------------------
Bonne chance
--
Bien amicalmement,
"Le vin est au repas ce que le parfum est à la femme."

Jacquouille.

"Billylaroche" a écrit dans le
message de news:
> Bonjour,
>
> En fait, c'est pour résoudre un problème décrit plus bas.
>
> Mon problème provient de ma fonction recherche.
> Je dois rechercher la date du jour dans un calendrier et je n'y arrive pas
> sur plusieurs colonnes. J'ai pensé posé ma question de façon plus simple
> vu
> que mon problème est spécifique à une recherche d'une valeur. Pour le
> reste
> de la l'imbrication de formules, je pourrais ensuite y arriver car mon
> raisonnement fonction, mais pour une simple colonne seulement. Lire ci-bas
> pour mieux comprendre.
>
> Merci beaucoup de votre aide! Je commence à douter que ce soit possible!
> Pourtant je suis si près du but!
>
> Merci!
>
> Bonjour,
>
> J'ai tenté de suivre votre conseil, mais malheureusement ça ne fonctionne
> toujours pas sur plusieurs colonnes.
>
> =SI(NBCOLOR(INDEX('2009'!H5:H11;EQUIV(LIST!B1;'2009'!H5:H11;0));'2009'!G2:G3)>0;"absent";"présent")
>
> L'imbrication ne fonctionne que sur 1 seule colonne. La fonction
> Index/Équivalent ne me permet pas la recherche sur plusieurs colonnes.
>
> Néanmoins, je tiens à vous remercier d'avoir pris le temps de me répondre.
>
> --
> Billy
>
>
> "Papyjac" a écrit :
>
>> Bonjour Billylaroche,
>>
>> Je te vais pas te donner la solution, mais une piste pour l'atteindre.
>>
>> En ta formule qui marche me fait peur. je te propose avant de pousuivre
>> de
>> décomposer ta formule en formule élémentaire non imbriquée.
>> Mettre chaque formule intermédiaire dans une cellule différente
>> Une cellule pour le SI
>> Une cellule pour Le NBColor
>> Une cellule pour le INDEX
>> Une cellule pour le EQUIV
>> Je pense en effet que tu as 4 niveau d'imbrication
>> Tu fais marcher cette série de formule pour ta colonne H5 à H11
>> Puis tu chercheras à étendre
>> Ensuite tu effectueras la mise au point
>> Puis tu réimbriqueras tes formule
>>
>> Le résultat sera peut être plus simple ou plus complexe. Tu verras bien
>> bien. Mais s'il est plus complexe je te déconseille d'imbriquer tes
>> formules
>> car personne, ni toi sauras la modifier l'année prochaine
>>
>>
>> --
>> Papyjac
>>
>>
>> "Billylaroche" a écrit :
>>
>> > Bonjour,
>> >
>> > J'ai créé un calendrier de vacances.
>> >
>> > Dans un onglet, j'ai le calendrier :
>> > Avec la formule suivante dans un module, je peux indiquer et compter
>> > les
>> > vacances des employés en colorant les cellules correspondantes aux
>> > dates de
>> > vacances :
>> >
>> > Function NBCOLOR(Cible As Range, oRef As Range) As Long
>> > Dim o, i%, k%
>> > Application.Volatile
>> > k = oRef.Interior.ColorIndex
>> > For Each o In Cible
>> > If o.Interior.ColorIndex = k Then i = i + 1
>> > Next
>> > NBCOLOR = i
>> > End Function
>> >
>> > Dans un autre onglet, j'ai une liste qui indique, à partir du
>> > calendrier de
>> > vacances, si l'employé à la date du jour est présent ou absent.
>> >
>> > La formule doit d'abord rechercher dans le calendrier la date du jour
>> > et si
>> > la cellule correspondante est en gris, indiquer que l'employé est
>> > absent, et
>> > si la cellule n'est pas coloriée, l'employé est absent.
>> >
>> > Voici mon raisonnement :
>> > Fonction 1: Compter les vacances représentées par des cellule en
>> > couleur
>> > Si la cellule est en grise, c'est que la cellule vaut 1.
>> > =NBCOLOR(PLAGE;cellule de couleur de référence)>0
>> >
>> > Fonction 2 : Rechercher la date de maintenant dans le calendrier
>> > Si je dois chercher la date du jour dans un tableau comprenant
>> > plusieurs
>> > lignes et plusieurs colonnes (voir schéma plus bas de mon fichier), je
>> > peux
>> > utiliser Index/Equiv
>> > =INDEX(plage;EQUIV(cellule de la date de maintenant;plage;valeur
>> > exacte))
>> >
>> > Fonction 3 : Déterminer la présence ou l'absence de l'employé.
>> > =SI(CELLULE DE LA DATE DU JOUR EST GRISE; si vrai "ABSENT"; si faux
>> > "PRÉSENT"
>> >
>> > Récapitulatif
>> > =SI(NBCOLOR(INDEX(plage;EQUIV(cellule date maintenant;plage;0));Cellule
>> > de
>> > couleur de référence)>0;"ABSENT";"PRÉSENT")
>> >
>> > Adaptée à mon tableau, la formule se lit comme suit :
>> > =SI(NBCOLOR(INDEX('2009'!$H$5:$H$11;EQUIV(LIST!$B$1;'2009'!$H$5:$H$11;0));'2009'!$G$2)>0;"ABSENT";"PRÉSENT")
>> >
>> > Mon problème est le suivant : la formule fonctionne que dans la plage
>> > d'une
>> > seule colonne (ici de H5:H11 représentant 1 semaine du mois de
>> > janvier). Mais
>> > quand je veux étendre ma plage pour les autres mois, un message
>> > #Valeur!
>> > m'apparaît! Pourtant ca fonctionne super bien lorsque ma plage n'est
>> > qu'une
>> > colonne.
>> >
>> > Voici un croquis de mon fichier :
>> >
>> > Lig/col H I J K
>> > janvier février mars ...
>> > 5 D 4 11 18 15
>> > 6 L 5 12 19 25
>> > 7 M 6 13 20 26
>> > 8 M 7 14 21 27
>> > 9 J 8 15 22 28
>> > 10 V 9 16 23 29
>> > 11 S 10 17 24 30
>> >
>> >
>> > S'il vous plaît, qu'en pensez-vous? Peut-être aurais-je dû choisir
>> > d'identifier les vacances pour un autre moyen que la couleur, mais par
>> > aspect
>> > pratique et visuel, cette méthode est préférable pour nous.
>> >
>> > Merci de votre aide!
>> >
>> > --
>> > Billy
>
> --
> Billy
>
>
> "Billylaroche" a écrit :
>
>> Bonjour Jacquouille,
>>
>> Merci beaucoup de ton aide!
>> Est-ce que tu connaîtrais aussi une fonction sans à avoir à faire du VBA?
>>
>> Merci beaucoup:)
>> --
>> Billy
>>
>>
>> "Jacquouille" a écrit :
>>
>> > Bonsoir Billy, The Kid
>> >
>> > Sub Moi_Je_Cherche()
>> > For each c in range("A5:C7")
>> > If [c]="Date5" then c.select
>> > next
>> > msgbox "Bonne soirée et bonne chance"
>> > end sub
>> >
>> > --
>> > Bien amicalmement,
>> > "Le vin est au repas ce que le parfum est à la femme."
>> >
>> > Jacquouille.
>> >
>> > "Billylaroche" a écrit dans le
>> > message de news:
>> > > Bonjour,
>> > >
>> > > Je cherche la fonction me permettant de faire une recherche étendue
>> > > sur
>> > > plusieurs lignes et colonnes. Ci-joint, une version simplifiée de ce
>> > > que
>> > > je
>> > > cherche à faire.
>> > >
>> > > Dans A1, j'ai une Date5 par exemple.
>> > >
>> > > Je cherche une fonction pour rechercher cette Date5 dans un tableau
>> > > du
>> > > genre :
>> > >
>> > > ColonneA ColonneB ColonneC
>> > > Ligne5 Date1 Date4 Date7
>> > > Ligne6 Date2 Date5 Date8
>> > > Ligne7 Date3 Date6 Date9
>> > >
>> > > Merci beaucoup de votre aide!
>> > > --
>> > > Billy
>> >
>> >
>> >