Annuler ouverture fichiers

Bonjour tout le monde,

J'utilise la fonction :

Dim filenames As Variant
 filenames = Application.GetOpenFilename("Text Files (*.csv), *.csv", , , , True)

Qui me permet d'aller chercher plusieurs fichier (que je colle ensuite sur la feuille)

Le code fonctionne, mais lorsque l'utilisateur annule l'ouverture du fichier, on retourne sur la page de code avec l'erreur 13 : "incompatibilité de type" sur la ligne

 While counter <= UBound(filenames)

J'ai regardé ce que renvoyé la fonction, Excel me dit False, je place donc un test pour lui demander s'il prend la valeur False, ça ne fonctionne pas, même erreur (Excel me dit False = Faux)

J'essaie donc

            If filenames = False Then
            Exit Sub

Dans ce cas là cela fonctionne, mais la recherche passe en erreur 13 si l'utilisateur ouvre un fichier.

J'ai cherché sur internet pour voir ce que renvoyait comme valeur Ubound sans vraiment trouvé de réponses tangibles, j'ai donc essayé le test avec 0 ou Null (avec juste la variable filenames) sans plus de succès.

Je commence à arriver à court d'idées, je joins le fichier et merci à ceux qui y jetteront un oeil.

12sytelv1.xlsm (31.93 Ko)

bonjour,

Mettre :

Dim filenames As Variant
filenames = Application.GetOpenFilename("Text Files (*.csv), *.csv", , , , True)
If filenames = "" Then Exit Sub
...

A+

Ca n'a pas l'air de fonctionner, j'ai toujours l'incompatibilité de type :

- Quand tu cliques sur Annuler ->

While counter <= UBound(filenames)

incompatibilité de type

- Quand tu cliques sur Ouvrir ->

If filenames = "" Then

incompatibilité de type

Bonjour,

Finalement j'ai un peu restructurée ton usine à gaz pour ne laisser que ce qui était utile à l'importation...

A+

83sytelvg.xlsm (35.10 Ko)

C'est une idée,

Le problème c'est que j'ai besoin du reste (Je dois coller le contenu des fichiers que j'ouvre, sur le même classeur, sur des feuilles différentes. Ensuite je rajouterai même du code de mise en forme sous condition, c'est y pas génial ?)

C'est pas une usine à gaz, j'ai énormément de trucs à mettre ensemble et vu que je code comme un dinosaure ^^ ou alors que je fais des grosses merdes préhistoriques, c'est toi qui voit ^^

Et surtout après Test, lorsque je veux ouvrir les fichiers il en ouvre un puis se met en erreur (message box correspondant à ce code :

GESTERR:
   MsgBox "ok"

Bonjour,

Ya pas de souci, La macro te permet d'ouvrir tous les fichiers que tu veux dans des feuilles séparées après tu en fais ce que tu veux, mais tu n'as plus besoin de retoucher cette macro,

Rien ne t'empêche de faire à partie du bouton la liste des macros que tu dois appliquer :

Private Sub CommandButton1_Click()
CopierCollerConvertir
SupprimerLesFeuillesInutiles
MettreEnFormeLesNouvellesDonnées
AutresProcéduresApplicables
End Sub

Comme ça chaque macro fait un boulot bien défini et YAPA d'embrouille, mais si tu mélanges un peu tout dans la même macro, selon mon point de vue ça devient une usine à gaz.

A+

Disons que je vérifie si sa fonctionne, ensuite j'allège le code en séparant dans différentes macro, et vu que là je n'ai pas terminé, je faisais un gros brouillon qui regroupe tout ^^

Je viens de comprendre d'où venait le problème, le bouton était placé sur la feuille ...S02.CSV

Donc quand je sélectionnait mes fichiers et qu'il voyait que le 02 était déjà ouvert, il m'indiquait le message d'erreur

Rechercher des sujets similaires à "annuler ouverture fichiers"