[Excel / VBA] Probleme importation de donnée excel
AiDuK
Messages postés80Date d'inscriptionlundi 22 octobre 2007StatutMembreDernière intervention30 juillet 2008
-
10 juil. 2008 à 16:40
AiDuK
Messages postés80Date d'inscriptionlundi 22 octobre 2007StatutMembreDernière intervention30 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
bigfish_le vrai
Messages postés1835Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention20 novembre 201315 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
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 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
AiDuK
Messages postés80Date d'inscriptionlundi 22 octobre 2007StatutMembreDernière intervention30 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
bigfish_le vrai
Messages postés1835Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention20 novembre 201315 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
AiDuK
Messages postés80Date d'inscriptionlundi 22 octobre 2007StatutMembreDernière intervention30 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
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 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