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

Rechercher un contenu de cellule et copier/coller des cellules voisines

14 réponses
Avatar
Pierre F.
Bonjour :-)

En tapant en H2 un nombre ou du texte, je souhaiterais aller =E0 la=20
premi=E8re ligne du tableau qui contient ce nombre ou ce texte (ils=20
peuvent =EAtre dans la colonne A ou B) et r=E9cup=E9rer le contenu des=20
colonnes B et C de la ligne atteinte afin de le copier et de le coller=20
ailleurs (en H1 et I1 pr=E9cis=E9ment).

Pr=E9cision: la colonne A ne comprend que des nombres et la B que du text=
e.

J'ai re=E7u cette r=E9ponse qui fonctionne tr=E8s bien si je tape un nomb=
re

> en h1:
> =3DINDEX($B$1:$B$1000;EQUIV($H$2;$A$1:$A$1000;0))
> en i1:
> =3DINDEX($c$1:$c$1000;EQUIV($H$2;$A$1:$A$1000;0))

Pour pouvoir aussi rep=E9rer du texte (tjrs en colonne B), j'ai essay=E9 =
ceci:

=3DINDEX($B$1:$B$1000;EQUIV($H$2;$A$1:$B$1000;0))

mais =E7a ne marche pas...

Pourquoi ?

Cordialement,
Pierre F.

10 réponses

1 2
Avatar
Jacky
Bonjour,

Ceci peut-être........
En H1
=SI(ESTERREUR(EQUIV($H$2;A1:A1000;0));"";INDEX(B1:B1000;EQUIV($H$2;A1:A1000;0)))
En I1
=SI(
ESTERREUR(EQUIV($H$2;B1:B1000;0));"";INDEX(C1:C1000;EQUIV($H$2;B1:B1000;0)))

--
Salutations
JJ



"Pierre F." a écrit dans le message de news:
a8f02$45f19b2e$55da2a7a$
Bonjour :-)

En tapant en H2 un nombre ou du texte, je souhaiterais aller à la
première ligne du tableau qui contient ce nombre ou ce texte (ils
peuvent être dans la colonne A ou B) et récupérer le contenu des
colonnes B et C de la ligne atteinte afin de le copier et de le coller
ailleurs (en H1 et I1 précisément).

Précision: la colonne A ne comprend que des nombres et la B que du texte.

J'ai reçu cette réponse qui fonctionne très bien si je tape un nombre

en h1:
=INDEX($B$1:$B$1000;EQUIV($H$2;$A$1:$A$1000;0))
en i1:
=INDEX($c$1:$c$1000;EQUIV($H$2;$A$1:$A$1000;0))


Pour pouvoir aussi repérer du texte (tjrs en colonne B), j'ai essayé ceci:

=INDEX($B$1:$B$1000;EQUIV($H$2;$A$1:$B$1000;0))

mais ça ne marche pas...

Pourquoi ?

Cordialement,
Pierre F.

Avatar
Pierre F.
Bonjour,

Ceci peut-être........
En H1
=SI(ESTERREUR(EQUIV($H$2;A1:A1000;0));"";INDEX(B1:B1000;EQUIV($H$2;A1 :A1000;0)))
En I1
=SI(
ESTERREUR(EQUIV($H$2;B1:B1000;0));"";INDEX(C1:C1000;EQUIV($H$2;B1:B1000 ;0)))


merci;
- la première pour la récupération en H1 va bien; sauf que quand j' entre
une chaine de texte, Elle ne rend rien en H1.
- la seconde ne répond pas (rien d'affiché)

En fait, pour faire plus simple:

Je veux pouvoir entrer une chaîne (nombre ou texte) quelconque (pas
forcément un mot complet) qui peut être logée dans les colonnes A o u B
et en chercher la première occurrence.
Lorsque la ligne i est trouvée, je souhaite afficher le contenu de Bi e n
H1 et de Ci en I1

Merci.

Cordialement,
Pierre F.

Avatar
garnote
Salut Pierre,

Est-ce que ces deux macros te conviennent ?

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [h2]) Is Nothing Then Cherche
End Sub

