OVH Cloud OVH Cloud

[VBA] Caractère indifférent dans une zone de texte [VBA]

6 réponses
Avatar
julienzrb
bonjour!

Voilà je suis en train de faire un programme en VBA et,
j'aimerais savoir comment faire pour, lorsqu'on fait une recherche
cellule par cellule, demander au programme de selectionner, par
exemple toutes les cellule dont le contenu COMMENCE par les lettres
"MR".

Par exemple, si on tombe sur une cellule contenant le texte "MRA", il
selectionnerait la cellule, mais si cette derniere contenait le texte
"MAR", elle ne serait pas selectionner.

J'avais pensé à utiliser un caractère indifférent de type "*" mais si
je fais :

Range("A1").value = "MR*".select
(ou Range("A1").FormulaR1C1 = "MR*".select)

Le programme va chercher une cellule dont le contenu est textuellement
"MR*" et non une cellule dont le contenu commence par "MR" et se
continue par le caractère "*".

J'espere que vous avez bien compris ma requête et vous remercie par
avance

MERCI

Julien

6 réponses

Avatar
dadda
Bonjour tou le monde ;
Bonjour Izzario ;

Dans le titre de ton post tu parles de caractère
indifférent "dans une zone de texte". En vba la zone de
texte a une signifacation précise. La zone de texte est un
controle. Dans l'exposé de ta question il apparait qu'il
s'agit en fait du texte écrit dans les cellules de ta
feuille.
Ceci étant ; je te propose ci-après un code qui te permet
de colorer les cellules qui comprennent le mot "mr", ou
qui commence par "mr". Les selectionner, je ne sais pas le
faire.

Voici le code :

Sub ChercheMr()
For Each C In ActiveSheet.UsedRange
If InStr(1, C.Value, "Mr", vbTextCompare) = 1 Then
C.Interior.ColorIndex = 3
End If
Next
End Sub

Cordialement

Dadda

-----Message d'origine-----
bonjour!

Voilà je suis en train de faire un programme en VBA et,
j'aimerais savoir comment faire pour, lorsqu'on fait une
recherche

cellule par cellule, demander au programme de
selectionner, par

exemple toutes les cellule dont le contenu COMMENCE par
les lettres

"MR".

Par exemple, si on tombe sur une cellule contenant le
texte "MRA", il

selectionnerait la cellule, mais si cette derniere
contenait le texte

"MAR", elle ne serait pas selectionner.

J'avais pensé à utiliser un caractère indifférent de
type "*" mais si

je fais :

Range("A1").value = "MR*".select
(ou Range("A1").FormulaR1C1 = "MR*".select)

Le programme va chercher une cellule dont le contenu est
textuellement

"MR*" et non une cellule dont le contenu commence
par "MR" et se

continue par le caractère "*".

J'espere que vous avez bien compris ma requête et vous
remercie par

avance

MERCI

Julien
.



Avatar
LeSteph
Bonjour Izzario,
Tu vas bien?


Sub cherchcommencepar()
Dim mylab As String
Dim tst

mylab = InputBox("commence par", "recherche", "mr") & "*"
Do
Cells.Find(What:=mylab, After:¬tiveCell, _
LookIn:=xlValues, LookAt:=xlWhole, _
SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate

tst = MsgBox("Rechercher Suivant", vbOKCancel)
Loop While tst = 1

End Sub

;-)
LeSteph
"Izzario" a écrit dans le message de
news:
bonjour!

Voilà je suis en train de faire un programme en VBA et,
j'aimerais savoir comment faire pour, lorsqu'on fait une recherche
cellule par cellule, demander au programme de selectionner, par
exemple toutes les cellule dont le contenu COMMENCE par les lettres
"MR".

Par exemple, si on tombe sur une cellule contenant le texte "MRA", il
selectionnerait la cellule, mais si cette derniere contenait le texte
"MAR", elle ne serait pas selectionner.

J'avais pensé à utiliser un caractère indifférent de type "*" mais si
je fais :

