Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Macro Test recherche Valeur dans une plage

3 réponses
Avatar
Domi
Bonjour,
Je voudrais par une macro rechercher toutes les cellules de la plage B2:B100
qui contiennent la chaine de caractères "toto" (quelle que soit la casse et
n'importe ou dans la cellule) et selon que "toto" soit trouvé ou pas,
inscrire "oui" ou"non" dans la plage "D2:D100".
Quelqu'un aurait-il la bonté de me donner la solution, pour ma part je
tourne en rond depuis un bon moment...
Merci
Domi

3 réponses

Avatar
michdenis
Bonjour Domi,


'----------------------------------------
Sub test()

Dim Rg As Range, C As Range
Dim Chaine As String

Chaine = "toto"

With Worksheets("Feuil2") ' Nom de la feuille à adapter
Set Rg = .Range("B2:B100")
End With
Application.EnableEvents = False
Application.ScreenUpdating = False
For Each C In Rg
If InStr(1, C, Chaine, vbTextCompare) <> 0 Then
C.Offset(, 2).Value = "Oui"
Else
C.Offset(, 2).Value = "Non"
End If
Next
Application.EnableEvents = True
End Sub
'----------------------------------------


Salutations!


"Domi" a écrit dans le message de news:
Bonjour,
Je voudrais par une macro rechercher toutes les cellules de la plage B2:B100
qui contiennent la chaine de caractères "toto" (quelle que soit la casse et
n'importe ou dans la cellule) et selon que "toto" soit trouvé ou pas,
inscrire "oui" ou"non" dans la plage "D2:D100".
Quelqu'un aurait-il la bonté de me donner la solution, pour ma part je
tourne en rond depuis un bon moment...
Merci
Domi
Avatar
Domi
Impeccable, macro test, testée et approuvée ;o)
Merci beaucoup
Domi

"michdenis" a écrit dans le message de
news:eU%
Bonjour Domi,


'----------------------------------------
Sub test()

Dim Rg As Range, C As Range
Dim Chaine As String

Chaine = "toto"

With Worksheets("Feuil2") ' Nom de la feuille à adapter
Set Rg = .Range("B2:B100")
End With
Application.EnableEvents = False
Application.ScreenUpdating = False
For Each C In Rg
If InStr(1, C, Chaine, vbTextCompare) <> 0 Then
C.Offset(, 2).Value = "Oui"
Else
C.Offset(, 2).Value = "Non"
End If
Next
Application.EnableEvents = True
End Sub
'----------------------------------------


Salutations!


"Domi" a écrit dans le message de news:


Bonjour,
Je voudrais par une macro rechercher toutes les cellules de la plage
B2:B100

qui contiennent la chaine de caractères "toto" (quelle que soit la casse
et

n'importe ou dans la cellule) et selon que "toto" soit trouvé ou pas,
inscrire "oui" ou"non" dans la plage "D2:D100".
Quelqu'un aurait-il la bonté de me donner la solution, pour ma part je
tourne en rond depuis un bon moment...
Merci
Domi





Avatar
AV
Une alternative intéressante surtout en cas de longue plage à examiner


Sub zzz()
[D2:C100] = "non"
[B1:B100].AutoFilter Field:=1, Criteria1:="=*toto*"
[B2:B100].SpecialCells(xlCellTypeVisible).Offset(0, 2) = "oui"
[B1].AutoFilter
End Sub

AV