Voilà. Vous pouvez respirer, la macro est terminée ! Nous allons maintenant passer à l'exécution de la macro :
Et voilà : Si tout s'est bien passé, vous devriez voir apparaître en B2 Il y a du soleil
Si vous avez eu un problème quelconque, je vous conseille de quitter Excel, ne pas sauvegarder votre document, revenir dans Excel, et recommencer intégralement le tout depuis le point 1 de l'étape 1.
Si tout s'est bien passé, passons à l'étape 3, à quoi cette macro ressemble-t-elle ?
'
ActiveCell.FormulaR1C1 = "Il y a du soleil"
End Sub
Voilà à quoi ressemble votre macro BeauTemps : Toutes les macros commencent par Sub NomDeLaMacro, et se terminent par End Sub. C'est une règle. Les lignes qui commencent par une apostrophe (') en vert sont des commentaires, ce sont simplement des lignes qui sont ignorées par Visual Basic. Et pour écrire du texte dans une cellule, vous le voyez vous même : C'est ActiveCell.FormulaR1C1 = "Un texte quelconque"
Revenez maintenant dans Excel : Fichier/Fermer et retourner à Microsoft Excel
Maintenant que vous êtes arrivés ici, passons à l'étape suivante qui consite à modifier une macro existante
Admettons que notre macro BeauTemps ne doit pas afficher Il y a du soleil, mais plutôt Le ciel est bleu. C'est très simple :
Si tout s'est bien passé, vous devriez voir Le ciel est bleu dans la cellule C3.
Continuons notre petit bonhomme de chemin, et créons une macro de toutes pièces nous même
Imaginons une macro qui s'appelle Ski, qui qui affiche J'aime les sports d'hiver
End Sub
Maintenant, dans cette procédure, ajoutez la ligne de commande suivante pour écrire J'aime les sports d'hiver : activeCell.FormulaR1C1 = "J'aime les sports d'hiver"
Voici le résultat que vous
devez obtenir :
Sub BeauTemps()
'
' BeauTemps Macro
' Macro enregistrée le 16.12.2000 par Michel
'
'
ActiveCell.FormulaR1C1 = "Le ciel est bleu"
End Sub
Sub Ski()
ActiveCell.FormulaR1C1 = "J'aime les sports d'hiver"
End Sub
Nous allons tester cette macro : Cliquez dans une cellule quelconque encore vide (D4 par exemple), et faites Outils/Macros, et cliquez 2 fois sur Ski. Normalement, vous devriez voir apparaître dans la cellule D4 J'aime les sports d'hiver
Vous voilà maintenant initié au grand monde de la parogrammation visual basic pour Excel.
Nous allons compléter le tout par un petit exercice pratique : Nous allons créer une macro toute simple qui efface toute la feuille de calcul, et qui se positionne sur la cellule A1, comme on effacerait un tableau noir. Avant de commencer cette macro, il faut identifier les étapes.
D'abord, "Salissez" un peu votre feuille de calcul : Ecrivez du texte dans certaines cellules, coloriez en d'autres en différentes couleurs... Attention donc, je vous rappelle que pour effacer la coloration d'une cellule, la touche DELETE ne fonctionne pas, il faut faire Edition/Effacer/Tout.
Bien. Maintenant que votre feuille est "Salie", faisons une répétition générale de ce que doit faire la macro :
Normalement, vous devriez être dans la cellule A1 d'une feuille immaculée... Resalissez cette pauvre feuille (Ecrivez du texte et coloriez quelques cellules). Après cela, nous allons faire la même chose que tout à l'heure, mais en enregistrant la macro qui va faire toutes ces étapes. C'est parti :
Voilà. La macro est fin prête. Resalissez encore une fois la feuille (vous commencez à avoir l'habitude), et faites Outils/Macros, et cliquez 2 fois sur EffacerTout... Si tout se passe comme prévu, la feuille doit s'effacer automatiquement, et vous devriez vous retrouver sur A1...
Je pense que vous savez comment faire pour aller visualiser cette macro qui doit ressembler exactement à ceci :
Sub EffacerTout()
'
' EffacerTout Macro
' Macro enregistrée le 16.12.2000 par Michel
'
'
Cells.Select
Selection.Clear
Range("A1").Select
End Sub
Aménageons-là : Supprimez les commentaires (qui ne nous servent pas à grand chose... L'enregistreur de macros fait parfois de l'excès de zèle):
Sub EffacerTout()
Cells.Select
Selection.Clear
Range("A1").Select
End Sub
Et indentez le code. Indenter signifie simplement mettre tout ce qui est entre Sub EffacerTout et End Sub en retrait, pour faciliter la lisibilité. Pour l'instant, vous pouvez ne pas comprendre l'utilité, mais par la suite, vous verrez que c'est très pratique :
Sub EffacerTout()
Cells.Select
Selection.Clear
Range("A1").Select
End Sub
Et voilà... Sans être des pros de VBA, vous pouvez déjà
deviner pas mal de choses. Allez, je ne vous donne pas la solution, à
votre avis, quel signifie Cells.Select ? et Selection.Clear ? Et Range("A1").Select
? C'est facile, n'est ce pas !...