Selection d'une cellule par rapport à son contenu

Résolu
Dyarguy Messages postés 31 Date d'inscription   Statut Membre Dernière intervention   -  
Dyarguy Messages postés 31 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   526
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   526 > Dyarguy Messages postés 31 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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