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

Recherche de données sur plusieurs pages

10 réponses
Avatar
Pierre F.
Bonjour; bonsoir !

J'ai la macro ci-dessous qui me permet, en tapant un crit=E8re de=20
recherche en g2 d'obtenir le contenu de cellules situ=E9es =E0 une ligne =

d=E9finie; je place ces contenus dans les cellules g1, h1 et i1

---------------------
Sub Cherche()
Dim j As Integer
Dim cellule As Range
Dim ligne As Integer
For Each cellule In [A3:B310]
j =3D j + 1
If InStr(1, cellule, [g2]) <> 0 Then
ligne =3D cellule.Row
[g1] =3D Cells(ligne, 2)
[h1] =3D Cells(ligne, 3)
[i1] =3D Cells(ligne, 1)
Exit Sub
End If
Next cellule
If j =3D 310 Then
[h1] =3D ""
[i1] =3D ""
End If
End Sub
-----------------------

En entrant un nouveau crit=E8re en h2 (nbre compris entre 1 et 25), je
souhaite obtenir le contenu d'une autre cellule situ=E9e sur une autre=20
feuille (nomm=E9e "Tout") et qui se trouve =E0 la m=EAme ligne que ci des=
sus=20
dans une colonne qui serait d=E9finie par : nombre de h2x2+4
L'affichage devrait se faire en i2

Merci par avance!

Voir ci-joint: http://cjoint.com/?dsvnj3uSKD


Cordialement,
Pierre F.

10 réponses

Avatar
Pierre F.

Oups; j'ai oublié de dire que la macro est commandée par un bouton su r
la feuille 1 nommée "Base"

pf
Avatar
cousinhub
Bonsoir,
sans macro avec les formules Index/Equivalent et Decaler
G1 = INDEX(B11:B23;EQUIV($G$2;$A$11:$A$23;0))
H1 = INDEX(C11:C23;EQUIV($G$2;$A$11:$A$23;0))
I1 = G2
I2 = INDEX(DECALER(Tout!A11:A23;0;($H$2*2+3));EQUIV($G$2;Tout!A11:A23;0))

Enfin, si j'ai bien compris le sens de ta demande..
bon courage

Bonjour; bonsoir !

J'ai la macro ci-dessous qui me permet, en tapant un critère de
recherche en g2 d'obtenir le contenu de cellules situées à une ligne
définie; je place ces contenus dans les cellules g1, h1 et i1

---------------------
Sub Cherche()
Dim j As Integer
Dim cellule As Range
Dim ligne As Integer
For Each cellule In [A3:B310]
j = j + 1
If InStr(1, cellule, [g2]) <> 0 Then
ligne = cellule.Row
[g1] = Cells(ligne, 2)
[h1] = Cells(ligne, 3)
[i1] = Cells(ligne, 1)
Exit Sub
End If
Next cellule
If j = 310 Then
[h1] = ""
[i1] = ""
End If
End Sub
-----------------------

En entrant un nouveau critère en h2 (nbre compris entre 1 et 25), je
souhaite obtenir le contenu d'une autre cellule située sur une autre
feuille (nommée "Tout") et qui se trouve à la même ligne que ci dessus
dans une colonne qui serait définie par : nombre de h2x2+4
L'affichage devrait se faire en i2

Merci par avance!

Voir ci-joint: http://cjoint.com/?dsvnj3uSKD


Cordialement,
Pierre F.



Avatar
cousinhub
Re-,
ton fichier avec les formules :
http://cjoint.com/?dswpwOIHgo


Bonne lecture

Bonjour; bonsoir !

J'ai la macro ci-dessous qui me permet, en tapant un critère de
recherche en g2 d'obtenir le contenu de cellules situées à une ligne
définie; je place ces contenus dans les cellules g1, h1 et i1

---------------------
Sub Cherche()
Dim j As Integer
Dim cellule As Range
Dim ligne As Integer
For Each cellule In [A3:B310]
j = j + 1
If InStr(1, cellule, [g2]) <> 0 Then
ligne = cellule.Row
[g1] = Cells(ligne, 2)
[h1] = Cells(ligne, 3)
[i1] = Cells(ligne, 1)
Exit Sub
End If
Next cellule
If j = 310 Then
[h1] = ""
[i1] = ""
End If
End Sub
-----------------------

En entrant un nouveau critère en h2 (nbre compris entre 1 et 25), je
souhaite obtenir le contenu d'une autre cellule située sur une autre
feuille (nommée "Tout") et qui se trouve à la même ligne que ci dessus
dans une colonne qui serait définie par : nombre de h2x2+4
L'affichage devrait se faire en i2

Merci par avance!

