Ouverture d'excel [Résolu]

Messages postés
85
Date d'inscription
mercredi 17 septembre 2003
Statut
Membre
Dernière intervention
20 mars 2012
- - Dernière réponse : cs_hustler
Messages postés
85
Date d'inscription
mercredi 17 septembre 2003
Statut
Membre
Dernière intervention
20 mars 2012
- 1 déc. 2007 à 10:13
Bonsoir à tous,

Voila, je cherche à ouvrir un document excel deja existant
j'ai trouvé le code ci-dessous:

   'Déclaration des variables
   Dim xlsapp As Excel.Application
   Dim Xlsbook As Excel.Workbook
   Dim Xlsheet As Excel.Worksheet
 
   'lancement d'excel et ouverture du fichier
   Set xlsapp = New Excel.Application
   Set Xlsbook = xlsapp.Workbooks.Open(App.Path & "\Etat\RecapBRH.xls")
   Set Xlsheet = Xlsbook.Worksheets(1)
 
   xlsapp.Visible = True
 
   'déchargement d'excel
   Set Xlsheet = Nothing
   Set Xlsbook = Nothing
   Excel.Application.Quit
   Set xlsapp = Nothing

il fonctionne tres bien, cependant j'ai un petit probleme. Lorsque je clique sur le bouton qui execute ce code
la premiere fois il ouvre mon document ete le referme directement

apres cela ne pose plus de probleme je peu ouvrire ou fermer il repond rapidement

Est ce que quelqu'un pourrait m'indiquer d'ou provient le probleme

Un grand merci d'avance
Afficher la suite 

7 réponses

Meilleure réponse
Messages postés
4824
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
11
3
Merci
Salut,

Il y a plus simple pour ouvrir un fichier excel :

     ' Variable object
      Dim ApExcel As Object
    
     ' Définition de l'object
       Set ApExcel = CreateObject("excel.application")
      
     ' True pour Excel visible et false pour le mettre en arrière plan
       ApExcel.Visible = True
      
     ' Evite les erreurs de traitement
       ApExcel.DisplayAlerts = False
      
     ' Ouvre le fichier
       ApExcel.Workbooks.Open ("CheminDeTonFichier") 
       
     ' Libération des ressources
       Set ApExcel = Nothing

A+
Exploreur

 Linux a un noyau, Windows un pépin

 

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 123 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Exploreur
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
15
3
Merci
Salut Hustler (et Exploreur)
Dans le code que tu donnes il n'y a que les instructions d'ouverture et de fermeture. C'est donc normal qu'Excel s'ouvre puis se ferme... ou j'ai mal compris...(?)

Tu dois utiliser une procédure quelconque pour ouvrir Excel (première partie de ton code), faire des traitements avec ces objets, puis lorsque tu fermes ton application, tu utilises la dernière partie de ton code pour fermer Excel et libérer les ressources comme le dit Exploreur.

Utiliser les références ou CreateObject (sans référence), c'est surtout question de portabilité. Les 2 méthodes fonctionnent bien, mais CreateObject est plus facilement portable d'un PC à un autre puisqu'il n'y a pas de référence "directe" à une version en particulier.

MPi²

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 123 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_MPi
Messages postés
85
Date d'inscription
mercredi 17 septembre 2003
Statut
Membre
Dernière intervention
20 mars 2012
3
Merci
C'est bon j'ai trouvé

j'avais un parametre qui n'allait pas dans une requete sur les autres pages

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 123 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_hustler
Messages postés
85
Date d'inscription
mercredi 17 septembre 2003
Statut
Membre
Dernière intervention
20 mars 2012
0
Merci
Ok

ça marche beaucoup mieux

merci beaucoup pour les infos
Commenter la réponse de cs_hustler
Messages postés
85
Date d'inscription
mercredi 17 septembre 2003
Statut
Membre
Dernière intervention
20 mars 2012
0
Merci
Euh une p'tite question


ça marche super bien il m'ouvre bien le document


cependant il ne me charge que la feuille1 alors que j'en ai 3
comment dois je faire pour tout charger


 


Merci d'avance
Commenter la réponse de cs_hustler
Messages postés
4824
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
11
0
Merci
Salut,

As-tu essayé :

' Ouvre le fichier
       ApExcel.Workbooks.Open ("CheminDeTonFichier1") 
       ApExcel.Workbooks.Open ("CheminDeTonFichier2") 
       ApExcel.Workbooks.Open ("CheminDeTonFichier3") 

sinon, tu rappels la sub avec un chemin différent pour les trois fichiers...

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Commenter la réponse de cs_Exploreur
Messages postés
85
Date d'inscription
mercredi 17 septembre 2003
Statut
Membre
Dernière intervention
20 mars 2012
0
Merci
Bonjour,

en fait il s'agit du meme document
j'ai un classeur avec trois feuilles

et quand je l'ouvre a partir d'excel il y a bien trois feuilles avec mes tableaux mes données etc... mais quand je l'ouvre avec ton code il y a toujours mes trois pages mais seulement la premiere est renseignée
les autres sont completement vides
Commenter la réponse de cs_hustler