Cours Excel Avance

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 30

Cours EXCEL

1
EXCEL, le logiciel de calcul
Microsoft Excel est un logiciel tableur de la suite bureautique Microsoft Office, développée et
distribuée par l'éditeur Microsoft.
Il est destiné à fonctionner sur les plates-formes Microsoft Windows ou Mac OS X. Le
logiciel Excel intègre des fonctions de calcul numérique, de représentation graphique,
d'analyse de données (notamment de tableau croisé dynamique) et de programmation, laquelle
utilise les macros écrites dans le langage VBA (Visual Basic for Applications) qui est
commun aux autres logiciels de Microsoft Office. Depuis sa création au début des années
1980 mais surtout à partir de sa version 5 (en 1993), Excel a connu un grand succès tant
auprès du public que des entreprises prenant une position très majoritaires face aux logiciels
concurrents, tel Lotus 1-2-3. Chaque fichier correspond à un classeur lequel contient
des feuilles de calculs organisées. Chaque feuille correspond à un tableau de lignes et de
colonnes pouvant contenir des valeurs (numériques ou non) ainsi que des formules permettant
les calculs. Suivant les versions, les classeurs peuvent aussi inclure les éléments de
programmation que sont les macros. La première version d'Excel est sortie en 1985.

Microsoft Office Excel

Excel permet de faire des tableaux et d'automatiser leurs calculs. C'est un logiciel de calcul très
puissant. On dit que c'est un tableur. On distingue 2 types d'utilisation :

L'utiliation simple : on peut s'en servir pour créer un petit tableau de planning par exemple, ou
faire des calculs simples, stocker des informations diverses (par exemple établir la liste des
inscrits d'une association). On peut trier et filtrer les tableaux pour retrouver, comparer
facilement une information.

L'utilisation mathématique : des entreprises s'en servent pour des gros calculs de stock, de coûts,
de taxes ... Un service comptabilité par exemple peut s'en servir pour faire de gros calculs
automatisés et générer des graphiques détaillés.

2
CALCULS sous EXCEL
1) - Opérateurs de calcul dans les formules

REFERENCES RELATIVES
Lors de la copie d'une formule faisant référence à une ligne ou/et une colonne, vers un autre
endroit, le numéro de ligne ou/et de colonne sera automatiquement incrémenté du nombre de
ligne ou/et de colonne distante de la cellule copiée.

3
Si nous copions la formule de la cellule A9, dans les colonnes B9 et C9, c'est-à-dire sur la même
ligne la valeur de la colonne seule, sera incrémentée de A à B dans la cellule B9 et de A à C
dans la cellule C9. Par contre si nous copions cette même formule de la cellule A9 dans les
colonnes B11 et C11, les valeurs de la colonne et de la ligne seront incrémentées, soit : A2:A7
deviendra B4:B9 dans la cellule B11 et C4:C9 dans la cellule C11.

Nous avons dans ce cas des Références relatives, car ces références sont toujours incrémentées.

Si nous modifions la formule contenue dans la cellule A9 en =SOMME (A$2:A$7), et que


nous copions cette formule de la cellule A9, dans les colonnes B11 et C11, la valeur de la
colonne sera incrémentée, mais en aucun cas la valeur de la ligne car celle-ci est précédée du
signe $, donc bloquée. La formule deviendra B$2:B$7 dans la cellule B11 et C$2:C$7 dans la
cellule C11, ce qui est juste.
Par contre si nous voulons copier la formule de la cellule A9 en C13, nous n'obtenons pas le
résultat souhaité, car nous totalisons les valeurs de la colonne C2 à C7 alors que nous voulions
le résultat de la cellule A2 à A7.

4
Cela signifie que nous devons bloquer également la valeur de la colonne dans la cellule A9 pour
avoir le résultat espéré. Pour effectuer ce blocage il suffit simplement de mettre le signe $ devant
la valeur des colonnes en A9. Cette fois le résultat de notre copie est satisfaisante (voir ci-
dessous).

Nous avons maintenant des Références Absolues, car ces références ne seront jamais
incrémentées, grâce au signe $ lorsqu'il précède la valeur de la colonne et de la ligne.

FONCTIONS SOUVENT UTILISÉES


