Selection cellules avec condition

Bonjour,

Je souhaiterais avoir une selection variable de cellule avec comme condition toutes les cellules commencent par A et que cette sélection soit enregistrer dans un nom.

J'ai essayé de réaliser un code mais celui ci ne fonctionne pas, avez vous une idée ?

Sub Test()
Dim valeurCherchée As String
Dim champRecherche As Range
Dim résultat As Range

Derniereligne = Range("A3").End(xlDown).Row

valeurCherchée = "A*"
Set champRecherche = Sheets("BDD").Range("A3:A" & Derniereligne)
Set résultat = champRecherche.Find(valeurCherchée, LookIn:=xlValues, LookAt:=xlPart)
If Not résultat Is Nothing Then
Selection.Activate
Selection.Name = "Selection"
End If
End Sub

Merci

Bonjour

Essaie ça :

Sub Test()
    Dim valeurCherchée As String
    Dim champRecherche As Range
    Dim Derniereligne&
    Dim maPlage As Range
    Dim c As Range

    Derniereligne = Range("A3").End(xlDown).Row
    valeurCherchée = "A"
    Set champRecherche = Range("A3:A" & Derniereligne)
    Set maPlage = champRecherche.Find(valeurCherchée, LookIn:=xlValues, LookAt:=xlPart)

    For Each c In champRecherche
        If UCase(c.Value) Like valeurCherchée & "*" Then
            Set maPlage = Union(maPlage, c)
        End If
    Next c
    maPlage.Select
End Sub

Bye !

Super ça fonctionne merci à toi et bonne soirée.

Sub Test()

Dim valeurCherchée As String

Dim champRecherche As Range

Dim Derniereligne&

Dim maPlage As Range

Dim c As Range

Derniereligne = Range("A23").End(xlDown).Row

valeurCherchée = "P1"

Set champRecherche = Range("A23:P1" & Derniereligne)

Set maPlage = champRecherche.Find(valeurCherchée, LookIn:=xlValues, LookAt:=xlPart)

For Each c In champRecherche

If UCase(c.Value) Like valeurCherchée & "*" Then

Set maPlage = Union(maPlage, c)

End If

Next c

maPlage.Select

End Sub

Bonjour,

Bonne année,

J'aimerai utiliser cette macro pour mon tableau et j'aimerai que la sélection finale se fasse de la colonne B à la colonne P. Tout en maintenant la recherche sur la colonne A. Comment l'adapter s'il vous plait ?

PS : Désolé je sais que le sujet date.

Bonjour

@r bb4101d

Voilà :

Sub Test()
    Dim valeurCherchée As String
    Dim champRecherche As Range
    Dim Derniereligne&
    Dim maPlage As Range
    Dim c As Range

    Derniereligne = Range("A3").End(xlDown).Row
    valeurCherchée = "A"
    Set champRecherche = Range("A3:A" & Derniereligne)
    Set maPlage = champRecherche.Find(valeurCherchée, LookIn:=xlValues, _
            LookAt:=xlPart, MatchCase:=True).Offset(0, 1).Resize(1, 15)

    For Each c In champRecherche
        If UCase(c.Value) Like valeurCherchée & "*" Then
            Set maPlage = Union(maPlage, c.Offset(0, 1).Resize(1, 15))
        End If
    Next c
    maPlage.Select
End Sub

Bye !

Bonsoir,

Merci pour la réponse je teste ça de suite et je reviens vous dire si ça marche !

Re-bonsoir à tous !

@gmb

C'est exactement ce qu'il me fallait et ça marche très bien ! Merci

Bonjour,

@gmb

Est-il possible de modifier à nouveau le code pour qu'il sélectionne de la colonne A à la colonne P ?

Merci

Bonsoir,

le Resize permet d'agrandir une plage donnée, donc en partant de la colonne A (1) si on a :

Offset(0, 1).Resize(0, 15)

le OffSet(0,1) nous décale la colonne A de une colonne vers la droite (-1 pour la gauche) car OffSet( décalage en nombre de ligne en positif ou négatif , décalage en nombre de colonne en positif ou négatif)

donc on part de A et on décale de 1 colonne vers la droite, on arrive en B

et cette plage on la redimensionne Resize(du nombre de ligne au final, du nombre de colonne au final), ici 1 ligne au finale, et 15 colonnes au final, donc de B, on va aller à 15 colonne de large soit de B à P !

Si vous voulez aller de A à P alors il suffit de ne pas faire de décalage vers la droite et de redimensionner au final de 16 colonnes :

Range("A3").Resize(1,16)

@ bientôt

LouReeD

Rechercher des sujets similaires à "selection condition"