Voir ci-joint: http://cjoint.com/?dsvnj3uSKD


Cordialement,
Pierre F.



Avatar
Pierre F.
Bonsoir,
sans macro avec les formules Index/Equivalent et Decaler
G1 = INDEX(B11:B23;EQUIV($G$2;$A$11:$A$23;0))
H1 = INDEX(C11:C23;EQUIV($G$2;$A$11:$A$23;0))
I1 = G2
I2 = INDEX(DECALER(Tout!A11:A23;0;($H$2*2+3));EQUIV($G$2;Tout!A11:A23 ;0))

Enfin, si j'ai bien compris le sens de ta demande..


Merci; ça marche impec!
Tu as bien compris :-)

A moi de voir si j'ai bien compris:

Dans les formules, A11 et A23 (respectivement B11, C11...) représentent
la zone de recherche ?
Ce qui veut dire que si mon fichier fait 300 lignes et commence à la
ligne 3, je dois remplacer A11 par A3 et A23 par A303... ?

Cordialement,
Pierre F.

Avatar
cousinhub
YES, j'avais bien compris :-) (c'était pas évident...)
Effectivement, tu dois modifier les zones de recherches afin de les
adapter au résultat escompté
Tu peux également faire référence à des noms "dynamiques", du style,
pour la première colonne de ta première feuille (A11:A23)
Insertion/Nom/Définir et tu entres un nom (par ex : numero)
dans la case du bas (Fait référence à : ), tu entres :
ÞCALER(Base!$A$3;;;NBVAL(Base!$A:$A)-1)
Tu auras ainsi une zone dynamique et dans la formule tu remplaces
$A$11:$A$23 par numero (j'omets volontairement le é, source d'ennui...)

Ps dans le fichier joint, je n'avais pas remarqué que ta macro (au
préalable bien longue pour le résultat voulu) fonctionnait sur un
évènement de la feuille, donc je ne l'ai pas désactivé. Désactive-là
dans mon fichier, ou ne permets pas l'exécution lors du démarrage.
Reviens si tu as un souci
Bonne fin de W-E (si cela se souhaite)>:o

Bonsoir,
sans macro avec les formules Index/Equivalent et Decaler
G1 = INDEX(B11:B23;EQUIV($G$2;$A$11:$A$23;0))
H1 = INDEX(C11:C23;EQUIV($G$2;$A$11:$A$23;0))
I1 = G2
I2 = INDEX(DECALER(Tout!A11:A23;0;($H$2*2+3));EQUIV($G$2;Tout!A11:A23;0))

Enfin, si j'ai bien compris le sens de ta demande..


Merci; ça marche impec!
Tu as bien compris :-)

A moi de voir si j'ai bien compris:

Dans les formules, A11 et A23 (respectivement B11, C11...) représentent
la zone de recherche ?
Ce qui veut dire que si mon fichier fait 300 lignes et commence à la
ligne 3, je dois remplacer A11 par A3 et A23 par A303... ?

Cordialement,
Pierre F.




Avatar
Pierre F.
YES, j'avais bien compris :-) (c'était pas évident...)
Effectivement, tu dois modifier les zones de recherches afin de les
adapter au résultat escompté


OK; ça marche.

Ps dans le fichier joint, je n'avais pas remarqué que ta macro (au
préalable bien longue pour le résultat voulu) fonctionnait sur un

évènement de la feuille, donc je ne l'ai pas désactivé. Désacti ve-là
dans mon fichier, ou ne permets pas l'exécution lors du démarrage.

Oui; tes formules suffisent; merci.
La macro était la pour permettre une recherche plus large sur les
colonnes A et B et en entrant des critères soit numériques, soit
alphabétiques... Mais à l'usage, ça ne servait pas trop et test for mules
suffisent largement.

Reviens si tu as un souci


Oui, encore un petit :-)

Lorsque j'entre mon second critère (celui en H2), je souhaiterais que l a
cellule active revienne en G2 quelle que soit la touche de validation
tapée... sans pour autant devoir aller dans outils/options/modification ...

Est-ce possible ?

Merci.

Bonne fin de W-E (si cela se souhaite)>:o


Oui oui, profitons du peu qu'il reste :-)

Cordialement,
Pierre F.

Avatar
cousinhub
Quelque soit le moyen d'entrée de ta cellule, pas évident.. (si tu
utilises Tab, Flèche Haut, Gauche, Droite,....)

Sinon, en utilisant Entrée ou la flèche Bas, par cet évènement :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$H$3" Then [g2].Select
End Sub


YES, j'avais bien compris :-) (c'était pas évident...)
Effectivement, tu dois modifier les zones de recherches afin de les
adapter au résultat escompté


