Aide!!!creation d'une macro excel sous VB

komzy60 Messages postés 15 Date d'inscription mardi 26 octobre 2004 Statut Membre Dernière intervention 31 décembre 2004 - 25 nov. 2004 à 09:51
cs_jperre Messages postés 268 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 19 janvier 2017 - 9 janv. 2006 à 15:12
Bonjour je mets en forme un fichier excel via VB.Je voudrais savoir s'il est possible de créer une macro excel mais sous vb,pour la réutiliser ensuite dans mon fichier .xls

4 réponses

cs_Prince Charmant Messages postés 34 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 30 novembre 2004
25 nov. 2004 à 10:14
Salut,

il esy tout a fait possible de créer tes macro directement en VB. Toutefois, il ne faut pas oublier d'utiliser les références vers Excel (menu Projets/Références).

Sinon, tu peux créer ta macro avec l'interface VB (pour application) fournis par le pack office et ensuite faire un copier/coller dans un sens ou dans l'autre.

A+
0
komzy60 Messages postés 15 Date d'inscription mardi 26 octobre 2004 Statut Membre Dernière intervention 31 décembre 2004
25 nov. 2004 à 10:38
Tu pourrai me donner un modele
0
komzy60 Messages postés 15 Date d'inscription mardi 26 octobre 2004 Statut Membre Dernière intervention 31 décembre 2004
25 nov. 2004 à 10:57
svp
0
cs_jperre Messages postés 268 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 19 janvier 2017 2
9 janv. 2006 à 15:12
J'ai utilisé fréquemment la commande de macros Excel à partir d'une application VB6. J'ai rencontré des difficultés lorsque plusieurs versions d'Excel cohabitaient sur l'ordinateur utilisant l'application VB6. Après un contact auprès de la hot line Microsoft, j'ai résolu le problème lié aux versions en précisant la version Excel active par défaut sur l'ordinateur utilisateur.

Pour faire fonctionner les macros Excel à partir d'une application VB6 il faut :
1 - Que Excel.exe soit présent sur l'ordinateur où est installé l'application VB6.
2 - Dans le menu "Projet", sélectionner "Références", puis "Microsoft Excel"
3 - Dans le module qui va faire appel à l'application Excel, déclarer les objets :
- Dim XLApp as Excel.Application, XLWb as Excel.Workbook, XLWs as Excel.Worksheet

Set XLApp=CreateObject("Excel.Application.x")

Dans cette instruction, "x" désigne le numéro de la version d'Excel, la fonction suivante permet de déterminer celle qui existe sur l'ordinateur qui utilise l'application vb6:

Public Function GetXLVersion() As String
'***********************************************************
'Cette procédure recherche la version de l'application Excel
avant de créer un objet spécifique.
'***********************************************************
Dim XLApp As Excel.Application
Set XLApp = CreateObject("Excel.Application")
GetXLVersion = left(XLApp.Version, InStr(1, XLApp.Version, ".") - 1)
XLApp.Quit
Set XLApp = Nothing
End Function

GetXLVersion permet de fournir la chaine "x", l'instruction précédente peut s'écrire :
Set XLApp=CreateObject("Excel.Application." & GetXLVersion)

Ensuite selon le cas :
Set wbXL = XLApp.Workbooks.Add(xlWBATWorksheet)
ou
Set wbXL = XLApp.Workbooks.Open(sFileXL) 'où sFileXL désigne le nom du fichier

Puis activation ou création d'un objet Worksheet, etc...

Le conseil donné par "Prince charmant" d'enregistrer automatiquement la macro sous Excel est tout à fait recommandé. Mais, il faut savoir que l'enregistrement automatique va fournir un grand nombre d'instructions inutiles, ensuite, il faut simplifier ce code avec discernement.

4 - Toujours fermer les objets à la fin du code, sinon, il y aura des instances d'Excel ouvertes et invisibles à l'écran qui vont provoquer des disfonctionnements de cette dernière application. Le code pour fermer est :
Set XLWs=Nothing 'Suppression de l'objet Worksheet, il n'y a pas de commande de fermeture
XLWb.Save ou XLWb.SaveAs sFileXL 'Enregistrement du classeur
XLWb.Close 'Fermeture du classeur
Set XLWb=Nothing 'Suppression de l'objet classeur
XLApp.Quit 'Fermeture de l'application
Set XLApp=Nothing 'Suppression de l'objet application

5 - Le pack d'installation :
Pour les version 8 et 9 d'Excel (Excel 97 et Excel 2000), le pack d'installation récupère la bibliothèque d'objet Excel8.olb ou Excel9.olb (624 Ko), au delà il veut ajouter Excel.exe (8 Mo environ) au pack d'installation ce qui ne me parrait pas très recommandé.
0
Rejoignez-nous