probleme a propos de GetOpenFilename

J

jderoque

Guest
bonjour

voici le debut dune macros ke j'utilise. j'ouvre un fichier appelé archivebande.xls pour y copie des données. kand je fais la procédure normal, tt va bien, me si je fais annulé ou momment d'ouvrir le fichier, la macro fé nimporte koi au lieu de s'arreté.
 

myDearFriend!

XLDnaute Barbatruc
Bonjour jderoque, le Forum,

Déclarer en tête de procédures, TOUTES les variables que tu utilises, est une habitude tout à fait recommandée si tu veux pouvoir progresser dans l'apprentissage de VBA. L'instruction Dim est faite pour ça.

Pour rappel, les types de données utilisables en VBA sont :

TypeDonnees.gif


Suivant la valeur qui sera stockée dans ta variable, il convient de déclarer cette dernière avec le type de données le plus adapté, tout en privilégiant le type qui représente le poids le plus faible (par mesure d'économie des ressources système et donc, afin d'obtenir un code optimisé).

Ainsi, pour t'éviter quelques surprises futures, je ne puis que te conseiller de mettre une ligne 'Option Explicit' en tête de chacun de tes modules de code. Cela t'obligera à déclarer l'ensemble des variables que tu utilises. Et pour ne pas avoir à mettre manuellement 'Option Explicit' dans chaque nouveau module que tu insères, tu peux faire Menu Outils / Options.../ Onglets 'Editeur' et cocher 'Déclaration des variables obligatoire' depuis l'éditeur VBE.

Dans l'exemple donné plus haut, tu remarqueras que la variable 'Fichier' peut recevoir un type de données String (le chemin de stockage du fichier) ou un type de données Boolean (valeur False). C'est la raison pour laquelle je l'ai déclaré en tant que variable de type Variant. Ce type de données Variant est en fait un type de données 'fourre-tout' qui peut contenir n'importe quelle donnée. Ce type de variable est donc pratique mais, en contrepartie, cette variable consommera le plus de ressources (poids).

Pour info, si tu n'utilises pas 'Option Explicit' et que tu ne déclares pas tes variables, VBA considèrera d'office tes variables comme étant du type Variant, ce qui n'est pas du tout conseillé. Il en est de même si tu déclares la variable de la manière suivante :
Dim MaVariable (sans indication du type de données souhaité).

Cordialement,
Bonnes fêtes de fin d'année.
 

Membres actuellement en ligne

Statistiques des forums

Discussions
312 338
Messages
2 087 397
Membres
103 536
dernier inscrit
komivi