pathology
Se connecter avec
S'enregistrer | Connectez-vous
Votre question
sticky

Vous vous lancez dans le développement de macro Excel ? Lisez ceci !

Tags :
  • bureautique
  • Programmation
  • VB
Dernière réponse : dans Programmation
Partagez
a b L Programmation
7 Mars 2006 17:17:49

Vous vous lancez dans le développement de macros Excel ? Lisez ceci !

Présentation

Microsoft Excel est un tableur.

Il présente des calculs dans de petites cases. La taille de ces cases est inversement proportionnelle à la puissance des formules que l'on peut y associer. Calculs bureautiques, mathématiques, financiers, comptables, statistiques, etc., rien ne semble rebuter Excel !

Un peu d'histoire

Pour la petite histoire, alors que l'on ne jurait autrefois que par le tableur 123 de Lotus - en mode texte, ce fut le succès indéniable d'Excel, premier logiciel bureautique graphique, qui fit entrer un certain système de fenêtres dans l'entreprise. On connait la suite.

Les fonctions disponibles pour les formules, bien que couvrant de larges domaines, étaient finalement assez limitées. Un système de macro-commandes a donc été implémenté dans Excel pour permettre la création de fonctions spécifiques, d'abord dans un langage particulier. D'autres logiciels bureautiques étaient doté de langages similaires. Puis VBA a remplacé et unifié tous les langages de macros des différentes applications Microsoft, jusqu'à aujourd'hui.

L'avenir s'appelle sans doute .NET.

Développer sous Excel

Mais le formidable succès d'Excel, les capacités infinies que lui confère VBA, occultent le fait qu'on utilise souvent Excel à fort mauvais escient : Présentation, mise en page, base de données. Et les questions récurrentes sur ce forum en sont la meilleure preuve. La première question à se poser avant de développer une application (sic) sous Excel, est "Excel est-il l'outil le plus adapté ?"

Il n'en reste pas moins qu'un certain nombre de questions sont tout à fait légitimes. Elles sont souvent formulées de la part de personnes utilisant Excel dans un cadre purement bureautique, et ayant très peu d'intérêt pour la programmation. Pour ces personnes, je propose une méthode pour réussir à créer ces macros simplement.

La première chose à faire est de vérifier que l'aide en ligne de VBA est installée.
La seconde est d'utiliser systématiquement l'Option Explicit. (Voir l'aide pour savoir pourquoi.)

1°) Découper la fonctionnalité voulue en étapes simples.
2°) Utiliser l'enregistreur de macros pour enregister chacune de ces étapes simples dans une macro à part.
3°) Utiliser beaucoup de jugeote, l'aide en ligne à outrance et faire le plus de tests possibles.
4°) En dernier recours, proposer sur PPC un exemple épuré et une explication claire du problème.

Exemples

J'enregistre. Je clique sur la case D24, et je tape le texte qsdfqsdfqdsf. J'arrête l'enregistreur.
Dans le Visual Basic Editor, je trouve la macro créée :
  1. Range("D24").Select
  2. ActiveCell.FormulaR1C1 = "qsdfqsdfqdsf"

Je me place sur chacun des mots et j'appuye sur F1. J'apprends tout ce qu'il y a à savoir sur chaque objet et/ou méthode.
J'en conclus que le code suivant est suffisant :
  1. Range("D24").Formula = "qsdfqsdfqdsf"


Je sélectionne la colonne D, et je trie cette colonne. La macro créée :
  1. Columns("D:D").Select
  2. Selection.Sort Key1:=Range("D1"), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Pourtant, après la lecture du manuel (F1), j'en conclus que
  1. Columns("D:D").Sort Key1:=Range("D1")
marche très bien. Les options supplémentaires ne sont pas obligatoires, sont positionnées sur leurs valeurs par défaut et surchargeraient le code, le rendant illisible.

Je sais maintenant écrire dans une cellule et trier une colonne, juste en essayant et en lisant l'aide. Toutes les autres questions concernant l'art et la manière de faire sous Excel peuvent être apprises de cette manière. L'autre solution serait de suivre une formation, d'apprendre par coeur un gros bouquin.

Il reste maintenant à maîtriser le langage VB lui-même. Boucle, test, condition, gestion des fichiers, accès aux APIs. Avec quelques briques de base dont on cherchera la signification dans l'aide, on peut règler pas mal de problèmes : For..Next, Do..Loop, If..Then..Else, Select Case. C'est là que l'art de la programmation intervient, et que la portée de ce topic est atteinte. N'importe quel cours de programmation de niveau débutant, basé sur de l'algo ou un autre langage, tel le C ou le Pascal, peut être transposé en VB et donc un VBA.

Si un point obscurs persiste, si la transposition d'un langage autre au VB pose problème, ne pas hésiter à consulter le forum et à poster sa question.


Par ailleurs, il existe sur la toile de nombreuses ressources pour vous aider, tant Excel et VBA sont populaires.

Ici, un topic pour rassembler les astuces sur Excel/VBA des membres de PPC.
Là, un topic pour présenter le débogage sous l'éditeur VB d'Excel.

Je vous souhaite à tous de bons développements sur votre tableur.

Autres pages sur : lancez developpement macro excel lisez

Contenus similaires
3 Décembre 2007 22:02:13

Moi je ne peux que conseiller de se lancer dans le développement des macros Excel ...

Il faut savoir que Excel est "LE" logiciel de l'entreprise (peut-être encore plus important que Word ...) et qu'il y a beaucoup de boulots où on recherche cette compétence (qui pour le grand public restera toujours du "chinois" )
22 Juillet 2010 09:39:03

Ne pas oublier MULTIPLAN premier tableur MICROSOFT qui déjà en 1982 date de sa sortie reprenait environ 80 % des fonctions standard d'EXCEL
23 Février 2011 21:10:27

Oui c'est vrai !

Mais il y a eu des gros changement dans le type de code pour les macros

sans compter que cetaines platformes n'ont plus été supporter !