Range("A1").value = "MR*".select
(ou Range("A1").FormulaR1C1 = "MR*".select)

Le programme va chercher une cellule dont le contenu est textuellement
"MR*" et non une cellule dont le contenu commence par "MR" et se
continue par le caractère "*".

J'espere que vous avez bien compris ma requête et vous remercie par
avance

MERCI

Julien


Avatar
LeSteph
Je précise en fait tout est dans le xlwhole....
;)

"LeSteph" a écrit dans le message de
news:41077f07$0$1892$
Bonjour Izzario,
Tu vas bien?


Sub cherchcommencepar()
Dim mylab As String
Dim tst

mylab = InputBox("commence par", "recherche", "mr") & "*"
Do
Cells.Find(What:=mylab, After:¬tiveCell, _
LookIn:=xlValues, LookAt:=xlWhole, _
SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate

tst = MsgBox("Rechercher Suivant", vbOKCancel)
Loop While tst = 1

End Sub

;-)
LeSteph
"Izzario" a écrit dans le message de
news:
bonjour!

Voilà je suis en train de faire un programme en VBA et,
j'aimerais savoir comment faire pour, lorsqu'on fait une recherche
cellule par cellule, demander au programme de selectionner, par
exemple toutes les cellule dont le contenu COMMENCE par les lettres
"MR".

Par exemple, si on tombe sur une cellule contenant le texte "MRA", il
selectionnerait la cellule, mais si cette derniere contenait le texte
"MAR", elle ne serait pas selectionner.

J'avais pensé à utiliser un caractère indifférent de type "*" mais si
je fais :

Range("A1").value = "MR*".select
(ou Range("A1").FormulaR1C1 = "MR*".select)

Le programme va chercher une cellule dont le contenu est textuellement
"MR*" et non une cellule dont le contenu commence par "MR" et se
continue par le caractère "*".

J'espere que vous avez bien compris ma requête et vous remercie par
avance

MERCI

Julien






Avatar
dadda
L'exécution du code Lesteph donne le message
suivant : "Erreur de compilation - Argument nommé
introuvable".
Pour éviter ce message supprimer du
code "SearchFormat:úlse".
Dadda

-----Message d'origine-----
Bonjour Izzario,
Tu vas bien?


Sub cherchcommencepar()
Dim mylab As String
Dim tst

mylab = InputBox("commence par", "recherche", "mr") & "*"
Do
Cells.Find(What:=mylab, After:¬tiveCell, _
LookIn:=xlValues, LookAt:=xlWhole, _
SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate

tst = MsgBox("Rechercher Suivant", vbOKCancel)
Loop While tst = 1

End Sub

;-)
LeSteph
"Izzario" a écrit dans le message de
news:
bonjour!

Voilà je suis en train de faire un programme en VBA et,
j'aimerais savoir comment faire pour, lorsqu'on fait
une recherche


cellule par cellule, demander au programme de
selectionner, par


exemple toutes les cellule dont le contenu COMMENCE par
les lettres


"MR".

Par exemple, si on tombe sur une cellule contenant le
texte "MRA", il


selectionnerait la cellule, mais si cette derniere
contenait le texte


"MAR", elle ne serait pas selectionner.

J'avais pensé à utiliser un caractère indifférent de
type "*" mais si


je fais :

Range("A1").value = "MR*".select
(ou Range("A1").FormulaR1C1 = "MR*".select)

Le programme va chercher une cellule dont le contenu
est textuellement


"MR*" et non une cellule dont le contenu commence
par "MR" et se


continue par le caractère "*".

J'espere que vous avez bien compris ma requête et vous
remercie par


avance

MERCI

Julien



.




Avatar
Clém
Vérifie tes options chez moi il marche très bien!

:-?

"dadda" a écrit dans le message de
news:5a9501c474a2$dcae2220$
L'exécution du code Lesteph donne le message
suivant : "Erreur de compilation - Argument nommé
introuvable".
Pour éviter ce message supprimer du
code "SearchFormat:úlse".
Dadda

