XL 2010 Sélectionner les cellules concernées et non la ligne entière

Romain31

XLDnaute Occasionnel
Bonjour à toutes et tous,

Cette macro recherche les données concernant les USA et sélectionne les lignes correspondantes.
Comment sélectionner uniquement les 4 cellules de chaque ligne et non la ligne entière.
Cirière supplémentaire : le tableau pouvant comporter plus de 4 colonnes.

Grand merci et excellente journée.
Prenez soin de vous.
 

Pièces jointes

  • Test.xlsm
    16.2 KB · Affichages: 11

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Dans le fichier joint, je me suis contenté de rajouté 2 .Resize(,4)
VB:
Sub recherche_et_sélection_USA()
    Dim C As Range, lignes As Range

    Dim firstAddress As String

    With Sheets("Feuil1")
        .Activate
        'On précise la colonne de recherche sinon la recherche se fait dans toute la feuille
        With .Range("B:B")

            Set C = .Find(what:="USA", LookAt:=xlWhole)

            If Not C Is Nothing Then
                firstAddress = C.Address
                Set lignes = .Rows(C.Row).Resize(, 4)
                Do
                    Set lignes = Application.Union(lignes, .Rows(C.Row).Resize(, 4))
                    Set C = .FindNext(C)
                Loop While Not C Is Nothing And C.Address <> firstAddress
            End If
        End With
    End With

    If Not lignes Is Nothing Then lignes.Select

End Sub

cordialement
 

Pièces jointes

  • Romain31.xlsm
    16.6 KB · Affichages: 3

job75

XLDnaute Barbatruc
Avec le filtre automatique c'est plus simple et plus rapide :
VB:
Sub recherche_et_sélection_USA()
Sheets("Feuil1").Activate
On Error Resume Next
With [A1].CurrentRegion
    With .Offset(1).Resize(.Rows.Count - 1)
        Union(.Rows(0), .Cells).AutoFilter 2, "USA" 'filtre automatique
        .SpecialCells(xlCellTypeVisible).Select
    End With
    .AutoFilter
End With
End Sub
 

Discussions similaires

Réponses
9
Affichages
150

Statistiques des forums

Discussions
312 101
Messages
2 085 297
Membres
102 855
dernier inscrit
creed