Recherche lignes et colonnes

Résolu/Fermé
120Watts Messages postés 10 Date d'inscription vendredi 25 mars 2022 Statut Membre Dernière intervention 9 avril 2022 - 8 avril 2022 à 17:56
120Watts Messages postés 10 Date d'inscription vendredi 25 mars 2022 Statut Membre Dernière intervention 9 avril 2022 - 9 avril 2022 à 11:15
Bonjour,
j'ai une petite macro qui me permet de rechercher une valeur dans un tableau et de copier les lignes correspondantes.
La recherche s'effectue sur une colonne (on change la valeur dans la macro...).
Je ne parviens à effectuer la recherche sur l'ensemble du tableau, est-ce possible ?
J'ai essayé de boucler sur les colonnes, après la boucle sur les lignes, mais ça ne donne rien...
En vous remerciant par avance si quelqu'un a une idée.
Le code ci-dessous.
Bien cordialement.

Sub Recherche3()
Dim ligneRecap As Variant
Dim i As Long
'nettoyage plage de réception
  [F1:H7].ClearContents
  ligneRecap = 1
'bouclage sur les lignes
 For i = 2 To [a20].End(xlUp).Row
'valeur charchée en colonne B
   If Cells(i, 2) = "aa" Then
      ligneRecap = ligneRecap + 1
'Redimensionnement du tableau pour copie des lignes identifiées sur la plage en colonne 6
      Cells(i, 1).Resize(1, 3).Copy Cells(ligneRecap, 6)
   End If
    Next i
'copie ligne de titre
  Range("A1:C1").Copy Worksheets("Feuil9").Range("F1")
End Sub


Configuration: Windows / Firefox 91.0

3 réponses

yg_be Messages postés 23342 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 21 novembre 2024 Ambassadeur 1 551
Modifié le 8 avril 2022 à 18:15
bonjour,
Peux-tu nous montrer comment tu as imbriqué les boucles?
Je ne comprends pas exactement ce que tu vas copier si tu trouves dans une autre colonne, donc j'hésite à suggérer un code.
Peux-tu soigner 'indentation de ton code? Cela le rend plus lisible et plus facile à modifier.
A tout hasard:
Option Explicit

Sub Recherche3()
Dim ligneRecap As Variant
Dim i As Long, c As Long
'nettoyage plage de réception
[F1:H7].ClearContents
ligneRecap = 1
'bouclage sur les lignes
For i = 2 To [a20].End(xlUp).Row
    For c = 1 To 3 'valeur charchée en colonnes de A à C
        If Cells(i, c) = "aa" Then
            ligneRecap = ligneRecap + 1
            'Redimensionnement du tableau pour copie des lignes identifiées sur la plage en colonne 6
            Cells(i, 1).Resize(1, 3).Copy Cells(ligneRecap, 6)
        End If
    Next c
Next i
'copie ligne de titre
Range("A1:C1").Copy Worksheets("Feuil9").Range("F1")
End Sub

Cela peut parfois recopier plusieurs fois des lignes, peut-être pas ce que tu souhaites.
1
yg_be Messages postés 23342 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 21 novembre 2024 1 551
8 avril 2022 à 18:18
une variante:
Option Explicit

Sub Recherche3()
Dim ligneRecap As Variant
Dim i As Long, chercher As String
'nettoyage plage de réception
[F1:H7].ClearContents
ligneRecap = 1
'bouclage sur les lignes
chercher = "aa"
For i = 2 To [a20].End(xlUp).Row
    If Cells(i, 1) = chercher Or Cells(i, 2) = chercher Or Cells(i, 3) = chercher Then
        ligneRecap = ligneRecap + 1
        'Redimensionnement du tableau pour copie des lignes identifiées sur la plage en colonne 6
        Cells(i, 1).Resize(1, 3).Copy Cells(ligneRecap, 6)
    End If
Next i
'copie ligne de titre
Range("A1:C1").Copy Worksheets("Feuil9").Range("F1")
End Sub
1
120Watts Messages postés 10 Date d'inscription vendredi 25 mars 2022 Statut Membre Dernière intervention 9 avril 2022 2
9 avril 2022 à 11:14
Bravo et merci, j'ai envoyé une réponse plus détaillée un peu avant.
Cordialement.
0
120Watts Messages postés 10 Date d'inscription vendredi 25 mars 2022 Statut Membre Dernière intervention 9 avril 2022 2
9 avril 2022 à 11:13
Bonjour yg_be,
merci beaucoup ! la 1ère suffisait et répond parfaitement au problème ; donc merci pour la variante ! Ça permet de progresser encore plus. En effet, mon imbrication était foireuse, c'est la raison pour laquelle je ne l'avais pas mise pour ne pas compliquer le code inutilement. Bien noté pour l'indentation, faut que je progresse aussi là-dessus !
merci encore ! Résolu avec brio !
0
120Watts Messages postés 10 Date d'inscription vendredi 25 mars 2022 Statut Membre Dernière intervention 9 avril 2022 2
9 avril 2022 à 11:15
Les deux sont excellentes, merci encore !
0