Ouverture d'excel

Résolu
cs_hustler Messages postés 85 Date d'inscription mercredi 17 septembre 2003 Statut Membre Dernière intervention 20 mars 2012 - 28 nov. 2007 à 19:14
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

7 réponses

cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
28 nov. 2007 à 19:29
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

 
3
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
29 nov. 2007 à 00:47
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²
3
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
C'est bon j'ai trouvé

j'avais un parametre qui n'allait pas dans une requete sur les autres pages
3
cs_hustler Messages postés 85 Date d'inscription mercredi 17 septembre 2003 Statut Membre Dernière intervention 20 mars 2012
29 nov. 2007 à 09:15
Ok

ça marche beaucoup mieux

merci beaucoup pour les infos
0

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

Posez votre question
cs_hustler Messages postés 85 Date d'inscription mercredi 17 septembre 2003 Statut Membre Dernière intervention 20 mars 2012
30 nov. 2007 à 15:21
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
0
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
30 nov. 2007 à 15:53
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

 
0
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 à 08:58
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
0
Rejoignez-nous