OK; ça marche.

Ps dans le fichier joint, je n'avais pas remarqué que ta macro (au
préalable bien longue pour le résultat voulu) fonctionnait sur un

évènement de la feuille, donc je ne l'ai pas désactivé. Désactive-là
dans mon fichier, ou ne permets pas l'exécution lors du démarrage.

Oui; tes formules suffisent; merci.
La macro était la pour permettre une recherche plus large sur les
colonnes A et B et en entrant des critères soit numériques, soit
alphabétiques... Mais à l'usage, ça ne servait pas trop et test formules
suffisent largement.

Reviens si tu as un souci


Oui, encore un petit :-)

Lorsque j'entre mon second critère (celui en H2), je souhaiterais que la
cellule active revienne en G2 quelle que soit la touche de validation
tapée... sans pour autant devoir aller dans outils/options/modification...

Est-ce possible ?

Merci.

Bonne fin de W-E (si cela se souhaite)>:o


Oui oui, profitons du peu qu'il reste :-)

Cordialement,
Pierre F.





Avatar
cousinhub
PS, en supposant évidemment que tu ne veuilles plus jamais utiliser la
cellule H3

Quelque soit le moyen d'entrée de ta cellule, pas évident.. (si tu
utilises Tab, Flèche Haut, Gauche, Droite,....)

Sinon, en utilisant Entrée ou la flèche Bas, par cet évènement :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$H$3" Then [g2].Select
End Sub


YES, j'avais bien compris :-) (c'était pas évident...)
Effectivement, tu dois modifier les zones de recherches afin de les
adapter au résultat escompté


OK; ça marche.

Ps dans le fichier joint, je n'avais pas remarqué que ta macro (au
préalable bien longue pour le résultat voulu) fonctionnait sur un

évènement de la feuille, donc je ne l'ai pas désactivé. Désactive-là
dans mon fichier, ou ne permets pas l'exécution lors du démarrage.

Oui; tes formules suffisent; merci.
La macro était la pour permettre une recherche plus large sur les
colonnes A et B et en entrant des critères soit numériques, soit
alphabétiques... Mais à l'usage, ça ne servait pas trop et test
formules suffisent largement.

Reviens si tu as un souci


Oui, encore un petit :-)

Lorsque j'entre mon second critère (celui en H2), je souhaiterais que
la cellule active revienne en G2 quelle que soit la touche de
validation tapée... sans pour autant devoir aller dans
outils/options/modification...

Est-ce possible ?

Merci.

Bonne fin de W-E (si cela se souhaite)>:o


Oui oui, profitons du peu qu'il reste :-)

Cordialement,
Pierre F.







Avatar
cousinhub
Oupss, erreur, il y a cet évènement qui gère ton cas :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$H$2" Then [g2].Select
End Sub

Désolé (et désolé pour "Polluer le forum") (je vais ramasser par JPS,
qui n'en ait pas revenu de son SOMMESCUD):-)

YES, j'avais bien compris :-) (c'était pas évident...)
Effectivement, tu dois modifier les zones de recherches afin de les
adapter au résultat escompté


OK; ça marche.

Ps dans le fichier joint, je n'avais pas remarqué que ta macro (au
préalable bien longue pour le résultat voulu) fonctionnait sur un

évènement de la feuille, donc je ne l'ai pas désactivé. Désactive-là
dans mon fichier, ou ne permets pas l'exécution lors du démarrage.

Oui; tes formules suffisent; merci.
La macro était la pour permettre une recherche plus large sur les
colonnes A et B et en entrant des critères soit numériques, soit
alphabétiques... Mais à l'usage, ça ne servait pas trop et test formules
suffisent largement.

Reviens si tu as un souci


Oui, encore un petit :-)

Lorsque j'entre mon second critère (celui en H2), je souhaiterais que la
cellule active revienne en G2 quelle que soit la touche de validation
tapée... sans pour autant devoir aller dans outils/options/modification...

Est-ce possible ?

Merci.

Bonne fin de W-E (si cela se souhaite)>:o


Oui oui, profitons du peu qu'il reste :-)

Cordialement,
Pierre F.





Avatar
Pierre F.
Oupss, erreur, il y a cet évènement qui gère ton cas :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$H$2" Then [g2].Select
End Sub


C'est magnifique, merci!!!!!
Exactement ce qu'il me fallait.

Désolé (et désolé pour "Polluer le forum") (je vais ramasser pa r JPS,
qui n'en ait pas revenu de son SOMMESCUD):-)


Mais non; c'est pour la bonne cause :-)

Et comme je viens de voir tes 3 messages d'un coup... pas de problème.

Cordialement,
Pierre F.