Exécuter macro excel fermé depuis vb6

Résolu
methkam Messages postés 8 Date d'inscription mercredi 10 décembre 2008 Statut Membre Dernière intervention 27 janvier 2009 - 21 janv. 2009 à 14:52
methkam Messages postés 8 Date d'inscription mercredi 10 décembre 2008 Statut Membre Dernière intervention 27 janvier 2009 - 22 janv. 2009 à 10:11
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

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
21 janv. 2009 à 20:43
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)
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
21 janv. 2009 à 15:07
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)
0
methkam Messages postés 8 Date d'inscription mercredi 10 décembre 2008 Statut Membre Dernière intervention 27 janvier 2009
21 janv. 2009 à 15:25
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.
0
methkam Messages postés 8 Date d'inscription mercredi 10 décembre 2008 Statut Membre Dernière intervention 27 janvier 2009
22 janv. 2009 à 10:11
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  
0
Rejoignez-nous