1) - Fonction SOMME()
Cette fonction, est utile, non seulement pour additionner des valeurs, mais également pour
soustraire un ensemble de valeur à d'autres valeurs. Ses syntaxes sont :
SOMME(Nombre1:NombreX) dans ce cas
nous pouvons la traduire en SOMME du
Nombre1 JUSQU'À(:) NombreX

5
SOMME(Nombre1;NombreX) dans ce cas
nous pouvons la traduire en SOMME du
Nombre1 ET(;) NombreX

Nous pouvons également combiner ces deux


syntaxes pour faire la somme d'une zone et
d'une valeur avec
SOMME(Nombre1:NombreX;Nombre Y)
que nous pouvons traduire par SOMME du
Nombre1 JUSQU'À(:) NombreX ET(;)
NombreY

Vous pouvez effectuer la différence entre


deux zones de valeurs en combinant deux
fois la fonction SOMME comme montré sur
l'image ci-contre

2) - Fonction SI()
Cette fonction est très utile, si nous souhaitons avoir un tableau qui ne contient pas trop de Zéro
au niveau de certaines formules, lorsque les cellules faisant parties de ces formules n'ont pas de
valeurs.
Cela s'avère même indispensable, lorsque nous effectuons une division avec une cellule vide,
car dans ce cas nous recevons une erreur dans la formule du genre #DIV/0! C'est normal car la
division par 0 n'est pas possible.
La syntaxe de cette fonction est : SI(Test_logique;Valeur si test VRAI;Valeur si test FAUX)
Dans l'exemple ci-dessous, nous avons dans la cellule B10 une formule avec la fonction SI().
Cette dernière nous évite d'avoir la valeur Zéro dans cette cellule mais également dans les
cellules C10 à H10. Pour cela nous testons, SI la valeur contenue dans la cellule B4 est vide
(""). Si le test est vérifié nous mettrons dans la cellule B10, rien c'est-à-dire (""). Par contre si
la cellule B4 n'est pas vide, nous calculons alors la différence entre les sommes entrées et la
somme de sommes débitées soit SOMME(B3:B5)- SOMME(B6:B9). Pour le reste, comme
nous allons recopier cette formule dans les colonnes suivantes, il est préférable de bloquer le
numéro de ligne en mettant devant ces numéros de ligne le signe $ afin d'éviter que ces lignes
ne soient incrémentées (augmentées).

6
3) Fonction RECHERCHEV

La fonction Excel RECHERCHEV recherche une valeur dans la première colonne d'un tableau
puis renvoie la valeur d'une cellule qui se situe sur la même ligne que la valeur recherchée.

Utilisation :

=RECHERCHEV(recherche; tableau; colonne; type)

Exemple : L'objectif ici est de rechercher des informations en fonction du numéro de dossier.
L'utilisateur doit pouvoir entrer le numéro de dossier dans la partie verte et voir ensuite le
résultat de sa recherche dans la partie bleue :
Dans "Valeur_cherchée", entrez la valeur à rechercher dans la première colonne du tableau
(ici, le numéro de dossier).
Dans "Table_matrice", entrez la plage de cellules qui contient les données du le tableau.
Dans "No_index_col", entrez le numéro de colonne du tableau qui contient le résultat à
renvoyer (ici, la colonne 2 pour la ville).
Dans "Valeur_proche", entrez FAUX pour rechercher la valeur exacte de "Valeur_cherchée"
(dans le doute, entrez FAUX pour éviter les surprises). Vous pouvez aussi choisir de
rechercher la valeur la plus proche de "Valeur_cherchée" en entrant VRAI (ou en laissant
vide).

7
4) La fonction SOMME.SI
La fonction Excel SOMME.SI permet d'effectuer une somme en tenant compte d'un critère.
Utilisation :
=SOMME.SI(plage; critère)
ou (si la plage pour la somme est différente de celle du critère)
=SOMME.SI(plage; critère; plage_pour_somme)
Exemple : L'objectif ici est de calculer le total des montants impayés.
Pour différencier les montants payés et impayés, il faudra vérifier si la date de paiement est
renseignée ou non.

Pour ce faire, cliquez sur la cellule C10 et sélectionnez la fonction SOMME.SI :

