Ouvrir classeur xlsm avec VB6

Signaler
Messages postés
3
Date d'inscription
lundi 18 avril 2011
Statut
Membre
Dernière intervention
9 juin 2011
-
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
-
Bonjours,
S’il vous plait cela fait longtemps que je cherche une solution à mon problème mais en vain.
En fait, j’ai un classeur Excel .xlsm (avec des macros) et je veux l’ouvrir avec VB6.
Prière de m’aider.
Cordialement
Imy55

6 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
68
Salut

Il te suffit d'ajouter à ton projet une référence à "Microsoft Excel XX.0 Object Library" où tu remplaces le XX par le n° de version de ton office (11=2003, 12=2007 et 14 pour 2010)

Ensuite, tu pourras dimensionner des objets propres à Excel, par exemple :
    Dim ExcelApp As Excel.Application
    Dim ExcelWbk As Excel.Workbook

    Set ExcelWbk = ExcelApp.Workbooks.Open("C:\mon fichier.xlsm")

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
1241
Date d'inscription
mardi 10 octobre 2006
Statut
Membre
Dernière intervention
27 août 2013
4
Bonjour,

Il y a une différence entre ouvrir un fichier xls et xlsm?
Qu'as tu déjà essayé comme code??

L'expérience, c'est une connerie par jour, mais jamais la même..
Messages postés
3
Date d'inscription
lundi 18 avril 2011
Statut
Membre
Dernière intervention
9 juin 2011

Voici le code que j'utilise (il ouvre des fichier .xls que .xlsm).Mais toujours à l'extérieur de la form ce que je veux c'est ne pas sortir de l'application et afficher le classeur à l'intérieur de la form.
merci pour votre réponse et j'espère que mon problème est plus claire mnt.

Private Sub Command1_Click()

Dim XlApp As Excel.Application

'Créer l'appli excel
Set XlApp = New Excel.Application

'Afficher l'appli excel
XlApp.Visible = True

'Ouvrir le fichier excel
XlApp.WorkBooks.Open "C:\Documents and Settings\Administrator\Desktop\PE.xlsm"

End Sub
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
68
Ah, ouvrir le classeur et l'afficher !
Détail qui m'échappait, puisque tu ne parlais de macros.

Mais que veux-tu faire ?
Si ce n'est que pour lancer Excel et que tu n'as pas besoin de liaison entre ton programme et les données, pas la peine de se compliquer la vie, l'API ShellExecute le fait très bien.

Si tu veux faire ça et limiter la zone de travail à une des formes de ton application, se sera plus délicat : Il faut utiliser l'API SetParent pour dire à Excel (du moins l'interface client de Excel) que son parent est la forme.
Il te faut donc retrouver le Handle de Excel après l'avoir lancé, puis appliquer le SetParent (le Handle de la forme VB est dans maForme.hWnd).

Méfie-toi, SetParent peut provoquer des crash de l'application VB : Prends bien soin de sauvegarder ton appli avant chaque essai.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
3
Date d'inscription
lundi 18 avril 2011
Statut
Membre
Dernière intervention
9 juin 2011

[i]Bonsoir,
Je suis débutante en VB, ça fait pas longtemps que je travail avec et je cherche un code simple pour afficher Excel dans objet VB .
Comment puis je travailler avec l’API ShellExecute. Si vous avez un tuto ou bien si vous vous rappeler d’un code source déjà déposé sur le site filez le moi.
Désolé pour le dérangement
Cordialement
Imy55
/i
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
68
ShellExecute : Une simple recherche de "ShellExecute" parmi les sources sauf .Net te répondra.

On ne sait toujours pas ce que tu veux faire avec ton fichier Excel.
Si tu n'as besoin que d'afficher des données, tu peux aussi ajouter un objet Excel directement sur ta forme :
Ctrl-T pour faire apparaitre l'ajout de composant + onglet "Objet à insérer" et tu recherches "Feuille de calcul Microsoft Excel".
Ne me demande pas comment ça marche, ça doit être décrit dans l'aide.