Utilisation ou restitution VBA_Excel dans VBS

Résolu/Fermé
Signaler
Messages postés
116
Date d'inscription
dimanche 14 septembre 2008
Statut
Membre
Dernière intervention
30 août 2012
-
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
-
Bonjour,

bonjour, j'ai pour projet de regrouper plusieurs macro développé sous VBA Excel, dans une seule micro application développée sous VB (avec Visual Basic 2010 Express) afin de ne pas devoir passer par Excel pour obtenir les résultats (les macro effectuent des traitements de compilation / recoupement / statistiques et les restituent sous tableau excel tirés à 4 épingles)

je sais que les micro applications développées sous VB peuvent faire appel aux fonctionnalités des logiciels de la suite office...

et j'ai beau chercher sur le net... personne ne semble s'être posé la question comme je me la pose, à savoir :

Comment faire appelle à une instruction VBA (Excel ou autre) depuis un code VB ?
de manière générale

2 réponses

Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 197
Re,
Tu dois spécifier l'objet auquel tu adresse la requête.
Déclarer un objet Excel ex -> MyExcell
Un Object Classeur ex -> MyBook
Un obect Feuille ex -> MySheet
et ensuite toutes les commandes doivent s'y rapporter.
With MySheet
Do While .Cells(1, y) <> ""
.........
A+
1
Messages postés
116
Date d'inscription
dimanche 14 septembre 2008
Statut
Membre
Dernière intervention
30 août 2012
30
Bonjour,
désolé pour un tel retard, j'ai du mettre le programme en question de côté pour un temps.

J'ai testé un peu ce que tu disais Lermite, en effet, c'était bien quelque chose comme ça, par contre, les objets Classeur et Feuille sont erronés, il donnent une erreur, mais sur sur ta théorie, j'ai utilisé un with sur l'application excel elle même et c'est passé.

Merci pour ton aide en tout cas.
@ bientôt
Phoe
0
Messages postés
16193
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
17 janvier 2022
1 580
Bonjour,
Ce lien vous emmene sur le site de developpez.com avec une idee de ce qui possible de faire en partant de VB.NET vers un classeur excel

ftp://ftp2.developpez.be/developps/dotnet/office/OfficeVb.pdf

De toute facon vous devrez adapter un minimum les instructions du VBA

Bonne suite
0
Messages postés
116
Date d'inscription
dimanche 14 septembre 2008
Statut
Membre
Dernière intervention
30 août 2012
30
Bonjour,

merci pour le lien, je vais éplucher un peu ça pour commencer, je vous dirai si j'ai trouvé mon bonheur.

Pour ce que j'ai lu jusque là, on est obligé de créer une instance de l'appli dont on veut utiliser les fonctions. Donc si je développe en codant des fonctions qui n'existe qu'à partir de Excel 2007, le programme ne sera utilisable que si le PC utilisateur dispose d'Excel 2007 ou plus.
Exact ?
Ça empêchera tout utilisateur de mon programme de l'utiliser sur un PC ne disposant que de Excel 2003 voir pas du tout.
0
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 197
Bonjour,
Suffit de n'employer des fonctions disponibles sous Excel 2003 et ça tournera sur 97-2003 aussi
A+
0
Messages postés
116
Date d'inscription
dimanche 14 septembre 2008
Statut
Membre
Dernière intervention
30 août 2012
30
Bonjour,

enfin de retour, désolé pour le délai, j'ai dû laisser l'appli VB.NET de côté.

j'ai fait quelques essais, j'arrive ouvrir un classeur, en créer un, l'enregistrer, par contre, travailler dedant s'avère une autre paire de manches.

j'ai des erreur avec les instructions comme
cells(x,y).end(xlToLeft).row
Do While Cells(1, y) <> "",

et à peu près tout ce que j'ai l'habitude d'écrire en VBA.

je sens que ça va pas être de la tarte de retranscrire mes macro en DOTNET !!
0
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 197
et à peu près tout ce que j'ai l'habitude d'écrire en VBA.
cells(x,y).end(xlToLeft).row
Si c'est comme ça que tu pratique !! Row c'est pour les lignes et xlToLeft c'est pour les colonnes, et tu t'étonne que ça va pas ??
Et il est possible que les constantes ne fonctionnent pas (je suis pas certain)
En plus, dans ton titre tu parle de VBS et maintenant de VB.Net ?
Si tu avais expliquer ça depuis le début ça aurait été plus simple.
A+
0