8
Dans "Plage", entrez la plage de données dans laquelle le critère sera vérifié (il s'agit ici des
dates de paiement).
Dans "Critère", entrez le critère "" (pour indiquer que la date de paiement doit être vide).
Dans "Somme_plage", entrez la plage de données qui sera utilisée pour le calcul de la somme
(il s'agit ici des montants).

9
DATE et HEURE
1) - Entrez la Date du Jour sans la saisir
Pour avoir directement la date du jour dans
une cellule, appuyez en même temps sur la
touche "Ctrl" et la touche ";" (Point-
virgule).
Pour avoir directement l'heure actuelle dans
une cellule, appuyez en même temps sur la
touche "Ctrl" et la touche ":" (Deux-points).

2) - Obtenir la valeur numérique d'une date

Sélectionnez la cellule dont on veut connaître la valeur numérique de la date, puis cliquez avec
un clic droit de la souris sur cette cellule, choisir dans le menu contextuel "Format de cellule".
Sélectionnez l'onglet "Nombre" et dans la zone "Catégorie" prendre la valeur Standard et
OK pour finir. Nous obtenons alors la valeur numérique correspondante à la date du
01/02/2006, soit 38749.
3) - Différent format d'affichage d'une date
Cliquez sur "Format", puis "Cellule"; choisir dans la zone "Catégorie" la valeur
Personnalisée et entrez dans la zone Type les paramètres voulus selon la signification des
codes suivants

10
Pour personnaliser le format d'une date, vous devez saisir la date dans une cellule (Ex:
19/01/2006 dans la cellule A1) puis cliquer sur "Format", puis "Cellule…".

Dans la boite de dialogue ci-dessus, il convient de cliquer sur l'onglet "Nombre", puis dans la
zone "Catégorie", cliquez sur "Personnalisée". Dans la zone "Type", vous devez saisir le
type de format que vous désirez. Dans notre exemple nous avons choisi "jjjj jj mmmm aaaa",
ce qui nous donnera: le jour, la date, le mois en texte complet et l'année en entier.

4) - Nombre de jours entre deux dates

11
Mettre dans la cellule adéquate
la formule =Date_aujourd'hui
- Date_naissance soit par
exemple 17/02/2011 -
20/10/1946, nous obtenons
23496 Jours bien entendu
après avoir modifié le format
de la cellule B4, comme
indiquée au chapitre
précédent, par "Format",
"Nombre" et "Standard".

5) - Date futur ou passée à partir d'une date donnée


Pour obtenir une date futur,
entrez dans la cellule B3, la
formule "=B1 + B2", soit dans
notre exemple 01/01/2006 + 54
Jours = 24/02/2006.
Pour obtenir une date passée,
entrez dans la cellule C3, la
formule "=C1 - C2", soit dans
notre exemple 01/01/2006 - 25
Jours = 07/12/2005.
6) - Création d'une série de date
Après avoir sélectionné la cellule de départ, cliquez avec le bouton Gauche de la souris sur le
coté en bas à droite de la cellule et étendre autant que nécessaire. Incrémentation de la date,
jour par jour.

12
AUTRE SOLUTION
Après avoir
sélectionné la cellule
de départ, cliquez avec
le bouton droit de la
souris sur le coté en
bas à droite de la
cellule et étendre.
Relâcher la souris et
une fenêtre de
dialogue apparaît
alors, où nous
pouvons choisir le
type d'incrémentation.
Choisissons par
exemple
"Incrémenter les
Mois". En continuant
on obtient une
incrémentation par
Mois.

DIVERSES APPLICATIONS sur la DATE et l'HEURE


1) - Diverses formules relatives aux fonctions Date & Heure

2) - Trouver le jour correspondant à sa date de naissance


Pour obtenir ce résultat, vous devez reproduire l'exemple ci-dessous avec Excel, de la façon
suivante. Dans la cellule A4, vous devez mettre la formule suivante : =STXT(B4;1;10),

13
laquelle transformera sous forme de texte la date de votre naissance que vous mentionnerez
dans la cellule B4.

Dans la cellule B6, vous devez saisir, sans aucune erreur, la formule
=SI(B4="";"";SI(JOURSEM(A4;1)=1;"Dimanche";SI(JOURSEM(A4;1)=2;"Lundi";SI(
JOURSEM(A4;1)=3;"Mardi";SI(JOURSEM(A4;1)=4;"Mercredi";SI(JOURSEM(A4;1)=
5;"Jeudi";SI(JOURSEM( A4;1)=6;"Vendredi";"Samedi"))))))).
Vous devez voir apparaître dans la cellule B6, le jour correspondant à la date de votre
naissance.
3) - Former une nouvelle date à partir d'une date de base
Imaginons que nous souhaitions, à partir de la date du jour créer une nouvelle date future ou
passée afin d'effectuer à partir de cette nouvelle date des calculs d'intérêts par exemple. Nous
allons tout d'abord créer une Date future en saisissant dans la cellule voulue (A6) la formule
ayant la syntaxe montrée sur l'image ci-après:

Nous aurons comme résultat la date du 02/05/2012. Nous allons à présent créer une Date
passée en saisissant dans la cellule voulue (A6) la formule ayant la syntaxe montrée sur
l'image ci-après:

Nous aurons comme résultat la date du 10/04/2016.

14
LES TABLEAUX CROISES DYNAMIQUES
Un tableau croisé dynamique permet de combiner et de comparer des données, pour mieux les analyser.
Croisé : toute donnée dépend des étiquettes de sa ligne et de sa colonne.
Dynamique : un tableau croisé dynamique est évolutif, facilement modifiable.
Il permet d’examiner les données sous des angles différents. Il peut être complété par un graphique
croisé dynamique représentant les données du tableau. Principes et procédures qui lui sont applicables,
sont similaires à ceux du tableau.

1. CREATION D’UN TABLEAU CROISE DYNAMIQUE


Source de données

La création d’un tableau croisé dynamique s’effectue à partir de colonnes de données (voir
exemple ci-après). Ces données sources doivent être de même nature au sein d’une même
colonne. Les colonnes ne doivent contenir ni filtre, ni sous-totaux. La première ligne de chaque
colonne doit contenir une étiquette, qui correspondra à un nom de champ dans le tableau croisé
dynamique.
Création du tableau

Pour créer un tableau croisé dynamique, sélectionnez d’abord une cellule quelconque de la plage
des colonnes de données.
Puis affichez la fenêtre « Créer un tableau croisé dynamique » : sous l’onglet « Insertion », dans le
groupe « Tableaux », activez le bouton « TablCroiséDynamique »
Dans cette fenêtre, indiquez :
- L’emplacement des données à analyser : vérifiez la plage de données, modifiez-la si nécessaire
(cliquez dans la zone, puis sélectionnez la plage des données à analyser).
- L’emplacement où sera créé le tableau croisé dynamique : cliquez dans la zone, puis
sélectionnez la première cellule de l’emplacement prévu pour le tableau.

Validez. Les « Outils de tableau croisé dynamique » se répartissent sur les deux onglets « Options
» et « Création ». Sur la feuille, apparaissent un espace réservé au tableau croisé dynamique, ainsi
que le volet « Liste de champs de tableau croisé dynamique » sur le côté droit.
Volet « Liste de champs de tableau croisé dynamique »

Le menu déroulant situé sur la barre de titre du volet propose : « Déplacer », « Taille » et «
Fermer ». Après avoir déplacé ou redimensionné le volet, terminez en appuyant sur la touche
Echap (Esc) pour que le curseur reprenne sa forme normale. Ce volet « Liste de champs »
s’affiche dès que le tableau est sélectionné.
Si vous le fermez, pour l’afficher à nouveau : sélectionnez le tableau, puis sous l’onglet « Options
», dans le groupe « Afficher », activez le bouton « Liste des champs ». Sous sa barre de titre, un
bouton avec menu déroulant permet de disposer différemment les zones du volet. Par défaut, le
volet « Liste de champs de tableau croisé dynamique » affiche :
- Dans sa partie supérieure, la liste des champs de la source de données.

Dans l’exemple « Résultats concours » qui suit, il y a quatre champs : Centre, Année, Nbre
candidats et Nbre reçus.
- Dans sa partie inférieure, quatre zones : « Filtre du rapport » (i.e « Trier et filtrer des données), «
Etiquettes de colonnes », « Etiquettes de lignes » et « Valeurs ».

15
La constitution du tableau croisé dynamique dépend des champs qui ont été déposés dans ces trois
dernières zones, situées en bas du volet. Pour déposer un champ, cliquez-glissez sur son nom
présent (et case cochée) dans la « Liste de champs » jusque dans la zone souhaitée, dans la partie
inférieure du volet. Les valeurs concernant ce champ apparaissent dans le tableau croisé
dynamique.
Fonctions de synthèse

