Exécuter macro excel fermé depuis vb6 [Résolu]

Signaler
Messages postés
8
Date d'inscription
mercredi 10 décembre 2008
Statut
Membre
Dernière intervention
27 janvier 2009
-
Messages postés
8
Date d'inscription
mercredi 10 décembre 2008
Statut
Membre
Dernière intervention
27 janvier 2009
-
Bonjour à tous
<link rel="File-List" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml" /><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:HyphenationZone>21</w:HyphenationZone>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
</w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" LatentStyleCount="156">
</w:LatentStyles>
</xml><![endif]--><style><!--
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
@page Section1
{size:595.3pt 841.9pt;
margin:70.85pt 70.85pt 70.85pt 70.85pt;
mso-header-margin:35.4pt;
mso-footer-margin:35.4pt;
mso-paper-source:0;}
div.Section1
{page:Section1;}
--></style><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Tableau Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-ansi-language:#0400;
mso-fareast-language:#0400;
mso-bidi-language:#0400;}
</style>
<![endif]-->J’ai importer sur mon classeur xls une table access depuis
Données – Données externes – Importer des données, et j’ai créer la macro
suivante pour actualiser les données.

Sub actualise()

Range("dbemp").QueryTable.Refresh BackgroundQuery:=False

End Sub

Jusque là ça marche bien.

Et-il possible d’exécuter la macro dans le classeur fermé
depuis un bouton créer sur une form sous VB6.

Merci d’avance

4 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
Non, il faut bien l'ouvrir, mais au sein de VB6, pas sous Excel :
Sous VB6, menu "Projet", "Composants...", onglet "Objets à insérer" + "Feuille de calcul Excel"
C'est une des possibilités.
Par contre, je ne sais pas si on peut accéder aux macros après avoir ouvert le fichier dans cet objet.
Par curiosoté, j'ai tapé "excel macro" dans la recherche parmi les Codes en excluant .NET et la première réponse correspond à ta demande.
Tu aurais pu chercher un peu !


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

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
Salut
Les données sont recopiée/affichées sur Excel, mais elles restent dans ta base de données.
Sous VB6, bien sûr, on peut interroger une DB.
Il y a quelques exemples parmi les codes : Recherche "base de données" parmi les codes en excluant .NET.
Il existe plusieurs objets/méthodes pour se connecter à la DB.
Pour retrouver un peu l'ambiance Excel, je te conseille d'utiliser l'objet ADODC (Ctrl-T + "Microsoft ADO Data Control 6.0") :
Tu places ce composant sur ta forme, tu vas renseigner les propriétés de la catégorie "Données" pour désigner ta DB + la table.
Puis tu insères autant de TextBox que tu as de champ à visualiser dans ta table.
Dans chaque TexteBox, tu vas dans les propriétés de la catégorie "Données" et tu renseignes les propriétés DataSource (ton objet ADODC), DataMember, DataField et DataFormat : ces derniers champs seront guidés par la première connexion de ta TextBox à ton ADODC

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

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
8
Date d'inscription
mercredi 10 décembre 2008
Statut
Membre
Dernière intervention
27 janvier 2009

Salut jack
Merci pour ta réponse, tous que tu ma dit est déjà fait sur la forme vb6 avec ma table access, mais juste je veux ajouter un bouton pour exécuter la macro sans ouvrir le classeur.
Messages postés
8
Date d'inscription
mercredi 10 décembre 2008
Statut
Membre
Dernière intervention
27 janvier 2009

Bonjour jack Bonjour à tous
Merci bcp pour ta réponse, en fin j'ai supprimer la macro et via VB6 je fait le transfert des valeur des textbox  vers mon xls bien sûr je l'ouvre et je le ferme via la procédure
Dim MonExcel As Excel New Excel.Application
MonExcel.Workbooks.Open ("C:\toto.xls")
MonExcel.Sheets("Feuil1").Select
MonExcel.Range("A1") = Text1.Text
etc...
MonExcel.Workbook.save
MonExcel.Quit