VBA, VB.NET , EXCEL ??

farrakis Messages postés 32 Date d'inscription vendredi 28 janvier 2005 Statut Membre Dernière intervention 12 mai 2013 - 9 janv. 2008 à 10:18
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 - 10 janv. 2008 à 00:08
 Bonjour,

Dans le cadre de mon travail, je vais devoir développer une petite application qui sera gérée sous EXCEL (entrée de données dans Excel, graphique dans Excel, etc).

Les calculs qui seront menés dans cette application sont toutefois relativement complexes, et nécessitent l'écriture de lignes de code.

Il y a quelques années, je ne me serais pas posé de questions et me seraient lancés dans la programmation de mon appli sous VBA, directement dans Excel.

Toutefois, aujourd'hui je me pose des questions :

Que vont devenir les macros VBA dans les prochaines versions d'office (office 2007 et ultérieure) ? Fonctionneront elles toujours? Sont elles compatibles avec Vista ?

De plus, je vais devoir réutiliser des classes d'objet, dont le code est déjà écrit en VB.Net (2005) .

La solution ne serait alors t elle pas d'écrire mon programme sous Visual Basic 2005 en faisant des  références aux données Excel (mais dans ce cas, je perds de l'ergonomie, les boutons d'exécution ne se trouvant pas directement sur les feuilles Excel) ?

J'ai vaguement entendu parler de Visual Studio Tools for Office, qui permettrait de programmer en .Net des applications Office. Mais, au sein de ma société, on est en Office 2003, en partie sous Windows XP, en partie sous Windows 2000. Visual Studio Tools for Office est il compatible ? De plus , je ne pense pas qu il soit gratuit ?

Voila, en gros, je me pose des questions sur la  meilleur stratégie à prendre dans le cadre du développement d'une application excel, en cette période de changements et de migration...

J'aimerais connaitre votre opinion sur le sujet et votre stratégie...



Merci d'avance

4 réponses

M000004965 Messages postés 147 Date d'inscription mercredi 3 décembre 2003 Statut Membre Dernière intervention 12 juin 2008
9 janv. 2008 à 11:30
Bonjour,

Perso, j'aborderais la position suivante:

Dèveloppement sous VB (VB.net, tout dépand de ce que tu as sous la main... je présume que ta boite ne veux pas trop investir si il sagis d'une petite appli) avec pilotage d'excel et de la suite office via les ref et les classes.
L'interêt de dev en VB, c'est que tu sera moins ennuyé avec les nouvelles version par rapport à un dev en VBA !

Premièrement, il faut arrêter avec les bases de données sous excel, EXCEL n'est pas fait pour ça ! c'est un tableur !
Les outils ODBC permettent sans aucunes difficultés l'échange d'info avec des moteurs de base de données et le SQL (et ses dérivées) est fortement recommadé dans l'usage d'appli avec base de données.

D'autre part, VB te permettra de mieux encadrer et maitriser la saisie des utilisateurs.
VB offre beaucoup plus de propriétés sur les différents objets par rapport à VBA !

Je procèderai comme suit:

- Dev de l'interface principale en VB
- Gestion des bases de données en Access ou autre (MySql sait communiquer avec VB et te permettrait une évolution et une intégration avec un intranet, extranet pour du partage multi sites ou collaborateur dans une ère où il y a de plus en plus de rachat fusion et filliale entreprise et de travail collaboratif à distance)
je site Access mais il existe un grand nombre de moteur de base de données gratuit qui ferons l'affaire.
- Création de fichier modèles EXCEL ( extention de type XLT) et éventuellement Word ( faut voir les besoins. Ce que je veux dire ici, c'est que tu peux piloter toute la suite office sans aucun problème)
Dans ses fichiers modèles, tu déclares des zones accessibles par programme via leurs noms (je parle des noms des objets)

Il te suffira alors d'ouvrir le fichier XLT (extention des fichiers model excel) via VB, ce qui aura pour effet de créer automatiquement un nouveau classeur excel.xls (entièrement paramétrable) puis de renseigner les différants objets via leurs noms et leurs propriétés...

pour gérer tes données, il te suffira d'utiliser le SQL (et ses dérivés) via des recordset. Tu pourra ainsi mettre à jours des données, les trier, en modifier, ajouter ou supprimer à loisir dans un vrai moteur de base de donnée. C'est là que tu y gagne car tes possibilités sont plus grandes en matière de manipulation des données et les résultats des requetes plus rapides donc ton aplli est plus puissante et plus souple.

Il est même possible de travailler avec des appli qui utilisent ORACLE via les pilotes ODBC appropriés.
Si tu gère des bases de données sous excel, tu vas au devant de complications...
C'est mon constat après plus de 10 ans de dèveloppement sous VB dans dif entreprises où j'ai réaliser un très grand nombre d'appli de gestion en VB qui pilotaient toute la suite office et plus.

Je suis débutant en PHP mais pas en VB !

Auto didacte, je ne demande qu'à apprendre... Merci de votre aide
0
Nikoui Messages postés 794 Date d'inscription vendredi 24 septembre 2004 Statut Membre Dernière intervention 19 août 2008 13
9 janv. 2008 à 11:52
[auteur/M000004965/201720.aspx M000004965]
: L'auteur du post n'a jamais parlé de base de données sous Excel, mais de saisie de données + calculs complexes + graphiques -> a priori exactement ce pour quoi est fait un tableur comme Excel.

[auteur/FARRAKIS/435553.aspx farrakis] : Pour ma part, je ne connais pas assez la partie "Office" pour répondre, mais s'il ne s'agit "que" de calculs, j'aurai tendance à rester en VBA. Par contre, tu parles de réutiliser des classes objets issues de VB .Net -> je ne sais pas du tout si cela pose problème depuis VBA.

<hr size="2" width="100%" />
Working as designed
www.nikoui.fr
0
farrakis Messages postés 32 Date d'inscription vendredi 28 janvier 2005 Statut Membre Dernière intervention 12 mai 2013
9 janv. 2008 à 18:01
Merci de vos réponses..



Pour clarifier la chose, je n'utilise absolument pas Excel comme une base de données, mais bien uniquement pour faire de l'entree/sortie de données (en l'occurence profils en travers, valeur de débit ou de cote d'eau, etc...).

je suis preneur de tout autre avis..
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
10 janv. 2008 à 00:08
Ne connaissant pas l'avenir, j'opterais pour tout faire sous Excel 2003. Quitte à tout refaire dans un an ou deux.
Si ta compagnie pense aller vers 2007 bientôt, alors là, ça peut faire être différent...

Il faut aussi considérer les utilisateurs. Qu'utilisent-ils comme version(s)
En cas de versions multiples, je pense que le mieux est de développer sous les versions les plus anciennes.

Depuis que je développe (sous Excel, entre autres), j'ai dû modifier mes programmes plusieurs fois '95 à '97 à 2000 à 2003... Mais bon, c'est ça le métier de développeur... Il faut savoir s'adapter au fur et à mesure.

Bonne chance !

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
Rejoignez-nous