Une fois les champs déposés, il y a ajout automatique d’une ligne « Total général » et d’une
colonne « Total général », correspondant à la fonction de synthèse « Somme ». « Somme » peut
être remplacée par une autre fonction, en utilisant la fenêtre « Paramètres des champs de valeurs
». Pour afficher cette fenêtre : dans la zone « Valeurs » du volet, cliquez sur le champ « Somme
de… » (ou bien : clic droit sur le nom ou sur une valeur du champ) > « Paramètres des champs de
valeurs ». Choisissez une nouvelle fonction de synthèse, et attribuez-lui le nom souhaité.


Exemple

Données sources : elles sont ici sur la plage A3:D12.


Création du tableau croisé dynamique 

- Sélectionnez une cellule quelconque de la plage A3:D12, puis affichez la fenêtre « Créer un
tableau croisé dynamique » : sous l’onglet « Insertion », dans le groupe « Tableaux », activez le
bouton « TablCroiséDynamique»

- La plage A3:D12 des données sources a été sélectionnée par Excel (avec précision de la feuille
de la plage, et références absolues).
Indiquez l’emplacement du tableau croisé dynamique (nouvelle feuille ou feuille existante) :
cliquez dans la zone de saisie, et sélectionnez la première cellule de l’emplacement prévu pour le
tableau.
- Dépôt des champs (Cochez la case d’un champ, avant d’effectuer un cliqué-glissé sur ce champ)

Par cliqué-glissé, déposez le champ « Centre » de la « Liste de champs » jusque dans la zone «
Etiquettes de colonnes », dans la partie inférieure du volet. Déposez de même le champ « Année »

16
dans la zone « Etiquettes de lignes ». Déposez enfin le champ « Nbre reçus » dans la zone «
Valeurs ». On obtient le tableau croisé dynamique suivant :


Changement de la fonction de synthèse 
La dernière ligne contient les sous-totaux Somme du nombre de reçus par centre sur 3 ans, et elle
est terminée par le total final relatif à chaque centre. La dernière colonne totalise le nombre de
reçus par année, et elle est terminée par le total final pour les trois centres. Remplacez les totaux
de Somme par des totaux de Moyenne :
- Affichez la fenêtre « Paramètres des champs de valeurs » : dans la zone « Valeurs » en bas du
volet « Liste de champs », cliquez sur le champ « Somme de Nbre reçus » > « Paramètres des
champs de valeurs ».
- Sélectionnez la fonction « Moyenne » et attribuez le nom « Nbre moyen de reçus ». Validez.

On obtient le nouveau tableau croisé dynamique :

17
2. GESTION D’UN TABLEAU CROISE DYNAMIQUE
valeur
Double-cliquer sur le résultat d’une fonction de synthèse permet de connaître les détails du calcul
de cette valeur, les cellules concernées par le calcul effectué. L’affichage du tableau des détails
s’effectue sur une nouvelle feuille.
Exemple Dans le dernier tableau croisé dynamique, double-cliquez sur la cellule contenant la
moyenne sur les trois années des nombres de candidats reçus à Dakar (valeur 13). Une nouvelle
feuille est créée sur lequel est affiché le tableau suivant :

filtrer des données


Pour trier ou filtrer des données, utilisez les commandes du menu déroulant de la cellule «
Etiquettes de lignes » ou de la cellule « Etiquettes de colonnes ». Après filtrage, pour afficher à
nouveau toutes les données, ouvrez le menu déroulant de l’étiquette concernée, et cliquez sur «
Effacer le filtre ». On peut également utiliser la zone « Filtre du rapport » du volet « Liste de champs
». Par cliqué-glissé, déposez-y le champ dont vous souhaitez filtrer des valeurs (ce champ disparaît
alors de la zone du volet dans laquelle il était. On peut l’y remettre par cliqué-glissé). Le champ
s’affiche au-dessus du tableau croisé dynamique. A sa droite, un menu déroulant permet de
sélectionner la valeur, également de cocher les cases des valeurs à garder.

Des segments ou « slicers » peuvent être ajoutés au tableau croisé dynamique. Simples à créer (et à
supprimer), ils facilitent le filtrage des données. Pour insérer des segments sur le tableau :
- Sélectionnez une cellule quelconque du tableau croisé dynamique.

