Cours VBA gratuit | Erreurs

Erreur 13

Gratuit, sans inscription Niveau 2 / 3 | Intermédiaire Lecture 5 min V1.2 | 29/10/2026

L'erreur 13 signale que VBA a reçu une donnée du mauvais type : du texte là où il attend un nombre, une valeur d'erreur Excel là où il attend une date. Elle vient presque toujours des données, rarement du code lui-même.

Télécharger la fiche PDF gratuiteSans inscription, mise en page prête à imprimer

01Le message

En une phrase

Erreur d'exécution 13 : Incompatibilité de type. La valeur ne peut pas être rangée dans la variable ou utilisée dans le calcul, parce que son type ne correspond pas.

02Les causes les plus fréquentes

CauseExempleCorrection
Texte dans une variable numériqueDim q As Long puis q = "douze"vérifier avec IsNumeric
Cellule contenant une erreurune cellule affiche #N/A et on fait total = total + c.Valuetester IsError(c.Value)
Date mal forméeCDate("31/02/2026")vérifier avec IsDate
Calcul sur une cellule texteCells(i, 2).Value * 1.2 avec "N.C." en Btester avant de calculer

03Sécuriser une boucle de calcul

Ignorer les cellules non numériques
Sub Additionner()
    Dim c As Range, total As Double
    For Each c In Range("C2:C500")
        If Not IsError(c.Value) Then
            If IsNumeric(c.Value) And c.Value <> "" Then
                total = total + c.Value
            End If
        End If
    Next c
    MsgBox "Total : " & total
End Sub

Le test IsError passe en premier, dans un If séparé : comparer une valeur d'erreur avec <> déclencherait lui-même l'erreur 13.

FonctionRenvoie True si
IsNumeric(x)x peut être converti en nombre
IsDate(x)x peut être converti en date
IsError(x)x est une valeur d'erreur Excel (#N/A, #DIV/0!...)
IsEmpty(x)la variable ou la cellule est vide

04Pièges à éviter

⚠️ PiègeLes nombres stockés en texte

Une cellule peut afficher 120 mais contenir le texte "120" (triangle vert dans le coin). IsNumeric renvoie True, et CDbl(c.Value) convertit proprement.

⚠️ PiègeLe séparateur décimal

Un texte comme "12.5" peut ne pas être reconnu comme un nombre sur un Excel français, qui attend une virgule. Val("12.5") lit toujours le point comme séparateur décimal.

05Questions fréquentes

Que signifie l'erreur 13 en VBA ?

Erreur d'exécution 13 : Incompatibilité de type. La valeur ne peut pas être rangée dans la variable ou utilisée dans le calcul, parce que son type ne correspond pas.

Quel est le piège le plus fréquent avec l'erreur 13 ?

Les nombres stockés en texte. Une cellule peut afficher 120 mais contenir le texte "120" (triangle vert dans le coin). IsNumeric renvoie True, et CDbl(c.Value) convertit proprement.

La fiche « Erreur 13 » est-elle gratuite ?

Oui. La fiche est en accès libre et gratuit, sans inscription : vous pouvez la lire en ligne et télécharger sa version PDF. Elle fait partie du cours VBA gratuit de mesetudesdecas.fr, qui compte 21 fiches.

Pour les formateurs

Passez de la fiche à la mise en situation

Les études de cas mesetudesdecas.fr placent vos apprenants face à un vrai besoin d'entreprise. L'étude de cas XL-05 fait automatiser un devis commercial de bout en bout, macros comprises, avec énoncé, corrigé et pas-à-pas du formateur.

Découvrir l'étude de cas XL-05
Voir aussi

Toutes les fiches du cours VBA gratuit

Voir aussi le cours gratuit sur les formules Excel

Fiche V1.2 | Dernière mise à jour : 29/10/2026 | Clément Delobel, formateur Excel et VBA