Erreur type 13

Bonjour,

Je débute en Macro et VBA et je suis bloquée ... Voici le programme que j'ai noté :

If (D4 = "gf") Then

MsgBox (vbExclamation + vbabortretrylgn + "erreur a modifier")

Else

MsgBox (vbOKOnly + "c'est tout bon")

End If

Il me met erreur 13 type incompatible, pourtant mon D4 est bien en texte ...

Je ne vois pas mon erreur ...

De plus, comment faire pour qu'une macro se lance automatiquement lorsque j'écris dans la case (aujourd'hui, je dois exécuter la macro pour la lancer ..)

Merci d'avance

Salut à toi!

Je ne connais pas cette erreur mais essaye de remplacer D4 par cells(4,4)!

Merci mais ça ne fonctionne pas mieux...

Bonjour,

Mauvaise utilisation de la fonction MsgBox + syntaxe défectueuse de définition de plage

    If [D4] = "gf" Then
        MsgBox "erreur a modifier", vbExclamation
    Else
        MsgBox "c'est tout bon"
    End If

Et ne pas abuser des parenthèses inutiles, qui te joueront des tours à un moment ou un autre !

Merci mais ça ne marche toujours pas :

If [D4] = "gf" Then

MsgBox vbExclamation + "erreur a modifier"

Else

MsgBox vbOKOnly + "c'est tout bon"

End If

Même type d'erreur, je ne comprend vraiment pas ...

Si tu modifies le code que je fournis pour reproduire ton erreur, ça ne va sûrement pas marcher !

Prends exactement le code fourni, pour que ça marche !

Complément pour explication :

Si tu as une erreur 13, c'est que tu utilises l'opérateur arithmétique + destiné à faire des additions pour additionner une valeur de type Integer (nombre entier) à du texte !

VBA te répond naturellement qu'il y a incompatibilité de type de données et qu'il ne peut donc pas faire cette addition !

Mais hormis cela, ta syntaxe serait malgré tout défectueuse, tu ne sais pas utiliser la fonction MsgBox et un peu de lecture de l'Aide sur les caractéristiques et la syntaxe d'utilisation pourrait servir.

super ! ça fonctionne en effet, mais il me manque les boutons abandonner, recommencer, et ignorer dans la première phase.

Dans ton code, il n'y a que le bouton OK.

Le message texte doit apparaître avant les boutons à mettre en place c'est ça ? Je voudrais comprendre

OK c'est bon j'avais juste à le rajouter après.

Merci beaucoup

Je ne pensais pas que l'ordre avait autant d'importance

Si tu mets des boutons, c'est pour réagir différemment selon le bouton cliqué par l'utilisateur.

Pour cela il te faut d'abord recueillir la valeur renvoyée par la fonction dans une variable et par conséquent utiliser la fonction en la plaçant à droite d'un signe égale (et là les arguments doivent être entre parenthèses pour te premettre de récupérer la valeur renvoyée).

La fonction te renverra soit vbAbort, soit vbRetry, soit vbIgnore [ce sont respectivement les valeurs numériques 3, 4 ou 5, mais l'utilisation des constantes VBA permet de savoir d'emblée à quoi elles correspondent].

Il te faut donc prévoir ce que tu fais selon le choix de l'utilisateur, et le coder. Sans cela l'affichage de boutons restera purement décoratif.

Rechercher des sujets similaires à "erreur type"