Bonjour à tous !
J'ai une petite question sur la fonction inStr en vba.
Je souhaite tester la présence ou non de certaines chaines de caractère dans une cellule.
J'ai fait quelques recherches sur Google et j'ai trouvé ce site intéressant sur lequel on me donne cet exemple :
Manipuler les chanes de caractres en VB6 et VBA Excel
Exemple :
D'après l'aide sur cette fonction Le cible et le Range devrait être inversé.
Mais le texte d'explication du site est très claire :
"La fonction Instr peut aussi servir à contrôler si le contenu d'une chaîne est égal à un des mots "cible" défini dans la procédure.
Cet exemple vérifie si le contenu de la cellule A1 est égal à un des 3 mots indiqué dans la variable "Cible". "
Pourtant ce code ne fonctionne pas chez moi.
Je suis obligé de faire comme ceci :
Donc je me demande si au vu de l'exemple je n'ai tout simplement pas les yeux en face des trous ou si le site n'est plus à jour.
D'après ce site on peut également gérer les majuscules avec la fonction InStr ce qui m'arrangerait vu le nombre de possibilité d'écrire ma cible.
Voilà si quelqu'un peut m'éclairer sur mon problème...
Merci d'avance,
Benjy
J'ai une petite question sur la fonction inStr en vba.
Je souhaite tester la présence ou non de certaines chaines de caractère dans une cellule.
J'ai fait quelques recherches sur Google et j'ai trouvé ce site intéressant sur lequel on me donne cet exemple :
Manipuler les chanes de caractres en VB6 et VBA Excel
Exemple :
Code:
Sub RechercheMultiple()
Dim Cible As String
Cible = "engrenage,reducteur,courroie"
If InStr(Cible, Range("A1")) = 0 Then
MsgBox "Non"
Else
MsgBox "Oui"
End If
End Sub
D'après l'aide sur cette fonction Le cible et le Range devrait être inversé.
Mais le texte d'explication du site est très claire :
"La fonction Instr peut aussi servir à contrôler si le contenu d'une chaîne est égal à un des mots "cible" défini dans la procédure.
Cet exemple vérifie si le contenu de la cellule A1 est égal à un des 3 mots indiqué dans la variable "Cible". "
Pourtant ce code ne fonctionne pas chez moi.
Je suis obligé de faire comme ceci :
Code:
For x = 15 To j
If InStr(Sheets("bâtiment").Cells(x, 3).Value, "sdb") <> 0 Then
Sheets("bâtiment").Range("AC" & x).Value = 2
ElseIf InStr(Sheets("bâtiment").Cells(x, 3).Value, "SDB") <> 0 Then
Sheets("bâtiment").Range("AC" & x).Value = 2
ElseIf InStr(Sheets("bâtiment").Cells(x, 3).Value, "Sdb") <> 0 Then
Sheets("bâtiment").Range("AC" & x).Value = 2
ElseIf InStr(Sheets("bâtiment").Cells(x, 3).Value, "Salle de bain") <> 0 Then
Sheets("bâtiment").Range("AC" & x).Value = 2
ElseIf InStr(Sheets("bâtiment").Cells(x, 3).Value, "Salle de bains") <> 0 Then
Sheets("bâtiment").Range("AC" & x).Value = 2
ElseIf InStr(Sheets("bâtiment").Cells(x, 3).Value, "Salle de Bain") <> 0 Then
Sheets("bâtiment").Range("AC" & x).Value = 2
ElseIf InStr(Sheets("bâtiment").Cells(x, 3).Value, "Salle de Bains") <> 0 Then
Sheets("bâtiment").Range("AC" & x).Value = 2
ElseIf InStr(Sheets("bâtiment").Cells(x, 3).Value, "salle de bain") <> 0 Then
Sheets("bâtiment").Range("AC" & x).Value = 2
ElseIf InStr(Sheets("bâtiment").Cells(x, 3).Value, "salle de bains") <> 0 Then
Sheets("bâtiment").Range("AC" & x).Value = 2
ElseIf InStr(Sheets("bâtiment").Cells(x, 3).Value, "SALLE DE BAIN") <> 0 Then
Sheets("bâtiment").Range("AC" & x).Value = 2
ElseIf InStr(Sheets("bâtiment").Cells(x, 3).Value, "SALLE DE BAINS") <> 0 Then
Sheets("bâtiment").Range("AC" & x).Value = 2
End If
Next x
Donc je me demande si au vu de l'exemple je n'ai tout simplement pas les yeux en face des trous ou si le site n'est plus à jour.
D'après ce site on peut également gérer les majuscules avec la fonction InStr ce qui m'arrangerait vu le nombre de possibilité d'écrire ma cible.
Voilà si quelqu'un peut m'éclairer sur mon problème...
Merci d'avance,
Benjy