Vous trouverez en pièces jointes deux fichiers très similaires.
La différence se trouve dans l’utilisation des variables et leur emplacement concernant le test If.
La formule qui fonctionne dans "Essai macro evenementielle5 Ok"
« If IsNumeric(Range("C3") ) = True Then »
La formule qui ne fonctionne pas dans "Essai macro evenementielle6 No"
« alesage = Range("C3") »
« If IsNumeric(alesage) = True Then »
est il possible de modifier le fichier « Essai macro evenementielle6 No » de façon de pouvoir utiliser la variable « alesage » dans le Test If ?
Re : VBA - notion de variables et leur emplacement
Bonjour Hub.
Vous déclarez alesage As Integer. Par conséquent, alesage = Range("C3") (qui signifie alesage = Range("C3").Value) renvoie une erreur si le contenu de C3 ne peut s'interpréter comme une valeur numérique.
Dans Essai macro evenementielle5 Ok, pas de problème parce que vous écrivez alesage = Range("C3")après avoir vérifié que le contenu de C3 est numérique.
Dans Essai macro evenementielle6 No, ça coince parce que vous écrivez alesage = Range("C3")sans avoir préalablement vérifié que le contenu de C3 est numérique.
Remède possible : déclarer alesage As Variant ; ainsi alesage = Range("C3") passera même si le contenu de C3 ne peut s'interpréter comme une valeur numérique.
Re : VBA - notion de variables et leur emplacement
Bonjour Hub,
Peut être
Sub Essai_1() 'cette macro est lié avec la macro "Private Sub Worksheet_Calculate()" de la feuille 3
Application.EnableEvents = False
Sheets("Feuil3").Select
'attribution d'une valeur aux variables 'alesage = Range("C3")
'tige = Range("C4") If IsNumeric([C3]) = True Then
'déclaration des variables
'Dim alesage As Integer, tige As Integer
'attribution d'une valeur aux variables
alesage = Range("C3")
tige = Range("C4")