Utilisation ou restitution VBA_Excel dans VBS

Résolu
Phoenellion Messages postés 116 Date d'inscription   Statut Membre Dernière intervention   -  
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   -
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 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
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   Statut Membre Dernière intervention   33
 
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 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
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   Statut Membre Dernière intervention   33
 
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 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
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   Statut Membre Dernière intervention   33
 
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 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
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