Scrapel
Messages postés32Date d'inscriptionlundi 7 juillet 2014StatutMembreDernière intervention18 novembre 2014
-
8 juil. 2014 à 17:07
Scrapel
Messages postés32Date d'inscriptionlundi 7 juillet 2014StatutMembreDernière intervention18 novembre 2014
-
9 juil. 2014 à 10:05
Bonjour,
J'ai un problème pour ouvrir un fichier excel. Le but est de lire les valeurs de la première colone d'excel et de les afficher dans une liste déroulante. Voici le code :
*** Affiche les caractéristiques de lignes sauvegardées dans le combobox du mode automatique à partir d'un fichier excel 'Déclaration des variables Dim xls As Excel.Application 'Application Excel Dim xlsfeuille As Excel.Workbook 'Classeur Excel Dim xlsclasseur As Excel.Worksheet 'Feuille Excel
'Ouverture de l'application Set xls = CreateObject("Excel.Application") 'Ouverture du classeur Set xlsclasseur = xls.Workbooks.Open("C:\Users\...\Desktop\test1.xls") 'Ouverture de la feuille, on prend la 1ere feuille comme feuille de travail Set xlsfeuille = xls.Worksheets(1)
'Lecture des données de la première colonne et ajout des éléments de la combobox du choix de ligne Dim i As Long Dim test As Boolean i = 2 Do While (Sheets(1).Cells(i, 1).value <> " ") Combo_Choix_Ligne.AddItem xlsfeuille.Cells(i, 1).value i = i + 1 Loop If Combo_Choix_Ligne.ListIndex < 0 Then Combo_Choix_Ligne.ListIndex = 0
'Fermeture du classeur excel 'xlsclasseur.close()</souligne></souligne> 'Désallocation mémoire Set xlsfeuille = Nothing Set xlsclasseur = Nothing Set xls = Nothing 'Fermeture de l'application Excel xls.Quit
Le problème est que quand je compile, l'application se lance mais quand j'essaie d'afficher la liste déroulante, une erreur survient ;
Run-time error '13'
Type Dismatch
Et il surligne la ligne suivante ;
Set xlsclasseur = xls.Workbooks.Open("C:\Users\...\Desktop\test1.xls")
(Le fichier existe bien par ailleurs et s'intitule Test1.xls) (j'ai aussi essayé avec .xlsx et même problème)
Whismeril
Messages postés19144Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention16 septembre 2024660 Modifié par Whismeril le 8/07/2014 à 17:55
Attention aux majuscules
Le fichier existe bien par ailleurs et s'intitule Test1.xls)
Set xlsclasseur = xls.Workbooks.Open("C:\Users\...\Desktop\test1.xls")
Penser aux balises de coloration syntaxique: bouton <>, préciser le langage :<code csharp>.
Quand la solution est trouvée, mettre la discussion Résolue.
Scrapel
Messages postés32Date d'inscriptionlundi 7 juillet 2014StatutMembreDernière intervention18 novembre 2014 8 juil. 2014 à 19:10
Merci pour vos réponses mais malgré ces changements, cela ne marche pas. J'ai corrigé les majuscules et j'ai changé le chemin d'accès.
Set xlsclasseur = xls.Workbooks.Open("C:\Temp\Test1.xls")
Toujours le même message d'erreur...
J'ai remarqué quelque chose d'autre, peut-être intéressant. Dans les processus, EXCEL.EXE est ouvert et ne se ferme pas (au passage j'aimerais savoir pourquoi et comment l'éviter !). Donc l'instruction précédente fonctionne bien. Et quand j'essaye de déplacer le fichier excel alors que le processus tourne toujours, windows me dit qu'il est impossible de déplacer le fichier car il est ouvert (et une fois que j'arrête le processus, je peux à nouveau déplacer le fichier excel)
Whismeril
Messages postés19144Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention16 septembre 2024660 Modifié par Whismeril le 8/07/2014 à 19:40
Dim xlsfeuille As Excel.Workbook 'Classeur Excel
Dim xlsclasseur As Excel.Worksheet 'Feuille Excel
ici tu inverses les variable, xlsfeuille est déclaré comme un classe et vis et versa.
donc forcément là
Set xlsclasseur = xls.Workbooks.Open("C:\Temp\Test1.xls")
tu essayes de rentrer un classeur dans une variable feuille, ça veut pas.
Penser aux balises de coloration syntaxique: bouton <>, préciser le langage :<code csharp>.
Quand la solution est trouvée, mettre la discussion Résolue.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Ah oui désolé de ma bêtise ... J'aurai du voir ça. Merci
Mais j'ai toujours un problème pour la fermeture d'excel !
En rajoutant la ligne commentée suivante (j'ai enlevée l'apostrophe pour l'activer) :
xlsclasseur.close
(edit : j'ai enlevé les parenthèses, sinon ça ne marche pas)
J'ai un pb : Run-time error '91' Object variable or With block variable not set
et il surligne la dernière ligne :
xls.Quit
Pourtant en regardant sur des tuto, je crois qu'ils mettaient ça ...