Selection d'une cellule par rapport à son contenu

Résolu/Fermé
Dyarguy Messages postés 31 Date d'inscription jeudi 26 mars 2015 Statut Membre Dernière intervention 13 août 2019 - 26 mars 2015 à 11:24
Dyarguy Messages postés 31 Date d'inscription jeudi 26 mars 2015 Statut Membre Dernière intervention 13 août 2019 - 26 mars 2015 à 14:13
Bonjour,

Je débute sur se site ainsi que dans VBA. Je souhaiterais sélectionner des cellules contenant un texte du style "A34" afin de les regrouper dans un autre tableau.
J'en suis actuellement à la sélection des cellules contenant le texte. J'ai trouver comment sélectionner des cellules ayant une certaine couleur mais pas contenant un texte.
Par exemple, j'ai un tableau qui contient plusieurs donnée et je veux sélectionner les cellules contenant seulement "A34".

J'ai ce début mais cela ne fonctionne pas:

" Sub recherche()
Application.Goto Reference:="ma_liste"
For Each cel In selection
If cel.Interior.Contains = "A34" Then
liste = liste & cel.Address & ","
End If
Next
liste = Left(liste, Len(liste) - 1)
Range(liste).Select
End Sub"

pouvez vous m'aidez???
Merci
A voir également:

1 réponse

Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
26 mars 2015 à 12:48
Bonjour,

Voici une procédure qui permet de sélectionner parmi les cellules de la plage "ma_liste" celles qui ont la valeur "A34", puis appliquer une couleur de remplissage jaune à cette sélection.
Sub recherche()
Dim Cel As Range, MaPlage As Range
Application.Goto Reference:="ma_liste"
For Each Cel In Selection
If Cel.Value = "A34" Then
If Not MaPlage Is Nothing Then
Set MaPlage = Application.Union(Cel, MaPlage)
Else
Set MaPlage = Cel
End If
End If
Next
MaPlage.Select
Selection.Interior.ColorIndex = 6
End Sub

A+
0
Dyarguy Messages postés 31 Date d'inscription jeudi 26 mars 2015 Statut Membre Dernière intervention 13 août 2019
26 mars 2015 à 13:29
Ta réponse m'aide vraiment.

Cependant, avec ton code, les cases contenants "A34" ne sont pas sélectionnées. c'est l'ensemble de la plage "ma_liste" qui l'est.
Et j'ai encore une petite interrogation, si la cellule contient "A34-EGHTFG-34", sera t'elle sélectionné? car ma demande concerne plus ce cas de figure-ci.

merci pour ta réponse :)
0
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523 > Dyarguy Messages postés 31 Date d'inscription jeudi 26 mars 2015 Statut Membre Dernière intervention 13 août 2019
Modifié par Gyrus le 26/03/2015 à 14:05
Si l'ensemble de la plage "ma_liste" est sélectionnée, tu dois voir toutes les cellules de cette plage en jaune. Si c'est le cas, je suis très étonné car pour être sélectionnée, une cellule doit contenir A34....

L'autre possibilité, c'est que aucune cellule ne contienne la valeur exacte "A34". La plage sélectionnée reste alors la plage initiale, à savoir "ma_liste".
Mais dans ce cas, tu aurais dû avoir une erreur à la ligne
MaPlage.Select

Voici le code modifié pour que la procédure accepte un texte partiel.
Sub recherche()
Dim Cel As Range, MaPlage As Range
Application.Goto Reference:="ma_liste"
For Each Cel In Selection
If Cel.Value Like "*A34*" Then
If Not MaPlage Is Nothing Then
Set MaPlage = Application.Union(Cel, MaPlage)
Else
Set MaPlage = Cel
End If
End If
Next
If Not MaPlage Is Nothing Then
MaPlage.Select
Selection.Interior.ColorIndex = 6
Else
MsgBox "Aucune cellule ne contient la valeur A34"
End If
End Sub

Si tu n'obtiens pas le résultat attendu, c'est que ton fichier a une particularité que je ne connais pas.
Tu devras alors joindre une copie anonymisée de ton classeur.
Pour cela, tu peux utiliser https://www.cjoint.com/

A+
0
Dyarguy Messages postés 31 Date d'inscription jeudi 26 mars 2015 Statut Membre Dernière intervention 13 août 2019
26 mars 2015 à 14:13
C'est juste parfait!!!

Je te remercie mille fois car tu m'enlève une sacrée épine du pied.

Bonne journée à toi et bonne continuation.
A+
0