18
- Affichez la fenêtre « Insérer des segments » : sous l’onglet « Options », dans le groupe « Trier et
filtrer », activez le bouton « Insérer un segment ».
- Indiquez les champs sur lesquels vous souhaitez filtrer des données. Validez.
Exemple
Cliquez sur le tableau croisé dynamique relatif à l’exemple précédent « Résultats concours», pour
sélectionner ce tableau, puis affichez la fenêtre « Insérer des segments ». Dans cette fenêtre, cochez
les cases Centre et Année. Validez.
Sur le segment Année, choisissez l’année 2008. Le tableau n’affiche plus que les résultats
concernant la seule année 2008. La feuille affiche les deux segments Centre et Année.

Pour sélectionner plusieurs valeurs d’un segment, appuyez sur la touche Ctrl en cliquant sur les
valeurs. Pour modifier l’apparence d’un segment (style, nombre de colonnes, titre…), sélectionnez-
le, puis utilisez les commandes de l’onglet « Options » des « Outils Segment » (qui ne comprennent
que cet onglet). Un segment peut agir sur plusieurs tableaux croisés dynamiques. Pour associer un
segment à plusieurs tableaux : après sélection, sous l’onglet « Options », dans le groupe « Segment
», activez le bouton « Connexion de tableau croisé dynamique ». Dans la fenêtre de même nom,

19
sélectionnez les tableaux à associer au segment. Validez. Pour supprimer un segment, sélectionnez-
le puis appuyez sur la touche Suppr.

Cliquez-glissez sur le champ à ajouter de la zone « Liste de champs » jusque dans la zone souhaitée
(« Valeurs », « Etiquettes de lignes » ou « Etiquettes de colonnes »). L’ajout d’un champ de données
par exemple entraîne l’affichage de ce champ à côté du champ de lignes. Par défaut, la fonction de
synthèse est Somme. Une autre fonction peut être choisie (cf. § 1 « Fonctions de synthèse »).
Exemple : cliquez-glissez sur le champ « Nbre candidats » de la « Liste de champs » jusque dans la
zone « Valeurs ». Pour revenir au tableau précédent, décochez la case « Nbre candidats » de la zone
« Liste de champs ».

Décochez la case du champ dans la « Liste de champs de tableau croisé dynamique ».

Pour actualiser le tableau croisé dynamique quand il y a eu modifications de ses données sources :
sous l’onglet « Options », dans le groupe « Données », cliquez sur le bouton « Actualiser ».
3. GRAPHIQUE CROISE DYNAMIQUE

La procédure de création est similaire à celle d’un tableau croisé dynamique. Après validation, le
ruban affiche des «Outils de graphique croisé dynamique», répartis sur les quatre onglets :
«Création», « Disposition », « Mise en forme » et « Analyse » Sur l’écran, s’affichent :
- La « Liste de champs de tableau croisé dynamique »,
- Le « Volet Filtre de graphique croisé dynamique »,
- Les deux emplacements réservés l’un au graphique, l’autre au tableau.
Quand on crée un graphique croisé dynamique, Excel crée automatiquement le tableau croisé
dynamique correspondant, sur la même feuille que le graphique. Pour créer le graphique croisé
dynamique, on utilise le même volet « Liste de champs » que précédemment. On procède également
par cliqué-glissé des champs de la zone supérieure du volet jusque dans l’une des zones de dépôt :
« Champs Axe », « Champs Légende » ou « Valeurs ».
Exemple
Créez le graphique croisé dynamique à partir de la même plage de données « Résultats concours »
que précédemment « Résultats concours ».

: sous l’onglet « Insertion », dans le groupe « Tableaux », ouvrez le menu déroulant du bouton «
TablCroiséDynamique » > Graphique croisé dynamique.

20
Renseignez la fenêtre (source de données, emplacement du graphique), puis validez.
-glissé (comme pour la création d’un tableau croisé dynamique) :
- Le champ « Année » dans la zone « Champs Axe »,
- Le champ « Centre » dans la zone « Champs Légende »
- Le champ « Nbre reçus » dans la zone « Valeurs ».

Les fonctionnalités des graphiques classiques s’appliquent aux graphiques croisés dynamiques. Les
fonctionnalités des tableaux croisés dynamiques étudiées précédemment, s’appliquent aux
graphiques croisés dynamiques, excepté la première fonctionnalité « Détails du calcul d’une valeur
». Il convient de revenir au tableau croisé dynamique pour en disposer.

