Comment intégrer des Macro Excel sous VB

Résolu
cs_Caussenard Messages postés 28 Date d'inscription vendredi 16 juillet 2004 Statut Membre Dernière intervention 8 juillet 2008 - 16 juil. 2004 à 09:41
cs_PhilippeE Messages postés 437 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 10 août 2010 - 16 juil. 2004 à 11:33
Je débarque sous VB j'ai bien acheter VB pour les nuls mais il ne répond pas à mes attentes.
Voici mon problème:
J'ai crée des macros sous Excel qui traitent différents fichiers. Je souhaiterai au travers de VB crée une application qui reprénne ses macros, mais je ne sais pas comment lui faire ouvrir mon fichier excel et lancer les macro existante.

Merci d'avance pour vos réponses
Caussenard

5 réponses

cs_PhilippeE Messages postés 437 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 10 août 2010 2
16 juil. 2004 à 09:59
Ouverture d'un fichier Excel ...
Tu peux adapter l'exemple de Microsoft sur la fonction CreateObject.

' Code valable uniquement pour la version d'Excel cochée dans Projet/Références
Dim oXlApp as Excel.Application
Dim oXlWkb as Excel.Workbook
dim oXlWks as Excel.Worksheet

Set oXlApp = New Excel.Application
Set oXlWkb = oXlApp.Workbooks.Open("...TonClasseur...")
Set oXlWks = oXlWkb.Sheets("...LeNomDeTaFeuille...")

L'avantage de cette est qu'elle te permet de disposer de l'intellicence, donc tu peux développer un peu plus vite.

' Code générique valable pour toutes les versions d'Excel
Dim oXlApp as Object
Dim oXlWkb as Object
dim oXlWks as Object

Set oXlApp = CreateObject("Excel.Application")
Set oXlWkb = oXlApp.Workbooks.Open("...TonClasseur...")
Set oXlWks = oXlWkb.Sheets("...LeNomDeTaFeuille...")

L'avantage de cette méthode (en général ce que tu laisses quand tu as fini de débugger) est de fonctionner avec toutes les versions d'Excel du poste, sous réserve de compatibilité avec les fonctionnalités existantes (par exemple une image dans un entête d'Excel ne marche pas sous xl97)

Après ton code nécessite une légère adaptation pour passer de VBA sous VB, mais on s'y fait assez facilement.
En général on développe dans le cadre de l'exemple 1, puis une fois le projet testé et validé, on le ransforme comme dans l'exemple 2 ... attention les constantes Excel utilisées doivent être déclarées.
3
cs_Caussenard Messages postés 28 Date d'inscription vendredi 16 juillet 2004 Statut Membre Dernière intervention 8 juillet 2008 1
16 juil. 2004 à 11:08
ça à l'air marcher mais je ne comprend pas trés bien ce qui ce passe.
Il ne se passe rien à l'écran mais excel est bien ouvert (gestionaire de tache)
Afin que je comprenne mieu pouvez vous me completer le rpogramme suivant:

Private Sub See_Click()
' Code générique valable pour toutes les versions d'Excel
Dim oXlApp As Object
Dim oXlWkb As Object
Dim oXlWks As Object
Dim import As String 'Nom du fichier à importer

import = InputBox("saisissez le nom du fichier à importer")
Set oXlApp = CreateObject("Excel.Application")
Set oXlWkb = oXlApp.Workbooks.Open("Z:\PREPARATION\SYLPH\DONNEES\SYLPH.xls")
Set oXlWks = oXlWkb.Sheets("SYLPH")

'Ecrire la variable import dans le fichier excel
'Lancer la macro Excel "importSEE"
'Fermer Excel

End Sub

Merci d'avance
Caussenard
3
cs_PhilippeE Messages postés 437 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 10 août 2010 2
16 juil. 2004 à 11:26
Oups j'ai oublié ...

Pour rendre Excel visible
oXlApp.Visible = True


Pour fermer proprement Excel
oXlWkb.Close
oXlApp.Quit
Set oXlWkb = Nothing
Set oXlApp = Nothing
3
cs_PhilippeE Messages postés 437 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 10 août 2010 2
16 juil. 2004 à 11:33
La suite ...

Ecrire une variable dans le fichier Excel
oXlWks.Range("A1").Value = MaVariableImport


Lancer une macro (c'est de la théorie là ... je n'ai jamais pratiqué puisque je migre mes macros dans VB)
Dim sMacro as String
sMacro = oxlWkb.Name & "!" & "ImportSEE"
oXlApp.Run sMacro
3

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

Posez votre question
cs_Caussenard Messages postés 28 Date d'inscription vendredi 16 juillet 2004 Statut Membre Dernière intervention 8 juillet 2008 1
16 juil. 2004 à 10:06
Merci de m'avoir répondu si vite, je vais essayer de m'en sortir avec ses codes.

@+
Caussenard
0
Rejoignez-nous