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

Le
Pierre F.
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 text=
e.

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

> 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.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jacky
Le #4330811
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." 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.

Pierre F.
Le #4330751
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.

garnote
Le #4240421
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."
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.

Jacky
Le #4240391
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." 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.

Pierre F.
Le #4240381

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.

garnote
Le #4240371
Et pourtant chez moi, tout baigne dans l'huile !

Serge


"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 mon
nombre ou mon texte...

Cordialement,
Pierre F.

Pierre F.
Le #4240331
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.

Pierre F.
Le #4240321
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.

garnote
Le #4240301
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."
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.

Jacky
Le #4240291
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." 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.

Publicité
Poster une réponse
Anonyme