Rechercher cellule et copier la ligne

  • Initiateur de la discussion Initiateur de la discussion cockers94
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

C

cockers94

Guest
bonjour

j'ai un soucis sous excel
j'ai plusieurs colonnes avec des données. Sur l'une d'elle je fais une recherche de caractère dans ces cellules,
et lorsque la chaine est détectée, je veux copier la ligne entière sur une autre feuille
(pour l'instant je trouve les cellules, je copie sur l'autre feuille mais seulement les cellules
je n'arrive pas à copier la ligne)

Merci de votre aide
 
Re : Rechercher cellule et copier la ligne

oups

voici ma macro

Sub Recherche_Chaine()

pointeur = 1
chaine = InputBox("Chaine à chercher", "Recherche")
For i = 1 To Range("A65536").End(xlUp).Row
For J = 1 To Len(chaine)
If InStr(Cells(i, 1), Mid(chaine, J, 1)) = 0 Then GoTo Ligne_Suivante
Next J

Feuil2.Cells(pointeur, 1) = Cells(i, 1)
pointeur = pointeur + 1
Ligne_Suivante: Next i

End Sub

Merci
 
Re : Rechercher cellule et copier la ligne

Bonjour cockers94, papapaul, GPLIONEL

Si je comprends bien, tu recherches une chaine de caractère à l'intérieur d'une cellule, et non une cellule qui correspond à la chaine.

Teste ceci, sur la base de ton fichier exemple :

Code:
Sub recherche()

Dim Tablo, i As Long, K
Dim Chaine As String

Tablo = Sheets("Feuil1").Range("A3:A" & Sheets("Feuil1").Range("A65536").End(xlUp).Row)
Chaine = InputBox("Chaine à rechercher", "Recherche")
If Chaine = "" Then Exit Sub

For i = 1 To UBound(Tablo)
 K = InStr(1, Tablo(i, 1), Chaine)
  If K > 0 Then Sheets("Feuil1").Rows(i + 2).Copy Sheets("Feuil2").Range("A65536").End(xlUp).Offset(1, 0)
Next

End Sub
A+
 
Re : Rechercher cellule et copier la ligne

Re, Bonsoir teodormircea

Test ceci :

Code:
Sub recherche2()

Dim Tablo, i As Long, j As Integer, k
Dim Chaine As String

Tablo = Sheets("Feuil3").Range("A3:C" & Sheets("Feuil3").Range("A65536").End(xlUp).Row)
Chaine = InputBox("Chaine à rechercher", "Recherche")
If Chaine = "" Then Exit Sub

For i = 1 To UBound(Tablo, 1)
  For j = 1 To UBound(Tablo, 2)
     k = InStr(1, Tablo(i, j), Chaine)
      If k > 0 Then Sheets("Feuil4").Range("A65536").End(xlUp).Offset(1, 0) = Tablo(i, j)
  Next
Next

End Sub
La plage testée est sur la feuille 3 et a trois colonnes. Les données sont extraites cellule par cellule et vont se placer dans la colonne A de la feuille 4 les unes en dessous des autres.

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour