VBA - notion de variables et leur emplacement

Hub

XLDnaute Occasionnel
Bonjour,

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 ?

Merci d’avance pour vos réponses,
@+
 

Pièces jointes

  • Essai macro evenementielle5 Ok.xls
    46 KB · Affichages: 18
  • Essai macro evenementielle6 No.xls
    46 KB · Affichages: 21

ROGER2327

XLDnaute Barbatruc
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.


Bonne journée.


ℝOGER2327
#8214


Vendredi 6 Pédale 143 (Vers Belges - fête Suprême Quarte)
10 Ventôse An CCXXIV, 4,2030h - bêche
2016-W09-1T10:05:14Z
 

youky(BJ)

XLDnaute Barbatruc
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")

et la suite

Bruno
 

Hub

XLDnaute Occasionnel
Re : VBA - notion de variables et leur emplacement

Merci pour vos réponses,

Remplacer Integer par Variant, c'est une solution à laquelle je n'aurais jamais pensé, je "fixais" sur un problème d'emplacement.

Maintenant ça fonctionne et encore merci

@+
 

Discussions similaires

Réponses
1
Affichages
170

Statistiques des forums

Discussions
312 305
Messages
2 087 084
Membres
103 461
dernier inscrit
dams94