[Excel / VBA] Probleme importation de donnée excel

AiDuK Messages postés 80 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 30 juillet 2008 - 10 juil. 2008 à 16:40
AiDuK Messages postés 80 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 30 juillet 2008 - 11 juil. 2008 à 11:51
Bonjour ,

j'ai de nouveau un probleme lors de mon importation de données
En gros, je fais une importation d'une feuille excel d'un autre document vers mon document en cours.

Pour se faire, en cliquant sur un bouton, je parcours mes fichiers en affichant les fichiers excel.

Tout marche bine quand je séléctionne un fichier excel, cependant, si je fais "annuler", cela met une erreur

le code :

 FileToOpen = Application.GetOpenFilename("Tout les fichiers Excel (*.xl*;*.xls;*.xla;*.xml;*.xlm;*.xlc;*.xlw),")
    If Not FileToOpen = vbNullString Then Workbooks.Open FileToOpen Else
    If FileToOpen = vbNullString Then
    MsgBox mes1
    End If
    Exit Sub

Erreur d'execution '1004'
il me met en erreur qu'il n'a pas pu trouver le fichier : "faux.xls"

mes1 est une message disant qu'il y a eu une annulation de l'importation

15 réponses

bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
10 juil. 2008 à 16:48
Salut

 FileToOpen = Application.GetOpenFilename("Tout les fichiers Excel (*.xl*;*.xls;*.xla;*.xml;*.xlm;*.xlc;*.xlw),")
    If Not FileToOpen = false Then
        Workbooks.Open FileToOpen
    Else
        MsgBox mes1
    End If
    Exit Sub

si false ne marche pas ajoute MsgBox FileToOpen avant la condition if, pour voir ce que contient la variable FileToOpen quand tu cliques sur cancel

A+
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
10 juil. 2008 à 16:52
salut,

ton code est bizarre, voilà ce qu'il faudrait faire :

 FileToOpen = Application.GetOpenFilename("Tout les fichiers Excel (*.xl*;*.xls;*.xla;*.xml;*.xlm;*.xlc;*.xlw),")
    If FileToOpen <> vbNullString Or FileToOpen Then
        Workbooks.Open FileToOpen
    Else <strike></strike>
    MsgBox mes1
    End If
    Exit Sub

annuler renvoi non pas une chaine de caractère nulle, mais false

@++

le mystérieux chevalier,"Provençal, le gaulois"
0
AiDuK Messages postés 80 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 30 juillet 2008
10 juil. 2008 à 16:54
J'ai modifié, mais un probleme persiste.

Maintenant, quand je fais annuler , cela marche, mais lorsque je choisi un fichier pour l'importation , cela plante

Il met que le type est incompatible, erreur d'execution '13'

PS : je croyais que cétait VbNullString et non pas False ?
Enfin c'est ce qu'a dit Mortalino
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
10 juil. 2008 à 16:56
VbNullstring = si rien n'est choisi, mais appuie sur Valider
false = annuler.
(cf F1, je viens de le lire)

elle est sur quelle ligne ton erreur ?

@++

le mystérieux chevalier,"Provençal, le gaulois"
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
AiDuK Messages postés 80 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 30 juillet 2008
10 juil. 2008 à 16:58
J'ai essayé ta methode Mortalino, mais il y a un probleme, cela bug quand je séléctionne un fichier et aussi quand j'annule

Il me dit que le probleme vient de cette ligne là :

FileToOpen = Application.GetOpenFilename("Tout les fichiers Excel (*.xl*;*.xls;*.xla;*.xml;*.xlm;*.xlc;*.xlw),")
    If FileToOpen <> vbNullString Or FileToOpen Then
        Workbooks.Open FileToOpen
    Else <strike></strike>
    MsgBox mes1
    End If
    Exit Sub

Dans les 2 cas : erreur d'execution '13'
Incompatibilité des types
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
10 juil. 2008 à 16:58
grrr

c'est bon j'ai vu, mais il y a conflit dans les types de données..
Je cherche

@++

le mystérieux chevalier,"Provençal, le gaulois"
0
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
10 juil. 2008 à 17:02
essai comme ça pour voir

FileToOpen = Application.GetOpenFilename("Tout les fichiers Excel (*.xl*;*.xls;*.xla;*.xml;*.xlm;*.xlc;*.xlw),")
    If FileToOpen <> "" Or FileToOpen = True Then
        Workbooks.Open FileToOpen
    Else
    MsgBox mes1
    End If
    Exit Sub
0
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
10 juil. 2008 à 17:03
pardon

If FileToOpen <> "" Or Not FileToOpen = False Then
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
10 juil. 2008 à 17:05
Nop,

If FileToOpen Then

Tout bêtement, car le bouton ouvrir est grisé tant qu'il n'y a pas de fichier de sélectionné.

Par contre, si un filou mets quelque chose dans la barre d'adresse, et qui ne correspond pas à un fichier valide, ça plantera.
(vérifier avec Dir)

@++

le mystérieux chevalier,"Provençal, le gaulois"
0
AiDuK Messages postés 80 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 30 juillet 2008
10 juil. 2008 à 17:06
Je viens de tester ta méthode Bigfish, mais ni l'importation, ni l'annulation ne marchent

Anuulation , parce qu'il cherche le fichier : "faux.xls"
Imporation, incompatibilité de type
0
AiDuK Messages postés 80 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 30 juillet 2008
10 juil. 2008 à 17:11
Bon , je viens de faire plusieurs tests, j'arrive à faire marcher l'importation avec :

    FileToOpen = Application.GetOpenFilename("Tout les fichiers Excel (*.xl*;*.xls;*.xla;*.xml;*.xlm;*.xlc;*.xlw),")
    If FileToOpen <> vbNullString Then
        Workbooks.Open FileToOpen
    Else
    MsgBox mes1
    End If

Par contre , cela plante toujours si je fais annuler
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
10 juil. 2008 à 17:13
If FileToOpen Then
        Workbooks.Open FileToOpen
    Else
    MsgBox mes1
    End If

en cas d'annulation c'est géré (voir mon dernier comm de la page précédante)
@++

le mystérieux chevalier,"Provençal, le gaulois"
0
AiDuK Messages postés 80 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 30 juillet 2008
11 juil. 2008 à 09:56
J'ai essayé comme cela, ca marche pour l'nnulation , mais pas pour l'importation de fichier
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
11 juil. 2008 à 10:12
essaie comme ceci, j'ai testé, c'est bon :

Dim FileToOpen As Variant

On Local Error GoTo MyOpen
    FileToOpen = Application.GetOpenFilename("Tout les fichiers Excel
(*.xl*;*.xls;*.xla;*.xml;*.xlm;*.xlc;*.xlw),")
    If FileToOpen Then
MyOpen:
        If Err.Number = 13 Then
            Err.Clear: On Local Error GoTo
0
            Workbooks.Open FileToOpen
        End If
    Else
        MsgBox mes1
    End If

~
<small>Mortalino ~ [code.aspx?ID=39466 Colorisation
automatique]</small>

@++

le mystérieux chevalier,"Provençal, le gaulois"
0
AiDuK Messages postés 80 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 30 juillet 2008
11 juil. 2008 à 11:51
C'est parfait , tout marche parfaitement

Merci beaucoup pour l'aide ;)
0
Rejoignez-nous