21
22
VBA Excel - Programmation sous Excel
Le VBA est un langage de programmation orienté objets. VBA signifie Visual Basic For
Applications. Ici l'application est Excel. C'est pourquoi il existe aussi le VBA Word,
Powerpoint ou encore Access. Le langage de programmation est le Visual Basic. Sa syntaxe est
héritée de celle du VB.Net pour les plateformes DotNet. Les méthodes du VBA Excel et ses
objets sont centrés autour des objets d'Excel à manipuler comme des cellules ou des plages ainsi
que des lignes et des colonnes de tableau. Retenez bien ce mot Objet car c'est le fondement
même d'un langage orienté Objets. Un Objet possède des propriétés et des méthodes.
Nous allons donc commencer par afficher le ruban Développeur.
-Démarrer avec un nouveau classeur vierge dans Excel,
-Cliquer sur Fichier en haut à gauche de la fenêtre puis sur Options dans la liste,
-Dans la boîte de dialogue, choisir la catégorie Personnaliser le ruban,
-Dans la liste de droite, cocher la case Développeur,
-Puis cliquer sur Ok pour valider,
-En passant par Fichier puis Enregistrer sous, enregistrer ce classeur au format .xlsm,
Ce format prend en charge les macros et leur code. Si vous l'enregistrez au format.xls classique,
les macros sont perdues. Tout cela est fait pour la sécurité. Les macros étant codées dans un
langage de programmation, vous pourriez très bien y trouver des codes malveillants venant de
tierces personnes. VBA Excel est en effet très puissant.

A. Première Macro
Il est possible d'automatiser certaines tâches en toute simplicité grâce à l'enregistreur de macros.

23
Dans le ruban Développeur, cliquer sur le bouton Enregistrer une macro,
Dans la boîte de dialogue nommer la macro : Macro1 par exemple,
Dans la liste déroulante, conserver Ce classeur pour enregistrer la macro,
Cliquer sur Ok pour démarrer l'enregistrement.
A partir de ce point, nous devons réaliser les actions strictement nécessaires car Excel nous
enregistre.
Pour prendre un exemple simple, nous allons automatiser les opérations suivantes :
-supprimer le contenu des colonnes A et C
-déplacer le contenu de la colonne B dans la colonne A
-déplacer le contenu de la colonne D dans la colonne C

C'est tout pour les actions. Nous devons immédiatement stopper l'enregistrement.
Dans le ruban Développeur, cliquer sur le bouton Arrêter l'enregistrement,
La macro existe mais n'est pas matérialisée par un bouton. Pour l'instant la macro existe
seulement sous forme de code VBA. Nous allons créer ce bouton.
Cliquer sur le menu Fichier puis choisir Options dans la liste,

24
Dans la boîte de dialogue, sélectionner la catégorie Barre d'outils Accès rapide,
Au centre, choisir la catégorie Macros,
Puis sélectionner la macro Macro1 dans la liste du dessous et cliquer sur Ajouter,
Cliquer sur Modifier en bas pour choisir une image de bouton,
Cliquer deux fois sur Ok pour valider successivement les deux boîtes de dialogue,

Le bouton apparaît désormais dans la barre d'accès rapide, au-dessus du ruban, à côté des
boutons pour enregistrer, annuler et rétablir.
Code VBA et modules
Voyons à quoi ressemble cette macro côté code.
Dans le ruban Développeur, cliquer sur le bouton Macros,
Dans la boîte de dialogue, sélectionner la macro Macro1 puis cliquer sur Modifier,

25
Nous allons nous arrêter quelques instants sur le code généré :
Sub Macro1()
'
' Macro1 Macro
'
'
Columns("A:A").Select
Selection.ClearContents
Columns("C:C").Select
Selection.ClearContents
Columns("B:B").Select
Selection.Cut Destination:=Columns("A:A")
Columns("D:D").Select
Selection.Cut Destination:=Columns("C:C")
Columns("C:C").Select
End Sub

