Bonjour,
Je suis toujours aussi novice et je cherche à progresser...
J'ai lu les pages de Laurent Longre sur "le parcours et la recherche dans
une collection", mais je ne sais comment mettre en application pour mon cas
que voici :
Zones de recherche : A1 = 25, B1= "Décembre"
Zone de résultat : D1 reçoit le libellé de la recherche correspondant à
A1+B1.
Zones de données : C1:E1000
C1=01.....C1000= 31
D1=Janvier...D1000= Décembre
E1= 1er libellé E1000= dernier libellé.
Comment faire pour récupérer rapidement le libéllé correspondant au 25
Décembre?
Je n'ai rien trouvé de mieux que de me ballader de cellule en cellule. Je
pressens qu'il y a plus efficace...recherche indéxée? recherche
dichotomique?
Qui sait?
D'avance merci
Noégor
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Lolote
Salut Noegor,
Données récupérées en F1 et non pas en D1 ÞCALER(E1;A1-1+LIGNE(INDEX(E:E;EQUIV(B1;D:D;0);1))-1;0) avec comme tu le dis : En colonne C les chiffres En colonne D les mois En colonne E les libélés
En espérant avoir répondu à ta question.
@+ Lolote
"Noegor" a écrit dans le message de news:
Bonjour, Je suis toujours aussi novice et je cherche à progresser... J'ai lu les pages de Laurent Longre sur "le parcours et la recherche dans une collection", mais je ne sais comment mettre en application pour mon cas que voici : Zones de recherche : A1 = 25, B1= "Décembre" Zone de résultat : D1 reçoit le libellé de la recherche correspondant à A1+B1. Zones de données : C1:E1000 C1.....C1000= 31 D1=Janvier...D1000= Décembre E1= 1er libellé E1000= dernier libellé. Comment faire pour récupérer rapidement le libéllé correspondant au 25 Décembre? Je n'ai rien trouvé de mieux que de me ballader de cellule en cellule. Je pressens qu'il y a plus efficace...recherche indéxée? recherche dichotomique? Qui sait? D'avance merci Noégor
Salut Noegor,
Données récupérées en F1 et non pas en D1
ÞCALER(E1;A1-1+LIGNE(INDEX(E:E;EQUIV(B1;D:D;0);1))-1;0)
avec comme tu le dis :
En colonne C les chiffres
En colonne D les mois
En colonne E les libélés
En espérant avoir répondu à ta question.
@+ Lolote
"Noegor" <teleclean@vol.lu> a écrit dans le message de news:
uj4UYWnIGHA.1728@TK2MSFTNGP09.phx.gbl...
Bonjour,
Je suis toujours aussi novice et je cherche à progresser...
J'ai lu les pages de Laurent Longre sur "le parcours et la recherche dans
une collection", mais je ne sais comment mettre en application pour mon
cas
que voici :
Zones de recherche : A1 = 25, B1= "Décembre"
Zone de résultat : D1 reçoit le libellé de la recherche correspondant à
A1+B1.
Zones de données : C1:E1000
C1.....C1000= 31
D1=Janvier...D1000= Décembre
E1= 1er libellé E1000= dernier libellé.
Comment faire pour récupérer rapidement le libéllé correspondant au 25
Décembre?
Je n'ai rien trouvé de mieux que de me ballader de cellule en cellule. Je
pressens qu'il y a plus efficace...recherche indéxée? recherche
dichotomique?
Qui sait?
D'avance merci
Noégor
Données récupérées en F1 et non pas en D1 ÞCALER(E1;A1-1+LIGNE(INDEX(E:E;EQUIV(B1;D:D;0);1))-1;0) avec comme tu le dis : En colonne C les chiffres En colonne D les mois En colonne E les libélés
En espérant avoir répondu à ta question.
@+ Lolote
"Noegor" a écrit dans le message de news:
Bonjour, Je suis toujours aussi novice et je cherche à progresser... J'ai lu les pages de Laurent Longre sur "le parcours et la recherche dans une collection", mais je ne sais comment mettre en application pour mon cas que voici : Zones de recherche : A1 = 25, B1= "Décembre" Zone de résultat : D1 reçoit le libellé de la recherche correspondant à A1+B1. Zones de données : C1:E1000 C1.....C1000= 31 D1=Janvier...D1000= Décembre E1= 1er libellé E1000= dernier libellé. Comment faire pour récupérer rapidement le libéllé correspondant au 25 Décembre? Je n'ai rien trouvé de mieux que de me ballader de cellule en cellule. Je pressens qu'il y a plus efficace...recherche indéxée? recherche dichotomique? Qui sait? D'avance merci Noégor
JB
Bonjour,
L'optimisation commence par une bonne organisation des données.
cas 1: Toutes les dates sont consécutives et sous la forme jj/mm/aa et la zone des libellés est nommée Libellés.
A B C D E F 1 16/1/2006 01/01/2006 AA1 2 02/01/2006 AA2 3 03/01/2006 AA3 4 5
=Index(libellés,A1-Date(2006;1;1)+1))
Cas 2/ Il manque des dates mais elles sont TRIEES dans l'ordre croissant
=INDEX(Libellés;Equiv(A1;Dates;1))
Avec 1 dans Equiv, la recherche est dichotomique.
Cordialement JB
Bonjour,
L'optimisation commence par une bonne organisation des données.
cas 1:
Toutes les dates sont consécutives et sous la forme jj/mm/aa et la
zone des libellés est nommée Libellés.
A B C D E F
1 16/1/2006 01/01/2006 AA1
2 02/01/2006 AA2
3 03/01/2006 AA3
4
5
=Index(libellés,A1-Date(2006;1;1)+1))
Cas 2/ Il manque des dates mais elles sont TRIEES dans l'ordre
croissant
L'optimisation commence par une bonne organisation des données.
cas 1: Toutes les dates sont consécutives et sous la forme jj/mm/aa et la zone des libellés est nommée Libellés.
A B C D E F 1 16/1/2006 01/01/2006 AA1 2 02/01/2006 AA2 3 03/01/2006 AA3 4 5
=Index(libellés,A1-Date(2006;1;1)+1))
Cas 2/ Il manque des dates mais elles sont TRIEES dans l'ordre croissant
=INDEX(Libellés;Equiv(A1;Dates;1))
Avec 1 dans Equiv, la recherche est dichotomique.
Cordialement JB
Noegor
Merci des réponses, je peux avancer mais si je voulais le faire en VBA? A + "JB" a écrit dans le message de news: Bonjour,
L'optimisation commence par une bonne organisation des données.
cas 1: Toutes les dates sont consécutives et sous la forme jj/mm/aa et la zone des libellés est nommée Libellés.
A B C D E F 1 16/1/2006 01/01/2006 AA1 2 02/01/2006 AA2 3 03/01/2006 AA3 4 5
=Index(libellés,A1-Date(2006;1;1)+1))
Cas 2/ Il manque des dates mais elles sont TRIEES dans l'ordre croissant
=INDEX(Libellés;Equiv(A1;Dates;1))
Avec 1 dans Equiv, la recherche est dichotomique.
Cordialement JB
Merci des réponses, je peux avancer mais si je voulais le faire en VBA?
A +
"JB" <boisgontier@hotmail.com> a écrit dans le message de
news:1138284948.740331.85360@g44g2000cwa.googlegroups.com...
Bonjour,
L'optimisation commence par une bonne organisation des données.
cas 1:
Toutes les dates sont consécutives et sous la forme jj/mm/aa et la
zone des libellés est nommée Libellés.
A B C D E F
1 16/1/2006 01/01/2006 AA1
2 02/01/2006 AA2
3 03/01/2006 AA3
4
5
=Index(libellés,A1-Date(2006;1;1)+1))
Cas 2/ Il manque des dates mais elles sont TRIEES dans l'ordre
croissant
Merci des réponses, je peux avancer mais si je voulais le faire en VBA? A + "JB" a écrit dans le message de news: Bonjour,
L'optimisation commence par une bonne organisation des données.
cas 1: Toutes les dates sont consécutives et sous la forme jj/mm/aa et la zone des libellés est nommée Libellés.
A B C D E F 1 16/1/2006 01/01/2006 AA1 2 02/01/2006 AA2 3 03/01/2006 AA3 4 5
=Index(libellés,A1-Date(2006;1;1)+1))
Cas 2/ Il manque des dates mais elles sont TRIEES dans l'ordre croissant
=INDEX(Libellés;Equiv(A1;Dates;1))
Avec 1 dans Equiv, la recherche est dichotomique.
Cordialement JB
Fredo P.
Bonsoir Neogor Tu devrais pouvoir te débrouiller avec ça. [D1] = Range("E" & Evaluate("=sum((A1:A1000 %) * (B1:B1000=""Décembre"") * Row(B1:B1000))")) ou [D1] = Range("E" & Evaluate("=sum((A1:A1000 ¡) * (B1:B1000±) * Row(B1:B1000))"))
-- Mon E-mail, c'est sans voyelle avant l'@. "Noegor" a écrit dans le message de news:
Bonjour, Je suis toujours aussi novice et je cherche à progresser... J'ai lu les pages de Laurent Longre sur "le parcours et la recherche dans une collection", mais je ne sais comment mettre en application pour mon cas
que voici : Zones de recherche : A1 = 25, B1= "Décembre" Zone de résultat : D1 reçoit le libellé de la recherche correspondant à A1+B1. Zones de données : C1:E1000 C1.....C1000= 31 D1=Janvier...D1000= Décembre E1= 1er libellé E1000= dernier libellé. Comment faire pour récupérer rapidement le libéllé correspondant au 25 Décembre? Je n'ai rien trouvé de mieux que de me ballader de cellule en cellule. Je pressens qu'il y a plus efficace...recherche indéxée? recherche dichotomique? Qui sait? D'avance merci Noégor
Bonsoir Neogor
Tu devrais pouvoir te débrouiller avec ça.
[D1] = Range("E" & Evaluate("=sum((A1:A1000 %) * (B1:B1000=""Décembre"") *
Row(B1:B1000))"))
ou
[D1] = Range("E" & Evaluate("=sum((A1:A1000 ¡) * (B1:B1000±) *
Row(B1:B1000))"))
--
Mon E-mail, c'est sans voyelle avant l'@.
"Noegor" <teleclean@vol.lu> a écrit dans le message de
news:uj4UYWnIGHA.1728@TK2MSFTNGP09.phx.gbl...
Bonjour,
Je suis toujours aussi novice et je cherche à progresser...
J'ai lu les pages de Laurent Longre sur "le parcours et la recherche dans
une collection", mais je ne sais comment mettre en application pour mon
cas
que voici :
Zones de recherche : A1 = 25, B1= "Décembre"
Zone de résultat : D1 reçoit le libellé de la recherche correspondant à
A1+B1.
Zones de données : C1:E1000
C1.....C1000= 31
D1=Janvier...D1000= Décembre
E1= 1er libellé E1000= dernier libellé.
Comment faire pour récupérer rapidement le libéllé correspondant au 25
Décembre?
Je n'ai rien trouvé de mieux que de me ballader de cellule en cellule. Je
pressens qu'il y a plus efficace...recherche indéxée? recherche
dichotomique?
Qui sait?
D'avance merci
Noégor
Bonsoir Neogor Tu devrais pouvoir te débrouiller avec ça. [D1] = Range("E" & Evaluate("=sum((A1:A1000 %) * (B1:B1000=""Décembre"") * Row(B1:B1000))")) ou [D1] = Range("E" & Evaluate("=sum((A1:A1000 ¡) * (B1:B1000±) * Row(B1:B1000))"))
-- Mon E-mail, c'est sans voyelle avant l'@. "Noegor" a écrit dans le message de news:
Bonjour, Je suis toujours aussi novice et je cherche à progresser... J'ai lu les pages de Laurent Longre sur "le parcours et la recherche dans une collection", mais je ne sais comment mettre en application pour mon cas
que voici : Zones de recherche : A1 = 25, B1= "Décembre" Zone de résultat : D1 reçoit le libellé de la recherche correspondant à A1+B1. Zones de données : C1:E1000 C1.....C1000= 31 D1=Janvier...D1000= Décembre E1= 1er libellé E1000= dernier libellé. Comment faire pour récupérer rapidement le libéllé correspondant au 25 Décembre? Je n'ai rien trouvé de mieux que de me ballader de cellule en cellule. Je pressens qu'il y a plus efficace...recherche indéxée? recherche dichotomique? Qui sait? D'avance merci Noégor
JB
http://cjoint.com/?bAuTWqJLGO
Sub essai1() d = Range("A1") MsgBox Application.Index(Range("libelles"), [A1] - DateSerial(2006, 1, 1) + 1) End Sub
Sub essai2() d = Range("A1") p = Application.Match([A1], Range("dates"), 1) If IsError(p) Then MsgBox "Non trouvé" Else MsgBox Application.Index(Range("libelles"), p) End If End Sub
JB
http://cjoint.com/?bAuTWqJLGO
Sub essai1()
d = Range("A1")
MsgBox Application.Index(Range("libelles"), [A1] - DateSerial(2006,
1, 1) + 1)
End Sub
Sub essai2()
d = Range("A1")
p = Application.Match([A1], Range("dates"), 1)
If IsError(p) Then
MsgBox "Non trouvé"
Else
MsgBox Application.Index(Range("libelles"), p)
End If
End Sub
Sub essai1() d = Range("A1") MsgBox Application.Index(Range("libelles"), [A1] - DateSerial(2006, 1, 1) + 1) End Sub
Sub essai2() d = Range("A1") p = Application.Match([A1], Range("dates"), 1) If IsError(p) Then MsgBox "Non trouvé" Else MsgBox Application.Index(Range("libelles"), p) End If End Sub
JB
Noegor
Bonjour Fredo, Je profite du weekEnd pour tester les réponses et je n'y arrive pas. Si j'ai bien compris : D1 reçoit la réponse A 1 +B1 c'est ma clef de recherche A1:A1000 ? B1:B1000 ? Je suis perdu. Peux-tu me donner la "clef" ? Merci d'avance et bon dimanche Noégor
"Fredo P." a écrit dans le message de news:
Bonsoir Neogor Tu devrais pouvoir te débrouiller avec ça. [D1] = Range("E" & Evaluate("=sum((A1:A1000 %) * (B1:B1000=""Décembre"") *
-- Mon E-mail, c'est sans voyelle avant l'@. "Noegor" a écrit dans le message de news:
Bonjour, Je suis toujours aussi novice et je cherche à progresser... J'ai lu les pages de Laurent Longre sur "le parcours et la recherche dans
une collection", mais je ne sais comment mettre en application pour mon cas
que voici : Zones de recherche : A1 = 25, B1= "Décembre" Zone de résultat : D1 reçoit le libellé de la recherche correspondant à A1+B1. Zones de données : C1:E1000 C1.....C1000= 31 D1=Janvier...D1000= Décembre E1= 1er libellé E1000= dernier libellé. Comment faire pour récupérer rapidement le libéllé correspondant au 25 Décembre? Je n'ai rien trouvé de mieux que de me ballader de cellule en cellule. Je
pressens qu'il y a plus efficace...recherche indéxée? recherche dichotomique? Qui sait? D'avance merci Noégor
Bonjour Fredo,
Je profite du weekEnd pour tester les réponses et je n'y arrive pas.
Si j'ai bien compris :
D1 reçoit la réponse
A 1 +B1 c'est ma clef de recherche
A1:A1000 ?
B1:B1000 ?
Je suis perdu.
Peux-tu me donner la "clef" ?
Merci d'avance et bon dimanche
Noégor
"Fredo P." <fredpst@9online.fr> a écrit dans le message de
news:uTNCYkqIGHA.2460@TK2MSFTNGP10.phx.gbl...
Bonsoir Neogor
Tu devrais pouvoir te débrouiller avec ça.
[D1] = Range("E" & Evaluate("=sum((A1:A1000 %) * (B1:B1000=""Décembre"")
*
--
Mon E-mail, c'est sans voyelle avant l'@.
"Noegor" <teleclean@vol.lu> a écrit dans le message de
news:uj4UYWnIGHA.1728@TK2MSFTNGP09.phx.gbl...
Bonjour,
Je suis toujours aussi novice et je cherche à progresser...
J'ai lu les pages de Laurent Longre sur "le parcours et la recherche
dans
une collection", mais je ne sais comment mettre en application pour mon
cas
que voici :
Zones de recherche : A1 = 25, B1= "Décembre"
Zone de résultat : D1 reçoit le libellé de la recherche correspondant à
A1+B1.
Zones de données : C1:E1000
C1.....C1000= 31
D1=Janvier...D1000= Décembre
E1= 1er libellé E1000= dernier libellé.
Comment faire pour récupérer rapidement le libéllé correspondant au 25
Décembre?
Je n'ai rien trouvé de mieux que de me ballader de cellule en cellule.
Je
pressens qu'il y a plus efficace...recherche indéxée? recherche
dichotomique?
Qui sait?
D'avance merci
Noégor
Bonjour Fredo, Je profite du weekEnd pour tester les réponses et je n'y arrive pas. Si j'ai bien compris : D1 reçoit la réponse A 1 +B1 c'est ma clef de recherche A1:A1000 ? B1:B1000 ? Je suis perdu. Peux-tu me donner la "clef" ? Merci d'avance et bon dimanche Noégor
"Fredo P." a écrit dans le message de news:
Bonsoir Neogor Tu devrais pouvoir te débrouiller avec ça. [D1] = Range("E" & Evaluate("=sum((A1:A1000 %) * (B1:B1000=""Décembre"") *
-- Mon E-mail, c'est sans voyelle avant l'@. "Noegor" a écrit dans le message de news:
Bonjour, Je suis toujours aussi novice et je cherche à progresser... J'ai lu les pages de Laurent Longre sur "le parcours et la recherche dans
une collection", mais je ne sais comment mettre en application pour mon cas
que voici : Zones de recherche : A1 = 25, B1= "Décembre" Zone de résultat : D1 reçoit le libellé de la recherche correspondant à A1+B1. Zones de données : C1:E1000 C1.....C1000= 31 D1=Janvier...D1000= Décembre E1= 1er libellé E1000= dernier libellé. Comment faire pour récupérer rapidement le libéllé correspondant au 25 Décembre? Je n'ai rien trouvé de mieux que de me ballader de cellule en cellule. Je
pressens qu'il y a plus efficace...recherche indéxée? recherche dichotomique? Qui sait? D'avance merci Noégor
Fredo P.
J'ai repris ton premier post pour revoir la chose, effectivement cela avait besoin d'être revu.
Zones de recherche : A1 = 25, B1= "Décembre" Zone de résultat : D1 reçoit le libellé de la recherche correspondant à A1+B1. ____1) Si tu inscrit le résultat en D1 qui appartient à ta zone de données, cela ne peut pas bien fonctionner. Zones de données : C1:E1000 C1.....C1000= 31 D1=Janvier...D1000= Décembre E1= 1er libellé E1000= dernier libellé. Comment faire pour récupérer rapidement le libéllé correspondant au 25 Décembre? --
Je suis perdu. Peux-tu me donner la "clef" ? Dans ce cas il n'y a pas besoin de clef, cette ligne de code suffit à
trouver ce que tu cherches. Si En A1=premier critére de recherche à trouver en C1:C1000 et B1.me crit de rech de rech à trouver en D1:D1000, en E1:E1000 la référence. [D1] = Range("E" & Evaluate("=sum((C1:C1000 ¡) * (D1:D1000±) * Row(D1:D1000))")) Si tes critères de recherche sont toujours en A1 & B1, tu peux mettre la ligne dans une fonction comme ceci: Function Trv() Trv=Range("E" & Evaluate("=sum((C1:C1000 ¡) * (D1:D1000±) * Row(D1:D1000))")) End Function ;que tu pourras appeler dans n'importe quelle cellule libre de cette manière:=Trv()
J'ai repris ton premier post pour revoir la chose, effectivement cela avait
besoin d'être revu.
Zones de recherche : A1 = 25, B1= "Décembre"
Zone de résultat : D1 reçoit le libellé de la recherche correspondant à
A1+B1.
____1) Si tu inscrit le résultat en D1 qui appartient à ta zone de données,
cela ne peut pas bien fonctionner.
Zones de données : C1:E1000
C1.....C1000= 31
D1=Janvier...D1000= Décembre
E1= 1er libellé E1000= dernier libellé.
Comment faire pour récupérer rapidement le libéllé correspondant au 25
Décembre?
--
Je suis perdu.
Peux-tu me donner la "clef" ?
Dans ce cas il n'y a pas besoin de clef, cette ligne de code suffit à
trouver ce que tu cherches.
Si En A1=premier critére de recherche à trouver en C1:C1000 et B1.me crit
de rech de rech à trouver en D1:D1000, en E1:E1000 la référence.
[D1] = Range("E" & Evaluate("=sum((C1:C1000 ¡) * (D1:D1000±) *
Row(D1:D1000))"))
Si tes critères de recherche sont toujours en A1 & B1, tu peux mettre la
ligne dans une fonction comme ceci:
Function Trv()
Trv=Range("E" & Evaluate("=sum((C1:C1000 ¡) * (D1:D1000±) *
Row(D1:D1000))"))
End Function
;que tu pourras appeler dans n'importe quelle cellule libre de cette
manière:=Trv()
J'ai repris ton premier post pour revoir la chose, effectivement cela avait besoin d'être revu.
Zones de recherche : A1 = 25, B1= "Décembre" Zone de résultat : D1 reçoit le libellé de la recherche correspondant à A1+B1. ____1) Si tu inscrit le résultat en D1 qui appartient à ta zone de données, cela ne peut pas bien fonctionner. Zones de données : C1:E1000 C1.....C1000= 31 D1=Janvier...D1000= Décembre E1= 1er libellé E1000= dernier libellé. Comment faire pour récupérer rapidement le libéllé correspondant au 25 Décembre? --
Je suis perdu. Peux-tu me donner la "clef" ? Dans ce cas il n'y a pas besoin de clef, cette ligne de code suffit à
trouver ce que tu cherches. Si En A1=premier critére de recherche à trouver en C1:C1000 et B1.me crit de rech de rech à trouver en D1:D1000, en E1:E1000 la référence. [D1] = Range("E" & Evaluate("=sum((C1:C1000 ¡) * (D1:D1000±) * Row(D1:D1000))")) Si tes critères de recherche sont toujours en A1 & B1, tu peux mettre la ligne dans une fonction comme ceci: Function Trv() Trv=Range("E" & Evaluate("=sum((C1:C1000 ¡) * (D1:D1000±) * Row(D1:D1000))")) End Function ;que tu pourras appeler dans n'importe quelle cellule libre de cette manière:=Trv()