Unité Tableur et Bases de données
http://lagis-vi.univ-lille1.fr/~lo/ens/gi/#TBD
Tableur – Programmer en VBA
Olivier Losson
Master Génie Industriel : http://master-gi.univ-lille1.fr
Introduction
Comparaison avec d'autres langages Notations du cours et règles d'édition
1 – Types et variables
Types disponibles et conversion entre types Déclaration de variable, de constante
2 – Structures de contrôle (tests, boucles) 3 – Fonctions et procédures personnalisées
Principe, implémentation et appel Paramètres
4 – Tableaux
Déclaration et utilisation Tableaux dynamique
5 – Objets Excel
Le langage VBA
Remplace les macros-commandes (depuis Excel 5.0) Permet d'automatiser les tâches répétitives de manipuler tous les objets Excel de communiquer avec d'autres applications, d'accéder aux fichiers, … de développer des interfaces graphiques (UserForms) mais PAS de développer des applications indépendantes d'Excel
Comparaison avec d'autres langages
Similarités Structures de contrôle Fonctions intégrées ; fonction utilisateur et paramètres Spécificités Pas de pointeur Faiblement typé ; existence d'un type générique (Variant)
Notations et conventions de ce cours
Code source en police Courier
Rem. ne pas confondre l ( L min.) et 1 (un)
Mots-clés du langage (à recopier tels quels) en Courier gras
Autres mots (à remplacer par une valeur) en
Courier italique
Mots optionnels (=facultatifs) entre crochets
[option]
Rem. suite de mots optionnels
[option1 [,option2 [,option3 ... ]]]
Alternative entre plusieurs mots entre accolades
Commenter son code
Utilité : lisibilité, réutilisabilité, maintenance Syntaxe :
Rem Commentaire
ou
'Commentaire
Casse
Pas de différenciation majuscules/minuscules Mise en forme et coloration automatiques :
rem commentaire
Rem commentaire
Conseil : tout écrire en minuscules
Instructions
Types principaux
Entiers : nb_personnes=3 : dist_terre_sol=147100000
Réels : temp_zero_k=-273.15 : masse_terre=6E+24
Opérateurs
(priorité décroissante)Opérateur Signification Exemple
^ puissance 5 ^ 2 = 25
- négation -5 + 2 = -3
* / multiplication, division 5 / 2 = 2.5 \ division entière (quotient) 5 \ 2 = 2 Mod division modulo (reste) 5 Mod 2 = 1 + - addition, soustraction 5 – 2 = 3
& concaténation 5 & 2 = 52
Fonctions intégrées principales
Fonction Signification Exemple
valeur absolue arc-tangente (rad) cosinus, sinus (rad) Exp(1)=2.7182818 partie entière racine carré
Tan tangente Tan(3.14159265)=1
Abs Abs(-5.2)=5.2
Atn Atn(1)=0.785398
Cos, Sin Cos(3.14159265)=-1
Exp, Log exponentielle, log népérien Fix, Int Fix(8.4)=Int(8.4)=8 Fix(-8.4)=-8 Int(-8.4)=-9 Rnd nombre aléatoire [0,1[ Rnd*2 1.411095 Sgn signe {-1,0,1} Sgn(-8.4)=-1 Sqr Sqr(2)=1.414213
Nombres (2)
Description
Ensemble de caractères (de 0 à 65 400) Chaîne constante
Entourée de guillemets doubles ("...")
Ne pas confondre avec une variable chaîne :
"message" message (variable chaîne, ex. "bla bla")
Remarque : peut inclure
Lettres et chiffres ("Lettres", "007") Espaces et caractères de ponctuation (" , ") Guillemets doubles : "Il dit ""Bonjour"" " Caractères spéciaux non imprimables Fin de ligne : vbCrLf Retour arrière : vbBack Tabulation : vbTab
Chaînes (1)
Affichage
Dans une boîte de message
MsgBox ("Bonjour")
Dans la fenêtre Exécution
Debug.Print "Bonjour"
Rem. Debug omissible dans fenêtre d'exécution
Saisie
Dans une boîte de saisie
réponse = InputBox ("Écrivez-moi un mot")
Concaténation
Mise bout à bout de 2 chaînes (constantes ou variables) Opérateur &
nom = "Toto"
print "Bonjour " & nom
Mise en cascade possible :
Fonctions intégrées principales
partie gauche partie droite sous-partie quelconque recherche de sous-chaîne code ASCII d'un caractère caractère associé à un code conversion en minuscules conversion en majusculesLen longeur (nb. caractères) Len("tête")=4
Left Left("tête",3)="têt"
Right Right("tête",2)="te"
Mid Mid("tête",2,1)="ê"
Instr Instr("tête","e")=4Instr("tête","T")=0
Asc Asc("A")=65
Chr Chr(65)="A"
LCase LCase("TêTe")="tête"
UCase UCase("TêTe")="TÊTE"
Description
Variable à 2 valeurs possibles
True (Vrai) False (Faux)
Opérateurs
(priorité décroissante)Exercice :
si A=True et B=False, que valentOpérateur Signification Exemple
Or
Not non logique Not True = Faux
And et logique True And False = Faux
ou logique True Or False = Vrai Xor ou exclusif True Xor True = Faux
A. BA. B A.B A B
Date/heure constante
Entourée de dièses (#...#)
Attention au format (France : #JJ/MM/AAAA [HH:MM:SS]#)
Opérations Addition/soustraction date_naiss = #31/03/1990# print date_naiss-1 30/03/1990 print date_naiss+1 01/04/1990 Conversion en nombre : nombre de jours écoulés depuis le 30 décembre 1899 print date_naiss*2 65926
Fonctions intégrées principales
Date et heure
Fonction Signification Exemple Résultat
Date date système courante Date 07/07/2015
Type Suf. Description Valeurs possibles Taille
Boolean booléen True/False 2 octets
Byte octet 0..255 1 octet
Integer % entier -32768..32767 2 octets
Long & entier long -2E9..+2E9 4 octets
Single ! réel simple ±3.4E38..±1.4E-45 4 octets
Double # réel double ±1.8E308..±4.9E-324 8 octets
Date date/heure 8 octets
String $ chaîne 0..65400 caractères Len(ch)
Object objet Excel 4 octets
Variant tout type toutes valeurs 16 octets
1/1/0100..31/12/9999 00:00:00..23:59:59
Workbook, Range,
Automatique
Ex.
print nb & "*" & mult & "=" nb*mult
print "Aujourd'hui, nous sommes le " & Date()
Fonctions spécialisées
Utilité : réduire la taille mémoire Conversions En booléen : CBool - Ex. CBool(10)True En entiers : CByte, CInt, CLng Ex. CInt(10.5)10 : CInt(True)-1 En date : CDate (partie entièredate, partie décimaleheure) Ex. CDate(32963.25)31/03/1990 06:00:00 En réels : CSng, CDbl En chaîne : CStr
Initialisation
Informations sur le type
Connaître le type : fonction
VarType()temp = 38.2:Debug.Print VarType(temp)
Tester le type
Fonctions IsType (Ex. IsDate(), IsNumeric(), ...)
Types Exemple Initialisation
Booléen Numérique 0 Date Date 00:00:00 Chaîne String "" Variant Variant Objet Boolean False
Byte, Long, Double,
Empty
Workbook, Range, Nothing
Implicite
Mot inconnu nouvelle variable (type donné par la valeur)
Ex. temp=38.2
variable type
DoubleExplicite
Option Explicit
dans section (Déclarations)Avec
Dim
etAs
Dim nomVar As type Dim ch As String
Avec Dim et suffixe accolé
Dim nomVarSuffixe Dim ch$
En cascade
Dim nomVar1 As type1, nomVar2 As type2,…
Rem.: que déclare Dim v1, v2 As Double ?
Description
Association Nom Valeur
Ex.
vbKeyA 65 vbDouble 5vbCrLf Chr(13)&Chr(10) vbGreen 65280
Déclaration de constante personnalisée
Const nomConst [As type] = valeur
Ex.
Const cZeroK As Single = -273.15Utilisation : comme les variables
Dans une expression
Debug.print "Zéro kelvin=" & cZeroK & "°C"
Comme paramètre d'une fonction
réponse=MsgBox("Êtes-vous sûr ?", vbYesNo) If (réponse=vbYes) Then ...
Description
Exécution d'instructions sous condition
Syntaxes
Forme la plus simple
If condition Then instruction
Le tout sur 1 seule ligne
Plusieurs instructions possibles en les séparant par ":"
Forme avec plusieurs instructions If condition Then
instructions EndIf instructions suivantes condition vraie ? instruction(s) instructions suivantes oui nonTests (1)
Syntaxes (suite)
Forme avec alternative If condition Then
instructions1 Else
instructions2 EndIf instructions suivantes Remarques Les tests peuvent être imbriqués Ou utiliserIf Then ElseIf Then Test « Selon » condition vraie ? instructions2 instructions suivantes oui non instructions1
Tests (2)
Sélection (ou « Test Selon »)
Description : exécution d'instructions sous condition avec plusieurs valeurs possibles
Syntaxe
Select Case expression Case valeurs1
instructions1 Case valeurs2
instructions2 ... [Case Else
instructionsN] End Select instructionsN instructionsvaleurs1 autres cas
instructions1 instructions2 ... valeurs2 expression testée ...
Tests (3)
Description
Exécution répétitive d'instructions
Types de boucles
« While » : exécutée tant qu'une condition est vraie
S'arrête lorsque la condition devient fausse
« Until » : exécutée jusqu'à ce qu'une condition soit vraie
S'arrête lorsque la condition devient vraie
« For » : exécutée un nombre de fois donné (compteur)
Attention : risque de boucle infinie si
la condition d'une boucle « While » ne devient jamais fausse la condition d'une boucle « Until » ne devient jamais vraie
La condition doit être modifiée par les instructions de boucle
Boucle While
Exécution d'instructions
tant qu
'une condition est vraie
Syntaxes :
Do While condition Do
instructions
instructionsLoop Loop While condition
instructions suivantes instructions suivantes
condition vraie ? oui non condition vraie ? instructions oui
Boucles (2)
Boucle Until
Exécution d'instructions
jusqu'à ce qu
'une condition soit vraie
Syntaxes :
Do Until condition Do
instructions
instructionsLoop Loop Until condition
instructions suivantes instructions suivantes
condition vraie ? instructions non oui condition vraie ? instructions non oui
Boucles (3)
Boucle For
Exécution d'instructions
un nombre de fois donné
(connu)
Syntaxes :
For cpt=init To fin
instructionsNext cpt
instructions suivantes
For cpt=init To fin Step pas
instructions Next cpt instructions suivantes cpt<fin ? instructions cpt=cpt+1 oui non cpt=init instructions cpt=cpt+pasBoucles (4)
Boucle For Each (énumérateur)
Exécution d'instructions pour chaque élément d'un ensemble
Syntaxe
For Each élément In ensemble
instructions Next élémentRemarques
L'ensemble peut être un tableau ou une collection Les instructions sont exécutées autant de fois qu'il y a d'éléments La variable élément prend tour à tour la valeur de chaque élémentExemple
For Each chiffre In Array(1,5,3)
Debug.Print chiffreNext chiffre
Description
Ensemble d'instructions réalisant une tâche précise et retournant un résultat
Utilité :
Modularité (découpage d'un problème en sous-problème) Réutilisabilité (appel en plusieurs endroits)
Distinguer :
L'implantation (entête+corps) = la fonction elle-même L'appel de la fonction
Lien avec une fonction en mathématiques
Calcule un résultat à partir de paramètres (ou arguments)
Ex. y = sin(x)
Implantation
Syntaxe
Function
nomFonc
([params]) As
type
'commentaires
instructions
nomFonc
= résultat
End Function
Remarquesrésultat doit avoir le type spécifié dans l'entête Le retour d'un résultat utilise le nom de la fonction
entête
corps
Appel
Syntaxe
Function
nomFonc
([params]) As
type
End Function
Dim retour As
type
retour =
nomFonc
([valParams])
Remarques
retour doit être du même type que la fonction (cf. entête)
Les valeurs des paramètres valParams transmises lors de l'appel doivent correspondre (2 à 2) aux types déclarés dans l'entête pour ces
implantation
appel
Description
Fonction qui ne retourne pas de résultat
Syntaxe
Implantation
Sub
nomProc
([params])
'commentaires
instructions
End Sub
AppelCall
nomProc
([valParams])
entête
corps
Description
Donnée d'entrée de la fonction (ou la procédure)
Rem. Parfois aussi donnée de sortie
Syntaxe d'un paramètre
[ByVal|ByRef] nomParam [As type]
Remarques
Passage par défaut : par référence (ByRef) Type par défaut : Variant
Si plusieurs paramètres : les séparer par une virgule
Question : quels sont les types et passages pour
ByVal param1, param2 As String
Passages de paramètres
Passage par référence (ou: par adresse) (
ByRef
)L'adresse mémoire de la variable est transmise à la fonction La fonction travaille directement sur la variable
La variable originale ressort modifiée de la fonction
Passage par valeur (ou: par copie) (
ByVal
)Une copie de la variable est créée et transmise à la fonction La fonction travaille sur cette copie de la variable La variable originale n'est pas modifiée par la fonction Remarques Grande majorité des cas = passage
ByVal
ByRef
utile si plusieurs résultats doivent être retournésParamètres (2)
Exemples
Sinus d'un angle exprimé en degrés
Entête
Function sinDeg(ByVal angle as Double) As Double Appel (ex.)
y = sinDeg(30) 0.5
Premier mot d'une phrase
Entête
Function prem(ByVal phrase as String) As String Appel (ex.)
Debug.Print prem("Bonjour à tous") "Bonjour"
Exemples
n premiers mots d'une phrase
Function prems(ByVal phrase as String,
ByVal n as Long) As String Debug.Print prems("Bonjour à tous", 2)
"Bonjour à"
Idem, en modifiant éventuellement n si incorrect
Function prems(ByVal phrase as String,
ByRef n as Long) As String
Sub test()
Dim nb As Long nb = 5
Debug.Print prems("Bonjour à tous", nb)
End Sub
"Bonjour à tous"
et
nb=3Paramètres nommés à l'appel
Description : appel d'une fonction en utilisant le nom de ses paramètres Utilité
Clarification du code
Spécification des paramètres dans un ordre quelconque Non-spécification des paramètres optionnels
Syntaxe
retour = nomFonc (nomParam1:=valParam1,
nomParam2:=valParam2, )
Exemple
MsgBox(prompt [,buttons] [,title] [,helpfile, context])
rep = MsgBox(title:="Titre", prompt:="Bonjour à tous")
Paramètre optionnel
Description : paramètre pouvant être omis à l'appel de la fonction Syntaxe d'un paramètre optionnel
Optional [ByVal|ByRef] nomParam [As type] [=valDéf]
Remarques
Les paramètres suivants doivent aussi être optionnels ; les paramètres optionnels se placent donc en fin de liste
Préciser systématiquement une valeur par défaut
Exemple
Function concat(ByVal ch1 As String, ByVal ch2 As String, Optional ByVal sep As String="-") As String
Description
Ensemble d'éléments de même type, dans lequel les éléments sont repérés par leur indice (ou numéro d'index)
Utilité
Stockage aisé d'un grand nombre d'éléments
Ex. ensemble de notes, de points de l'espace 3D, ...
Traitements systématiques sur ces éléments
Ex. parcours avec une boucle For
valeurs 5,5 12,5 9,0 0,0 10,0 14,0 11,5 ... indices 0 1 2 3 4 5 6 ...
Nombre de dimensions
1D (vecteur) 2D (matrice)
= tableau de tableaux
n-D (hypervolume)
Taille(s)
(dans chaque dimension)
indice max. ou
indices min. et max.
éventuellement modifiable valeurs 5,5 12,5 9,0 0,0 ... indices 0 1 2 3 ... indices de colonnes 0 1 2 3 in di ce s de li gn es 0 0 255 0 … 1 0 0 255 … 2 0 255 255 … 3 255 255 255 … 4 0 127 0 … ... ... ... ... ...
Syntaxe
Vecteur
En donnant l'indice maximal et le type des éléments :
Dim nomTab(indMax) [As type]
En donnant explicitement les indices minimal et maximal
Dim nomTab(indMin To indMax) [As type] Matrice
Dim nomTab(indMax1,indMax2) [As type] Dim nomTab(indMin1 To indMax1,
indMin2 To indMax2) [As type]
Remarque : possibilité d'utiliser la notation suffixée
Dim nomTabSuffixe(indMax)
Dim nomTabSuffixe(indMin To indMax)
Déclaration de tableaux (1)
Indices des éléments
Indice minimal
par défaut : 0
fixé à 1 avec Option Base 1 dans section (Déclarations)
Nombre d'éléments : dépend des indices et d'Option Base
Retrouver les limites des indices
LBound(t) donne l'indice minimal, UBound(t) l'indice maximal
Préciser éventuellement la dimension : LBound(t,2)
Déclaration Option Base 0 Option Base 1
Nb élts LBound(t) UBound(t) Nb élts LBound(t) UBound(t)
4 0 3 3 1 3 2 2 3 2 2 3 12 0 2 6 1 2 18 0 2 15 0 2 Dim t(3) As Dim t(2 To 3) As Dim t(2,3) As Dim t(0 To 2,5) As
Déclaration de tableaux (2)
Tableau constant
Utiliser Array Ex. tab = Array(5.5, 12.5, 9, 0, 10, 14, 11.5)
Lecture d'une valeur
d'un vecteur
nomTab(indice) nomTab(ind1, ind2)
Écriture d'une valeur
nomTab(indice) = valeur nomTab(ind1, ind2) = valeur Rem.: les indices doivent être compris dans les limites !
Parcours
d'un vecteur
For i=LBound(t) To UBound(t) For i=LBound(t,1) To UBound(t,1) | ... | For j=LBound(t,2) To UBound(t,2) Next i | | ...
Utilisation des tableaux
d'une matrice
Utilité : tableau dont la taille
est inconnue lors du codage
n'est déterminée que lors de l'exécution
Exemples
Stockage de valeurs numériques dans un tableau, avec un nombre de valeurs spécifié par l'utilisateur
Dim nbVal As Integer
nbVal = InputBox("Nb de valeurs :") Dim tabVal(nbVal)
Fonction retournant le tableau des mots contenus dans une phrase paramètre
Syntaxe
Déclaration d'un tableau sans spécifier sa taille Dim nomVar() [As type]
Redimensionnement dynamique (en fonction des besoins) ReDim [Preserve] nomVar(indMax) [As type] Remarques
Plusieurs redimensionnements successifs possibles Taille réduite éléments supplémentaires perdus
Le type des éléments n'est en général pas modifié (As type omis)
Preserve
conserve les valeurs existantes
ne modifie pas le nombre de dimensions
ne permet de redimensionner que la dernière dimension
Exemple
Stockage de valeurs numériques dans un tableau, avec un nombre de valeurs spécifié par l'utilisateur
Dim i As Integer
Dim nbVal As Integer Dim tabVal() As Double
nbVal = InputBox("Nb de valeurs :")
ReDim tabVal(1 To nbVal) 'Toujours des Double
For i = 1 To nbVal
tabVal(i) = InputBox("Valeur :") Next i
Objet
Description : entité (concrète ou abstraite) définie par
ses caractéristiques (propriétés = « variables ») son comportement (méthodes = « fonctions »)
Les objets ayant des caractéristiques communes et même comportement forment une classe (« type »)
Exemples Objets concrets Chaise { nb pieds, couleur, matériau, déplacer(), empiler() } Ordinateur { fréquence µP, prix, démarrer(), arrêter() } Objets abstraits Nombre complexe { Re, Im, abs(), conj() } Fenêtre graphique { position, taille, déplacer(), fermer() }
Description
Composant d'une application Office Organisation hiérarchique
Exemples
Classe Description Classe Description Application Application
Classeur ouvert Document Document texte ouvert Feuille de calcul
Range Plage de cellules Range Ensemble de caractères contigus
Excel Word
Logiciel Excel Logiciel Word Workbook
Worksheet
Workbook
Classeur (ouvert dans Excel)
Collection Workbooks = ensemble des classeurs ouverts
Cas particulier : ActiveWorkbook = classeur actif
Worksheet
Feuille de calcul (d'un classeur)
Collection Worksheets = ensemble des feuilles d'un classeur
Cas particulier : ActiveSheet = feuille active
Range
Plage de cellules (d'une feuille de calcul)
Rem. Éventuellement réduite à une seule cellule
Cas particuliers
ActiveCell = cellule active
Description
Caractéristique d'un objet
Accès par notation pointée : Objet.Propriété
Exemples
Nom du classeur actif : ActiveWorkbook.Name
Nom complet du classeur actif : ActiveWorkbook.FullName
Sauvegarde du classeur actif effectuée ? : ActiveWorkbook.Saved
Nombre de classeurs ouverts : Workbooks.Count
Nombre de feuilles du classeur actif : Worksheets.Count
Nom de la feuille active : ActiveSheet.Name
Adresse de la cellule active : ActiveCell.Address Valeur de la cellule active : ActiveCell.Value
Nombre de cellules sélectionnées : Selection.Count
Lecture dans une variable
Si la propriété est une valeur simple (chaîne, nombre, ...)
nomVar = Objet.Propriété
Si la propriété est elle-même un objet Set nomVar = Objet.Propriété
Écriture (modification de la propriété)
Objet.Propriété = valeurAttention : impossible si la propriété est en lecture seule
Exemples
nomClasseur$ = ActiveWorkbook.Name
Set cellulesNonVides = ActiveSheet.UsedRange ActiveCell.Value = Date()
ActiveCell.Address = "$A$2" est impossible
Description
Action applicable sur (ou réalisable par) un objet
Accès par notation pointée : Objet.Méthode[(params)]
Exemples
Sauvegarde du classeur actif : ActiveWorkbook.Save Fermeture du classeur actif : ActiveWorkbook.Close
Fermeture du classeur actif en enregistrant les modifications :
ActiveWorkbook.Close(True)
Ouverture d'un classeur : Workbooks.Open("Toto.xls") Suppression de la feuille active : ActiveSheet.Delete
Effacement de la cellule active (valeur) : ActiveCell.ClearContents
Suppression de la cellule active avec décalage vers la gauche :
ActiveCell.Delete(xlShiftToLeft)
Description
Ensembles d'objets (items) de même classe
La classe définit (en général) le nom de la collection
Ex. :
Workbooks,
Worksheets,
CommandBars, ...
Chaque item porte un nom (clé) et un numéroAccès à un item
Par son nom Ex. : Worksheets("Feuil1")
Par son numéro Ex. : Worksheets(2)
Propriétés
Nombre d'items dans la collection : propriété Count
Ex. :
Worksheets.CountEn parcourant la hiérarchie
Syntaxe
Application.Objet1.Objet2.
Exemples
Set classeurActif = Application.ActiveWorkbook ? Application.ActiveWorkbook.Worksheets(3).Name
? Application.ActiveWorkbook.Worksheets(Application .ActiveWorkbook.Worksheets.Count).Name
En utilisant une propriété globale (accessible directement). Ex. :
ActiveWorkbook pour Application.ActiveWorkbook
Worksheets pour Application.ActiveWorkbook.Worksheets ActiveSheet pour Application.ActiveWorkbook.ActiveSheet ActiveCell pour Application.ActiveWindow.ActiveCell
Selection pour Application.ActiveWindow.Selection
Définition
Description : plage de cellule(s) d'une feuille de calcul
Pas forcément sélectionnées, ni valuées, ni contiguës Éventuellement réduite à une seule cellule Exemples ActiveCell Selection
Range (1)
Création et parcours : l'essentiel
Création
Propriétés particulières
Propriétés globales : ActiveCell, Selection Propriété d'objet Worksheet : feuille.UsedRange
Propriété (globale)
Rangede la feuille active
En utilisant l'adresse (absolue/relative) : Range(adresse) En utilisant un nom de plage défini : Range(nom)
Parcours (ex.)
Dim plage As Range, cellule As Range Set plage = Selection
For Each cellule in plage
Debug.print cellule.Value Next cellule
Création à partir d'autres plages
Comment obtenir ... une seule cellule d'une plage plage.Cells(numLig,numCol) ou plage.Cells(numCell) une sous-plage en ligne ou en colonne plage.Rows(numLig) ou plage.Columns(numCol) une plage spécifiée par décalage plage.Offset(numLig,numCol) une plage union de plusieurs autres plages Union(plage1,plage2,) la plage entourant une autre plage plage.CurrentRegion numLig=2 numCol=2 numCell=6 numLig=2 numCol=2 numLig=1 numCol=2 A A A A A A A ARange (3)
Propriétés principales
par ordre d'importance décroissante
Propriété Description Type
Value 1 cellule unique Valeur de la cellule Dépend du contenu L+E Plusieurs cellules Valeur des cellules Variant (tableau)
Address 1/+ cellules Adresse Excel String L Count 1/+ cellules Nombre de cellules Long L Formula 1 cellule unique Formule de la cellule String L+E
Plusieurs cellules Formules des cellules Variant (tableau)
Row, Column 1/+ cellules n° première ligne, colonne Long L Font 1 cellule unique Attributs de police Font L... Interior 1 cellule unique Intérieur (fond, etc.) Interior L... Height, Width 1/+ cellules Hauteur, Largeur Double L+E Next, Previous 1 cellule unique Cellule suivante, préc. L...
Type
de plage Lect/écr.
Range (1 cellule)
Méthodes principales
par ordre d'importance décroissante
Méthode [(params)] Type de plage Description
Select 1/+ cellules Sélectionne les cellules ClearContents 1/+ cellules Efface les formules
Clear 1/+ cellules Efface tout (formules, format, ...)
Activate 1 cellule unique Activation d'une cellule de la sélection
1/+ cellules Supprime les cellules en décalant les voisines 1/+ cellules Insère des cellules en décalant les voisines 1/+ cellules Copie ou Coupe les cellules 1/+ cellules Retourne des cellules spéciales (Range) 1/+ cellules Recherche une information 1/+ cellules Remplace une chaîne par une autre Sort 1/+ cellules Trie les valeurs (selon une colonne, ...) Delete(décalage) Insert(décalage) Copy, Cut SpecialCells(type) Find(quoi) Replace(quoi,par)
Range (5)
Exemples et exercices
Exemples Sélectionner la cellule B2 (de la feuille active) Range("B2").Select Effacer la plage utilisée dans la feuille active ActiveSheet.UsedRange.Clear Activer la dernière cellule de la sélection Selection.Cells(Selection.Count).ActivateÉcrire et tester les procédures
ajusterSél() qui étend (ou restreint) la sélection à la plage de cellules non vides dans laquelle elle est incluse (ou qu'elle inclut) échange() qui permute les valeurs des cellules sélectionnées si elles sont au nombre de 2 selectLigne() qui sélectionne les lignes complètes de la plage sélectionnée (utiliser la propriété EntireRow)