VBA : Instruction if qui contient une erreur

Dans vba, quand "oui" est dans une cellule, une instruction doit être effectuée mais une erreur de type 13 ou incompatibilité de type dans la ligne if.

Dim Cel As Range, Plage As Range

Set Plage = Range("A2:A1150")

For Each Cel In Plage

 If Cel.Value Like "*" & oui & "*" Then 'le compilateur signale une erreur ici
' Erreur aussi quand je fais  If Cel.Value Like "*oui*" ou  If Cel Like "*oui*"

'suite du code instruction à effectuer

Bonjour,

tel que tu l'as écris oui est une variable non initialisée.

If Cel.Value Like "*oui*" Then

J'ai laissé tes * mais signifie 'contient' "oui" et non ="oui". C'est à dire que "inoui" par exemple sera valide

eric

Bonjour,

C'est que Cel contient à ce moment une valeur autre que du texte.

Si c'est anormal, tu cherches où est l'erreur...

Si c'est indifférent au déroulement de la procédure, soit tu testes d'abord s'il s'agit de texte (fonction de feuille de calcul IsText), soit tu mets sous gestion d'erreur pour pouvoir poursuivre :

    On Error Resume Next
    For Each Cel In Plage
        If Cel Like "oui" Then
            If Err.Number <> 0 Then
                Err.Clear: GoTo Suite
            End If
           'code...
        End If
Suite:
    Next Cel
    On Error GoTo 0

Cordialement.

edit : Mais effectivement la remarque d'Eric suffit à expliquer l'erreur 13... donc mes considérations sont à envisager si erreur après rectification du "oui" !

merci de votre aide eriiic et mferrand, j'ai essayé d'ajouter le code que tu conseilles mferrand. L'erreur de type 13 a disparu mais une autre erreur est là "étiquette non définie". pour régler cette erreur je pense à déclarer la variable Err mais avec quel type ?

Avec le code ici il y a toujours une erreur d'étiquette non définie

Sub WBcefface()

Dim Cel As Range, Plage As Range
Dim Mot As String
'Dim Err As Range  quel type ????

Set Plage = Range("A2:A1110")

For Each Cel In Plage

 If Cel.Value Like "*oui*" Then

 If Err.Number <> 0 Then
               Err.Clear: GoTo Suite
            End If

'suite du code 

Si tu ne définis pas l'étiquette, elle n'y sera pas ! Cela tombe sous le sens !

Elle est dans mon code...

merci mferrand l'erreur est corrigée et le code fonctionne à merveille

Rechercher des sujets similaires à "vba instruction qui contient erreur"