Sub Cherche()
Dim j As Integer
Dim cellule As Range
Dim ligne As Integer
For Each cellule In [A1:B100]
j = j + 1
If InStr(1, cellule, [h2]) <> 0 Then
ligne = cellule.Row
[h1] = Cells(ligne, 2)
[i1] = Cells(ligne, 3)
Exit Sub
End If
Next cellule
If j = 200 Then
[h1] = ""
[i1] = ""
End If
End Sub

Serge


"Pierre F." a écrit dans le message de news: ea247$45f1b401$55da2a7a$
Bonjour,

Ceci peut-être........
En H1
=SI(ESTERREUR(EQUIV($H$2;A1:A1000;0));"";INDEX(B1:B1000;EQUIV($H$2;A1:A1000;0)))
En I1
=SI( ESTERREUR(EQUIV($H$2;B1:B1000;0));"";INDEX(C1:C1000;EQUIV($H$2;B1:B1000;0)))


merci;
- la première pour la récupération en H1 va bien; sauf que quand j'entre
une chaine de texte, Elle ne rend rien en H1.
- la seconde ne répond pas (rien d'affiché)

En fait, pour faire plus simple:

Je veux pouvoir entrer une chaîne (nombre ou texte) quelconque (pas
forcément un mot complet) qui peut être logée dans les colonnes A ou B
et en chercher la première occurrence.
Lorsque la ligne i est trouvée, je souhaite afficher le contenu de Bi en
H1 et de Ci en I1

Merci.

Cordialement,
Pierre F.

Avatar
Jacky
Re.....
Essaie:

En H1 : Matricielle
=SI(ET(ESTERREUR(EQUIV($H$2;A2:A1000;0));ESTERREUR(EQUIV($H$2;GAUCHE(B2:B1000;NBCAR($H$2));0)));"";SI(ESTERREUR(EQUIV($H$2;A2:A1000;0));INDEX(B2:B1000;EQUIV($H$2;GAUCHE(B2:B1000;NBCAR($H$2));0));INDEX(B2:B1000;EQUIV($H$2;A2:A1000;0))))

En I1
=SI(H1="";"";INDEX(C1:C1000;EQUIV($H$1;B1:B1000;0)))

Exemple ici:
http://cjoint.com/?djvE5fpaal
--
Salutations
JJ



"Pierre F." a écrit dans le message de news:
ea247$45f1b401$55da2a7a$
Bonjour,

Ceci peut-être........
En H1
=SI(ESTERREUR(EQUIV($H$2;A1:A1000;0));"";INDEX(B1:B1000;EQUIV($H$2;A1:A1000;0)))
En I1
=SI(
ESTERREUR(EQUIV($H$2;B1:B1000;0));"";INDEX(C1:C1000;EQUIV($H$2;B1:B1000;0)))


merci;
- la première pour la récupération en H1 va bien; sauf que quand j'entre
une chaine de texte, Elle ne rend rien en H1.
- la seconde ne répond pas (rien d'affiché)

En fait, pour faire plus simple:

Je veux pouvoir entrer une chaîne (nombre ou texte) quelconque (pas
forcément un mot complet) qui peut être logée dans les colonnes A ou B
et en chercher la première occurrence.
Lorsque la ligne i est trouvée, je souhaite afficher le contenu de Bi en
H1 et de Ci en I1

Merci.

Cordialement,
Pierre F.

Avatar
Pierre F.

Hello !


Est-ce que ces deux macros te conviennent ?

Private Sub Worksheet_Change(ByVal Target As Range)
[...]

End Sub


Merci.

Ça marche bien si j'entre un nombre. Mais si j'entre du texte, ça ne va
plus... :-(

De plus, je souhaiterais que la recherche démarre dès que je valide m on
nombre ou mon texte...

Cordialement,
Pierre F.

Avatar
garnote
Et pourtant chez moi, tout baigne dans l'huile !

Serge


"Pierre F." a écrit dans le message de news: 64ce9$45f1ca00$55da2a7a$

Hello !


Est-ce que ces deux macros te conviennent ?

Private Sub Worksheet_Change(ByVal Target As Range)
[...]

End Sub


Merci.

Ça marche bien si j'entre un nombre. Mais si j'entre du texte, ça ne va
plus... :-(

De plus, je souhaiterais que la recherche démarre dès que je valide mon
nombre ou mon texte...

Cordialement,
Pierre F.

Avatar
Pierre F.
Re.....
Essaie:

En H1 : Matricielle
=SI(ET(ESTERREUR(EQUIV($H$2;A2:A1000;0));ESTERREUR(EQUIV($H$2;GAUCHE( B2:B1000;NBCAR($H$2));0)));"";SI(ESTERREUR(EQUIV($H$2;A2:A1000;0));INDEX( B2:B1000;EQUIV($H$2;GAUCHE(B2:B1000;NBCAR($H$2));0));INDEX(B2:B1000;EQUIV ($H$2;A2:A1000;0))))

En I1
=SI(H1="";"";INDEX(C1:C1000;EQUIV($H$1;B1:B1000;0)))



Merci.

Oui; ça marche :-)
Mais un détail ne colle pas...

Lorsque je tape du texte... il ne se passe rien

http://cjoint.com/?djwyx34vM7

Cordialement,
Pierre F.

Avatar
Pierre F.
Et pourtant chez moi, tout baigne dans l'huile !

Serge


C'est vrai! je l'ai remise sur un fichier "vide" et ça va très bien : -)

http://cjoint.com/?djwGbLt0gZ

Mais comment faire pour que la macro se déclenche au moment où je val ide
mon numéro ou mon texte?

Cordialement,
Pierre F.

Avatar
garnote
Quand tu entres, par exemple, "bonjour" en H2,
est-ce que tu recherches dans les colonnes A et B
la première cellule qui contient exactement "bonjour"
ou la première cellule dans laquelle on peut trouver,
par exemple, "Salutbonjouretc" ?
Même question pour les nombres ?

Serge

"Pierre F." a écrit dans le message de news: 6887a$45f1d0d9$55da2a7a$
Re.....
Essaie:

En H1 : Matricielle
=SI(ET(ESTERREUR(EQUIV($H$2;A2:A1000;0));ESTERREUR(EQUIV($H$2;GAUCHE(B2:B1000;NBCAR($H$2));0)));"";SI(ESTERREUR(EQUIV($H$2;A2:A1000;0));INDEX(B2:B1000;EQUIV($H$2;GAUCHE(B2:B1000;NBCAR($H$2));0));INDEX(B2:B1000;EQUIV($H$2;A2:A1000;0))))

En I1
=SI(H1="";"";INDEX(C1:C1000;EQUIV($H$1;B1:B1000;0)))



Merci.

Oui; ça marche :-)
Mais un détail ne colle pas...

Lorsque je tape du texte... il ne se passe rien

http://cjoint.com/?djwyx34vM7

Cordialement,
Pierre F.

Avatar
Jacky
Re....

Lorsque je tape du texte... il ne se passe rien


En h1, *****matricielle*****
La formule en H1 doit être validée par Ctrl+majuscule+entrée
Et non pas par entrée
Et tout rentre dans l'ordre ;-)

--
Salutations
JJ



"Pierre F." a écrit dans le message de news:
6887a$45f1d0d9$55da2a7a$
Re.....
Essaie:

En H1 : Matricielle
=SI(ET(ESTERREUR(EQUIV($H$2;A2:A1000;0));ESTERREUR(EQUIV($H$2;GAUCHE(B2:B1000;NBCAR($H$2));0)));"";SI(ESTERREUR(EQUIV($H$2;A2:A1000;0));INDEX(B2:B1000;EQUIV($H$2;GAUCHE(B2:B1000;NBCAR($H$2));0));INDEX(B2:B1000;EQUIV($H$2;A2:A1000;0))))

En I1
=SI(H1="";"";INDEX(C1:C1000;EQUIV($H$1;B1:B1000;0)))



Merci.

Oui; ça marche :-)
Mais un détail ne colle pas...

Lorsque je tape du texte... il ne se passe rien

http://cjoint.com/?djwyx34vM7

Cordialement,
Pierre F.

1 2