PapouMAC a écrit :
Merci pour cette réponse rapide. Mais alors pourquoi faut-il affecter un type à la déclaration d'une variable ?
Car dans le cours les variables sont bien affectées d'un type et apparemment la macro fonctionne. Merci.
sans précision de type, le type par défaut est variant.
si un type est défini la variable ne peut contenir que des valeurs qui correspondent à son type (exemple une variable de type date ne peut contenir qu'une date sous peine de générer une erreur, ce qui est le problème que tu rencontres) voici comment j'aurais écrit ton code si tu voulais absolument utiliser les types que tu as définis.
Option Explicit
Sub controle()
Dim prix As Currency
Dim site As String
Dim ma_date As Date
Dim vide As String
If IsNumeric(Range("a1")) Then
prix = Range("A1")
Range("C1") = "Ceci est un nombre"
Else
Range("C1") = "Ceci n'est pas un nombre"
End If
If Not IsNumeric(Range("A2")) Then
site = Range("a2")
Range("C2") = "Ceci est un texte"
Else
Range("C2") = "Ceci n'est pas un texte"
End If
If IsDate(Range("A3")) Then
ma_date = Range("A3")
Range("C3") = "Ceci est une date"
Else
Range("C3") = "Ceci n'est pas une date"
End If
If Range("A4") = "" Then
vide = Range("A4")
Range("C4") = "Cellule vide"
Else
Range("C4") = "cellule non vide"
End If
End Sub