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

  • Auteur de la discussion zeb
  • Date de début
Statut
N'est pas ouverte pour d'autres réponses.

zeb

Modérateur
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 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 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 :
Code:
Range("D24").Select
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 :
Code:
Range("D24").Formula = "qsdfqsdfqdsf"

Je sélectionne la colonne D, et je trie cette colonne. La macro créée :
Code:
Columns("D:D").Select
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
Code:
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.




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

vladvad

Nouveau membre
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" )
 

zeb

Modérateur
Voici un tutoriel pour utilisateur avancé : par J-M RABILLOUD.

____________________
Proposé par
 

micheldu37

Nouveau membre
Ne pas oublier MULTIPLAN premier tableur MICROSOFT qui déjà en 1982 date de sa sortie reprenait environ 80 % des fonctions standard d'EXCEL
 

Thore

Grand Maître
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 !
 
Statut
N'est pas ouverte pour d'autres réponses.
Derniers messages publiés
Statistiques globales
Discussions
730 124
Messages
6 717 732
Membres
1 586 356
Dernier membre
TommyStam
Partager cette page
Haut