Utilisation ou restitution VBA_Excel dans VBS

Résolu/Fermé
Phoenellion Messages postés 116 Date d'inscription dimanche 14 septembre 2008 Statut Membre Dernière intervention 30 août 2012 - 6 janv. 2012 à 01:59
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 6 mars 2012 à 00:19
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

lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
31 janv. 2012 à 08:39
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
Phoenellion Messages postés 116 Date d'inscription dimanche 14 septembre 2008 Statut Membre Dernière intervention 30 août 2012 32
5 mars 2012 à 23:57
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
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 702
6 janv. 2012 à 15:25
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
Phoenellion Messages postés 116 Date d'inscription dimanche 14 septembre 2008 Statut Membre Dernière intervention 30 août 2012 32
7 janv. 2012 à 09:35
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
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
7 janv. 2012 à 09:46
Bonjour,
Suffit de n'employer des fonctions disponibles sous Excel 2003 et ça tournera sur 97-2003 aussi
A+
0
Phoenellion Messages postés 116 Date d'inscription dimanche 14 septembre 2008 Statut Membre Dernière intervention 30 août 2012 32
Modifié par Phoenellion le 31/01/2012 à 06:44
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
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 6/03/2012 à 00:22
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