Vous êtes sur la page 1sur 2

ANTISECHE EXCEL VBA ActiveCell.

Value = "Bonjour"
Ecrit la valeur décimale 3,1415 dans la cellule A3 :
Affiche une boite de dialogue ayant une zone pour inscrire une réponse. La
réponse est stockée dans la variable « NomUtilisateur ».
Cells(3,1).Value = 3.1415 9| LES VARIABLES
1| AFFICHER L’ONGLET DEVELOPPEUR Les formules : Déclaration des variables :
Version 2007 : Ecrit la formule dans la cellule active. Option Explicit
Bouton Office > Options Excel > Standard >  Afficher l’onglet développeur ActiveCell.Formula = "=A1*B1" En toute première ligne du module, permet de rendre la déclaration des
dans le ruban. ActiveCell.Formula = "=SUM(A1:A10)"
variables obligatoire dans le module. Pour que cette mention soit
Version 2010 et 2013 : (Attention, nom des fonctions en Anglais).
systématiquement insérée dans les nouveaux modules : Outils > Options >
Fichier > Options > Personnaliser le ruban >  Développeur. Mode relatif :
 Déclaration des variables obligatoire.
ActiveCell.FormulaR1C1 = "=RC[-2]*RC[-1]"
2| LES CELLULES Types de données :
Lire le contenu d’une cellule :
Désigner une cellule MsgBox "Contenu : " & ActiveCell.Value
Déclaration d’une variable de type texte :
La cellule active : Dim Message as String
Affiche dans une boite de dialogue le contenu de la cellule. Si la cellule
ActiveCell Déclaration d’une variable de type Entier Long (-2 milliards à 2 milliards) :
contient une formule, affiche le résultat de la formule.
Une cellule par son adresse : Dim NumLigne as Long
Range("A1") 6| FORMATS DE CELLULES/PLAGES Déclaration d’une variable de type décimal (15 chiffres significatifs) :
Une cellule décalée : Couleur de fond : Dim Montant as Double
ActiveCell.Offset(1,0) Range("A1").Interior.ColorIndex = 3 Déclaration d’une variable de type Entier (-32000 à 32000 environ) :
Ici la cellule sous la cellule active. Offset(lignes, colonnes). Colore le fond de la cellule en rouge. Le numéro de la couleur est compris Dim Réponse as Integer
Une cellule par les numéros de ligne et de colonne : entre 0 et 56. 1 : noir, 2 : blanc, 3 : rouge, 4 : vert, 5 : bleu, 6 : jaune. Déclaration d’une variable de type décimal simple précision (7 chiffres
Cells(2,3) Range("A1").Interior.ColorIndex = 0 significatifs) :
Retire la couleur de fond de la cellule A1. Dim Quantité as Single
3| SELECTIONNER UNE CELLULE Couleur du texte : Déclaration d’une variable de type Cellule :
Sélection d’une cellule par sa référence : Range("A1").Font.ColorIndex = 6 Dim Cellule as Range
Range("A1").Select Change la couleur du texte dans la cellule A1. Déclaration d’une variable de type Feuille de calcul :
Sélection d’une cellule voisine : Formats de nombres : Dim Feuille as Worksheet
Range("A1").Offset(1,0).Select Range("A1").NumberFormat = "#,##0.00" Déclaration d’une variable de type Classeur Excel :
Ici la cellule sous la cellule A1 (Offset(lignes, colonnes)). Impose l’affichage des nombres avec séparateur des milliers et deux Dim Classeur as Workbook
Sélection de la dernière cellule : chiffres après la virgule. Utilisation d’une variable :
Range("A1").End(xlDown).Select 7| EFFACER/SUPPRIMER Affectation :
Message = "Bienvenue"
Ici la dernière cellule en bas de la colonne A (directions possibles : xlDown, Effacer :
xlUp, xlToLeft, xlToRight) Lecture :
Effacer le contenu de la cellule active : ActiveCell.Value = Message
Sélection par numéro de ligne et de colonne : ActiveCell.ClearContents
Cells(1,2).Select Ici le contenu de la variable Message est écrit dans la cellule active.
Effacer les formats de la cellule active :
Ici la cellule B2 (Cells( Num ligne, Num col )). ActiveCell.ClearFormats 10| STRUCTURE DECISIONNELLE IF
4| SELECTIONNER UNE PLAGE DE CELLULES Effacer contenu et formats de la cellule active : Une condition :
ActiveCell.Clear If ActiveCell.Value >= 100 Then
Sélection d’une page par les références : ActiveCell.Interior.ColorIndex = 3
Range("A1:B7").Select Supprimer :
End If
Sélection d’une plage en désignant les deux extrémités : Supprimer la ligne où se trouve la cellule active :
Si la valeur de la cellule active est supérieure ou égale à 100
Range(ActiveCell, ActiveCell.End(xlDown)).Select ActiveCell.EntireRow.Delete
Supprime la colonne A : Colorer le fond de la cellule active en rouge
Range(Cellule1,Cellule2).Select sélectionne toute la plage comprise entre la
Range("A1").EntireColumn.Delete Fin du si.
cellule 1 et la cellule 2. Ici, sélectionne de la cellule active à la dernière
cellule en bas de la colonne. 8| BOITES DE DIALOGUE Une condition et traitement sinon :
If ActiveCell.Value <> 0 Then
Sélection de toute une zone : Afficher un message : ActiveCell.Value = ActiveCell.Value * 2
Sélectionne tout le tableau autour de la cellule A1 (équivalent de Ctrl * ) : MsgBox "Traitement terminé." Else
Range("A1").CurrentRegion.Select MsgBox "La date est : " & Date ActiveCell.Interior.ColorIndex = 3
Sélectionne toute la ligne où se trouve la cellule active : Ici le message contient du texte et la date. End If
ActiveCell.EntireRow.Select Poser une question : Si la valeur de la cellule active est différente de 0
Sélectionne toute la colonne où se trouve la cellule active : Par des boutons : Multiplier le contenu de la cellule active par 2
ActiveCell.EntireColumn.Select Réponse = MsgBox("Voulez-vous continuer Sinon
5| CONTENU D’UNE CELLULE ?",vbYesNo,"Continuer") Colorer le fond de la cellule active en rouge
Ecrire dans une cellule : Affiche une boite de dialogue ayant un bouton Oui et un bouton Non. La Fin du si
Ecrit la valeur 3 dans la cellule A1 : réponse de l’utilisateur est stockée dans la variable « Réponse ». Plusieurs conditions et traitement sinon :
Range("A1").Value = 3 Par du texte : If ActiveCell.Value >=1 And ActiveCell.Value <= 3 Then
Ecrit le texte Bonjour dans la cellule active : NomUtilisateur = InputBox("Quel est votre nom ?") ActiveCell.Offset(0,1).Value = "Premier trim"

ANTISECHE EXCEL VBA Patrice Robilliard ANTISECHE EXCEL VBA


Else Position = InStr(ActiveCell.Value, "-") Next
ActiveCell.Offset(0,1).Value = "Second semestre" Ecrit dans la variable Position, la position du premier tiret dans le contenu Déclaration d’une variable de type « feuille »
End If de la cellule active. Pour chaque feuille de la collection de feuilles
Si la valeur de la cellule active est comprise entre 1 et 3 Informations : Activer la feuille
Ecrire dans la cellule à côté « premier trim » Vide : Ecrire dans la cellule A1 le nom de la feuille
Sinon, Ecrire « second semestre ». If IsEmpty(ActiveCell.Value) Then Feuille suivante.
Pour combiner plusieurs tests logique : And, Or ou Not. Si la cellule active est vide. 14| LES CLASSEURS
11| LES BOUCLES Type de contenu : Pour désigner les classeurs ouverts (seulement les classeurs ouverts), on
Répéter un traitement un nombre déterminé de fois : FOR If IsNumeric(ActiveCell.Value) Then utilise la collection : Workbooks.
Dim Compteur as Long Si la cellule active est numérique. Workbooks désigne tous les classeurs ouverts.
For Compteur = 1 To 10 If IsDate(ActiveCell.Value) Then
Workbooks(1) désigne un classeur : le premier.
‘Traitement à répéter Si la cellule active est une date valide.
If ActiveCell.HasFormula Then
Manipuler un classeur : désignation, propriétés et
Next Compteur
Si la cellule active contient une formule. méthodes :
La boucle répète le traitement pour toutes les valeurs de la variable
Activer un classeur :
compteur comprises entre 1 et 10. 13| LES FEUILLES DE CALCUL Workbooks(1).Activate
Répéter un traitement pour tous les objets d’une Pour désigner les feuilles d’un classeur il existe deux collections : Active le premier classeur ouvert.
collection : FOR EACH Worksheets (qui désigne uniquement les feuilles de calcul) et Sheets (qui Workbooks("Consolidation.xlsx").Activate
Dim Cellule as Range désigne toutes les feuilles, y compris les feuilles de graphique). Active le classeur dont le nom est « consolidation.xlsx ».
For Each Cellule In Range("A1:B4") Worksheets (ou Sheets), avec un « s », désigne toutes les feuilles. Enregistrer et fermer :
‘Traitement à répéter Worksheets(1) ou Sheets(1) désigne une seule feuille : la première. ActiveWorkbook.Save
Next Cellule Worksheet (sans « s ») est le type « feuille de calcul » lorsque l’on déclare Enregistre les modifications du classeur actif.
La boucle répète le traitement pour toutes les Cellules de la plage A1:B4. une variable. Workbooks(1).Close
Répéter un traitement tant qu’une condition est vraie : Manipuler une feuille ; désignation, propriétés et Ferme le premier classeur.
WHILE méthodes : Actions sur la collection entière :
Range("A1").Select Activer une feuille : MsgBox Workbooks.Count
While Not isEmpty(ActiveCell.Value) Worksheets(1).Activate Affiche dans une boite de dialogue le nombre de classeurs ouverts.
‘Traitement à répéter Active la première feuille de calcul du classeur. Workbooks.Add
ActiveCell.Offset(1,0).Select Worksheets("Consolidation").Activate Crée un nouveau classeur vierge.
Wend Active la feuille dont le nom est « consolidation ». Workbooks.Open "c:\Chemin\classeur.xlsx"
La boucle répète le traitement tant que la cellule active n’est pas vide. Il ne Renommer une feuille : Ouvre le classeur dont le chemin et le nom sont indiqués.
faut pas oublier de faire évoluer la condition (ici en décalant la cellule ActiveSheet.Name = "Conso 2013" Traiter tous les classeurs d’un dossier :
sélectionnée) sinon la boucle ne s’arrête jamais. Renomme la feuille active en « conso 2013 ». Dim UnClasseur As String
La boucle While s’écrit aussi : Sheets(1).name = "Première" UnClasseur = Dir("z:\Dossier\*.xls*")
Do While condition_de_continuation Renomme la première feuille du classeur. While UnClasseur<>""
… Autres manipulations : ' Traitement du classeur
Loop ActiveSheet.Tab.ColorIndex = 3 ' UnClasseur contient uniquement le nom du classeur
12| LES FONCTIONS Change la couleur de l’onglet de la feuille active. UnClasseur = Dir ' Prochain classeur
Manipuler le texte : Worksheets(1).Delete Wend
Mettre en majuscules et minuscules : Supprime la première feuille. 15| RACCOURCIS CLAVIER
ActiveCell.Value = UCase(ActiveCell.Value) Actions sur la collection entière : Basculer Excel  Editeur VBA Alt + F11
Réécrit le contenu de la cellule active en majuscules. Nombre de feuilles : Exécuter une macro Alt + F8
ActiveCell.Value = LCase(ActiveCell.Value) MsgBox Worksheets.Count Forcer l’arrêt d’une macro Ctrl + Pause
Réécrit le contenu de la cellule active en minuscules. Affiche dans une boite de dialogue le nombre de feuilles dans le classeur.
Extraire une partie du texte : Ajouter des feuilles :
ActiveCell.Value = Left(ActiveCell.Value,3) Worksheets.Add
Réécrit le contenu de la cellule active en ne gardant que les 3 premiers Ajoute une nouvelle feuille au classeur.
caractères à gauche. Worksheets.Add Before:=Worksheets(1)
ActiveCell.Value = Right(ActiveCell.Value,3) Ajoute une nouvelle feuille en première position (avant la première feuille).
Réécrit le contenu de la cellule active en ne gardant que les 3 derniers Worksheets.Add After:=Worksheets(Worksheets.Count)
caractères à droite. Ajoute une feuille en dernier (après la feuille dont le numéro est le nombre
ActiveCell.Value = Mid(ActiveCell.Value,3,5) de feuilles dans le classeur).
Réécrit le contenu de la cellule active en gardant 5 caractères à partir du Parcourir toutes les feuilles :
3ème. Dim feuille As Worksheet
ActiveCell.Value = Mid(ActiveCell.Value,3) For Each feuille in Worksheets
Réécrit le contenu de la cellule active à partir du 3ème caractère et jusqu’à feuille.Activate
la fin. Range("A1").Value = feuille.Name
ANTISECHE EXCEL VBA Patrice Robilliard ANTISECHE EXCEL VBA

Vous aimerez peut-être aussi