|
MÉTHODE POUR MANIPULER UNE PLAGE
Tout d'abord vous pouvez activer (Activate) une cellule
et/ou sélectionner (Select) une plage. Dans l'exemple
suivant, vous sélectionnez la plage A1:C3 puis activer la cellule
B2, c'est à dire que la plage A1:C3 est en couleur de sélection
et la cellule B2 est blanche et prête à accueillir des données
:
Sub SelecActiv()
Range("A1:C3").Select
Range("B2").Activate
End Sub
Vous coupez avec la méthode Cut et copier avec Copy, vous pouvez
effectuer immédiatement le collage. Les syntaxes sont :
- UnePlage.Cut(Destination) où Destination représente
une plage où vous voulez coller ce qui est coupé. Dans
le cas où vous ne renseignez pas Destination les
données sont placées dans le presse-papier.
- UnePlage.Copy(Destination) où Destination représente
une plage où vous voulez coller ce qui est coupé. Dans
le cas où vous ne renseignez pas Destination les
données sont placées dans le presse-papier.
Si vous n'avez pas renseigné Destination , vous
pouvez coller avec la méthode PasteSpecial. Sa syntaxe
est : UnePlage.PasteSpecial(Paste, Operation, SkipBlanks, Transpose) où :
- Paste qui doit être une de ces constantes
: xlPasteAll (Tout), xlPasteFormulas (Formule), xlPasteValues (Valeur), xlPasteFormats (Foramt), xlPasteNotes (Notes)
ou xlPasteAllExceptBorders (Tout sauf les bordures).
Si vous ne le renseignez pas, la valeur sera xlPasteAll.
- Operation qui représente le type
d'opération : xlPasteSpecialOperationNone (aucune), xlPasteSpecialOperationAdd (addition), xlPasteSpecialOperationSubtract (soustraction), xlPasteSpecialOperationMultiply (multiplication),
ou xlPasteSpecialOperationDivide (division).
La valeur par défaut est xlPasteSpecialOperationNone.
- SkipBlanks doit être à True pour
que les cellules vides de la plage provenant du Presse-papiers ne soient
pas collées, la valeur par défaut est False.
- Transpose doit être à True pour
transposer les lignes et les colonnes (les données en ligne
se retrouvent en colonne et inversement).
Exemple :
Sub CopierColler()
Dim L As Byte, C As Byte
Dim Plage As Range
For L = 1 To 10
For C = 1 To 5
Cells(L, C) = L & C
Cells(L, C).Interior.Color =
RGB(225 - (L * 10), C * 20, 0)
Next C
Next L
Range("A1:B2").Copy
Range("G1").PasteSpecial xlPasteAll
Range("G4").PasteSpecial xlPasteValues
Range("G7").PasteSpecial xlPasteFormats
End Sub
Pour imprimer utilisez la méthode PrintOut, sa syntaxe est la
suivante :
UnePlage.PrintOut(From, To, Copies, Preview, ActivePrinter, PrintToFile, Collate, PrToFileName) où :
-
From représente le
numéro de la page à partir de laquelle commence l'impression.
Si vous ne le spécifiez pas l'impression commence à la
1ère page.
-
To représente le numéro
de la dernière page à imprimer. Si vous ne le spécifiez
pas l'impression s'effectue jusqu'à la dernière page.
-
Copies représente le
nombre de copies à imprimer. Si vous ne le spécifiez
pas une seule copie est imprimée.
-
Preview doit être à True pour
afficher un aperçu avant l'impression.
-
ActivePrinter définit
le nom de l'imprimante.
-
PrintToFile doit être à True pour
imprimer dans un fichier. Si vous ne spécifiez pas PrToFileName,
Excel invite l'utilisateur à entrer le nom du fichier.
-
Collate doit être à True pour
assembler plusieurs copies.
-
PrToFileName spécifie
le nom du fichier vers lequel vous souhaitez effectuer l'impression.
Utilisez la méthode Delete, la syntaxe est : UnePlage.Delete(Shift) où indique
comment décaler les cellules, xlShiftToLeft (vers
la gauche) ou xlShiftUp (vers le haut).
Pour forcer le calcul d'une plage utilisez la méthode Calculate.
Sub Calculer()
Dim L As Byte
Application.Calculation = xlCalculationManual
For L = 1 To 5
Range("C" & L).FormulaLocal = "=A" & L & "+B" & L
Range("A" & L) = L
Range("B" & L) = L * 2
Next L
Range("C1:C2").Calculate
End Sub
La méthode Sort permet de gérer le tri
et SubTotal les sous-totaux. La méthode RemoveSubtotal permet
de supprimer l'ensemble des sous-totaux d'une plage.
Syntaxe:
|
MaPlage.Sort Key1, Order1, Key2, Type,
Order2, Key3, Order3, Header, OrderCustom, MatchCase, Orientation,
SortMethod |
| Key1, Key2, Key3 |
la cellule contenant le titre du champ.
1 pour le 1er champ, 2 pour le 2ème et 3 pour le 3ème
(dans l'ordre du tri |
| Order1, Order2, Order3 |
xlAscending (tri ascendant)
ou xlDescending (tri descendant) |
| Type (pour les
tableaux dynamiques) |
xlSortLabels (tri sur les étiquettes)
ou xlSortValues (tri sur les valeus) |
| Header |
xlNo (pas d'en têtes)
ou xlYes (des en-têtes dans le tableau, xlGuess (Excel
décide). |
| OrderCustom |
1 par défaut, correspond à la
liste qui sert de base au tri. 1 correspond au tri alphanumérique
standard. Si vous avez établi des listes personnalisées,
vous pouvez triez en indiquant cette liste, pour connaître
son index :
Outils/Options/Listes pers., l'index correspond à l'index
de la liste Listes personnalisées (votre liste
est écrite sur la 5ème ligne, donc Index=5),
Nouvelle liste a l'index 1. |
| MatchCase |
True pour distinguer
les majuscules des minuscules, False dans le cas inverse. |
| Orientation |
xlSortRows, le trie
s'effectue par ligne (de haut en bas)
xlSortColumns, le tri s'effectue par colonne
(de gauche à droite) |
| xlSortColumns |
Ne concerne pas la version française |
|
MaPlage.SubTotal GroupBy, Function, TotalList,
Replace, PageBreaks, SummaryBelowData |
| GroupBy |
l'index du champ sur lequel le regroupement
s'opère, le champ le plus à gauche ou le plus haut
a l'index 1. |
| Function |
L'opération a effectuer pour
le sous-total :
xlAverage (moyenne), xlCount (nombre,
nv), xlCountNums (nombre de valeur, nbval), xlMax (maximum), xlMin (minimum), xlProduct (produit), xlStDev (Ecart
type), xlStDevP (Ecart typeP), xlSum (somme), xlVar (Var) ou xlVarP (VarP) |
| TotalList |
tableau contenant les index des champs
sur lesquels se feront les sous-totaux. Exemple, Array(2,3) indique
que les sous-totaux se feront sur les champs d'index 2 et 3. Cf GroupBy |
| Replace |
True pour remplacer
des sous-totaux existants, la valeur par défaut est False. |
| PageBreaks |
True pour ajouter des
sauts de page après chaque groupe. La valeur par défaut
est False. |
| SummaryBelowData |
xlSummaryBelow (pardéfaut),
synthèse sous les données,
xlSummaryAbove, synthèse au-dessus des
données. |
L'exemple suivant permet de trier un tableau puis de lui ajouter des
sous-totaux :
Sub Tri_SousTotaux()
Dim L As Byte
Range("A1:C12").RemoveSubtotal
Range("A1") = "Champ de tri"
Range("B1") = "champ1 à sommer"
Range("C1") = "champ2 à sommer"
For L = 2 To 12
If L Mod 2 = 0 Then
Range("A" & L)
= "Texte n°" & L
Else
Range("A" & L)
= "Texte n°" & L + 1
End If
Range("B" & L) = L
Range("C" & L) = L * 2
Next L
MsgBox "Données affichées"
With Range("A1:C12")
.Sort Range("A1"), xlAscending
.Subtotal 1, xlSum, Array(2, 3), , , xlSummaryBelow
End With
End Sub
|