-----Message d'origine-----
Bonjour Izzario,
Tu vas bien?


Sub cherchcommencepar()
Dim mylab As String
Dim tst

mylab = InputBox("commence par", "recherche", "mr") & "*"
Do
Cells.Find(What:=mylab, After:¬tiveCell, _
LookIn:=xlValues, LookAt:=xlWhole, _
SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate

tst = MsgBox("Rechercher Suivant", vbOKCancel)
Loop While tst = 1

End Sub

;-)
LeSteph
"Izzario" a écrit dans le message de
news:
bonjour!

Voilà je suis en train de faire un programme en VBA et,
j'aimerais savoir comment faire pour, lorsqu'on fait
une recherche


cellule par cellule, demander au programme de
selectionner, par


exemple toutes les cellule dont le contenu COMMENCE par
les lettres


"MR".

Par exemple, si on tombe sur une cellule contenant le
texte "MRA", il


selectionnerait la cellule, mais si cette derniere
contenait le texte


"MAR", elle ne serait pas selectionner.

J'avais pensé à utiliser un caractère indifférent de
type "*" mais si


je fais :

Range("A1").value = "MR*".select
(ou Range("A1").FormulaR1C1 = "MR*".select)

Le programme va chercher une cellule dont le contenu
est textuellement


"MR*" et non une cellule dont le contenu commence
par "MR" et se


continue par le caractère "*".

J'espere que vous avez bien compris ma requête et vous
remercie par


avance

MERCI

Julien



.




Avatar
LeSteph
T'inquiète pas Dadda , c'est juste une différence de version
tes options vont très bien et ta proposition est correcte

D'ailleurs en cas de souci sur ces petites différences
un coup d'enregistreur
et les bons paramêtres sont dans la boîte.
Ce petit bout de code n'est qu'un exemple
qui ne posera pas de difficulté à Izzario.

Pour simplifier sur la question c'est le LookAt:=xlWhole qui apporte la
solution .

;-)

LeSteph



"Clém" a écrit dans le message de
news:4107eeb1$0$29370$
Vérifie tes options chez moi il marche très bien!

:-?

"dadda" a écrit dans le message de
news:5a9501c474a2$dcae2220$
L'exécution du code Lesteph donne le message
suivant : "Erreur de compilation - Argument nommé
introuvable".
Pour éviter ce message supprimer du
code "SearchFormat:úlse".
Dadda

-----Message d'origine-----
Bonjour Izzario,
Tu vas bien?


Sub cherchcommencepar()
Dim mylab As String
Dim tst

mylab = InputBox("commence par", "recherche", "mr") & "*"
Do
Cells.Find(What:=mylab, After:¬tiveCell, _
LookIn:=xlValues, LookAt:=xlWhole, _
SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate

tst = MsgBox("Rechercher Suivant", vbOKCancel)
Loop While tst = 1

End Sub

;-)
LeSteph
"Izzario" a écrit dans le message de
news:
bonjour!

Voilà je suis en train de faire un programme en VBA et,
j'aimerais savoir comment faire pour, lorsqu'on fait
une recherche


cellule par cellule, demander au programme de
selectionner, par


exemple toutes les cellule dont le contenu COMMENCE par
les lettres


"MR".

Par exemple, si on tombe sur une cellule contenant le
texte "MRA", il


selectionnerait la cellule, mais si cette derniere
contenait le texte


"MAR", elle ne serait pas selectionner.

J'avais pensé à utiliser un caractère indifférent de
type "*" mais si


je fais :

Range("A1").value = "MR*".select
(ou Range("A1").FormulaR1C1 = "MR*".select)

Le programme va chercher une cellule dont le contenu
est textuellement


"MR*" et non une cellule dont le contenu commence
par "MR" et se


continue par le caractère "*".

J'espere que vous avez bien compris ma requête et vous
remercie par


avance

MERCI

Julien



.