Sub et End Sub délimitent le début et la fin de la macro, "Macro1" correspond au nom
de cette macro :
Sub Macro1()
End Sub
Nous allons modifier le nom de cette macro par quelque chose de plus parlant,
remplacez simplement
"Macro1" par "manipulations_des_colonnes" (le nom ne doit pas contenir d'espaces) :
Sub manipulations_des_colonnes ()
Le texte en vert (texte précédé d'une apostrophe) est un commentaire, il n'est pas pris
en compte à l'exécution du code :
'
' Macro1 Macro
'
'
Les commentaires sont très utiles pour s'y retrouver lorsque l'on a beaucoup de code ou
pour ne pas éxécuter certaines lignes de code sans pour autant les supprimer.

Sub manipulations_des_colonnes()
'
'Mon premier commentaire !
'
Columns("A:A").Select
Selection.ClearContents
Columns("C:C").Select
Selection.ClearContents
Columns("B:B").Select
Selection.Cut Destination:=Columns("A:A")
Columns("D:D").Select
Selection.Cut Destination:=Columns("C:C")
Columns("C:C").Select
End Sub

Maintenant, nous voulons que cette macro s'exécute en cliquant sur un bouton.
Cliquez sur (Développeur) Insérer > Bouton (Contrôles de formulaires) :

26
Tracez votre bouton et sélectionnez ensuite simplement votre macro :

Lorsque vous cliquerez sur le bouton, la macro sera exécutée :

B. VBA : Les selections


Nous allons commencer par créer une macro qui sélectionnera une cellule de notre
choix.
Ouvrez l'éditeur et ajoutez-y un module :

Dans le module, tapez "sub selection" et appuyez sur Enter.

27
Vous remarquerez qu'Excel a automatiquement ajouté la fin de cette nouvelle procédure
:
Sub selection()
End Sub
Créez maintenant un bouton de formulaire auquel vous allez associer cette macro (vide
pour le moment) :

Complétez votre macro avec ceci :

Sub selection()
'Sélection de la cellule A8
Range("A8").Select
End Sub

Vous pouvez tester cette macro en cliquant sur votre bouton de formulaire, la cellule A8
est alors sélectionnée.
Nous allons maintenant modifier cette macro pour sélectionner la cellule A8 de la
seconde feuille :

Sub selection()
'Activation de la feuille 2
Sheets("Feuil2").Activate
'Sélection de la cellule A8
Range("A8").Select
End Sub

Excel active alors la feuille 2 avant de sélectionner la cellule A8.


Remarque : aidez-vous des commentaires (texte en vert) pour bien comprendre les macros de ce
cours.

Sélection de cellules distinctes :

Sub selection()
'Sélection des cellule A8 et C5
Range("A8, C5").Select
End Sub

Sélection d'une plage de cellules :


Sub selection()

28
'Sélection des cellules A1 à A8
Range("A1:A8").Select
End Sub

Sélection d'une plage de cellules renommée :

Sub selection()
'Sélection des cellules de la plage "ma_plage"
Range("ma_plage").Select
End Sub

Sélection d'une cellule en fonction d'un numéro de ligne et de colonne :


Sub selection()
'Sélection de la cellule de la ligne 8 et de la colonne 1
Cells(8, 1).Select
End Sub
Cette autre manière de sélectionner permet des sélections plus dynamiques et sera bien
utile par la
suite.
En voici un petit exemple :
Sub selection()
'Sélection aléatoire d'une cellule de la ligne 1 à 10 et de la colonne 1
Cells(Int(Rnd * 10) + 1, 1).Select
'Traduction :
'Cells([nombre_aléatoire_entre_1_et_10], 1).Select
End Sub
Ici, le numéro de ligne est : Int(Rnd * 10) + 1, autrement dit : un nombre entre 1 et 10
(inutile de retenir
ce code pour le moment).
Décaler une sélection :
Sub selection()
'Sélection d'une cellule (calculée par rapport à la cellule active actuelle)
ActiveCell.Offset(2, 1).Select
End Sub
Décalage de 2 lignes vers le bas et 1 colonne vers la droite à partir de la cellule active,
puis sélection :

29
Sélection de lignes :
Il est possible de sélectionner des lignes entières avec Range ou Rows (Rows étant
spécifique aux
lignes).
Sub selection()
'Sélection des lignes 2 à 6
Range("2:6").Select
End Sub
Sub selection()
'Sélection des lignes 2 à 6
Rows("2:6").Select
End Sub
Sélection de colonnes :
Tout comme pour les lignes, il est possible de sélectionner des colonnes entières
avec Range ou Columns (Columns étant spécifique aux colonnes).
Sub selection()
'Sélection des colonnes B à G
Range("B:G").Select
End Sub
Sub selection()
'Sélection des colonnes B à G
Columns("B:G").Select
End Sub

30

Vous aimerez peut-être aussi