1 | Déclaration d'un Tableau
Dim tblvente As ListObject
2 | Affectation d'un Tableau
Le Tableau existe déjà
Vous devez savoir dans quelle feuille se trouve le Tableau.
On pointe vers le Tableau par son numéro :
Set tblVente = VariableFeuille.ListObjects(1)
Ou avec son nom
Set tblVente = VariableFeuille.ListObjects("tblvente")
Le Tableau doit être créé
Crée un Tableau incluant les cellules autour de la cellule A1 de la feuille active:
Set tblVente = ActiveSheet.ListObjects.Add(xlSrcRange, Range("A1").CurrentRegion, , xlYes)
3 | Manipulation d'un Tableau
Tableau
Nommer
VariableTableau.Name = "tblVente"
Convertir en plage
Trier un Tableau
VariableTableau.Sort.SortFields.Clear
VariableTableau.Sort.SortFields.Add Key:=Range("tblVente[[#Headers],[#Data],[Zone]]"), SortOn:= xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With VariableTableau.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Parcourir des lignes
Dim VariableLigne As ListRow
For Each VariableLigne In VariableTableau.ListRows
Debug.Print VariableLigne.Range.Columns(1)
Next
Afficher la ligne Total
VariableTableau.ShowTotals = True
VariableTableau.ListColumns("TTC").TotalsCalculation = xlTotalsCalculationSum
Filtrer un Tableau
Enlève le filtre :
VariableTableau.Range.AutoFilter Field:=3
Place le filtre :
VariableTableau.Range.AutoFilter Field:=3, Criteria1:="=1", Operator:=xlAnd
Lignes
Ajouter une ligne
Dim NewLine As ListRow
Set NewLine = tblVente.ListRows.Add
Écrire une ligne
Le Tableau comporte les colonnes Zone et CA. On souhaite ajouter une ligne :
Dim NewLine As ListRow
NewLine.Range.Cells(, tblVente.ListColumns("Zone").Index).Value = "Zone1"
NewLine.Range.Cells(, tblVente.ListColumns("CA").Index).Value = "50"
On peut aussi désigner une cellule de la nouvelle ligne par son numéro :
NewLine.Range.Colums(1).Value = "Zone1"
NewLine.Range.Colums(2).Value = "50"
Supprimer une ligne
Supprimer la ligne 5 :
tblVente.ListRows(5).Delete
Effacer toutes les lignes
Supprimer toutes les lignes de données :
If Not tblVente.DataBodyRange Is Nothing Then
tblVente.DataBodyRange.Delete
End if
Notez qu’il reste toujours une ligne vide mais les formules ne sont pas supprimées : quand vous collerez ou saisirez des données dans le Tableau, les formules seront propagées dans les colonnes calculées.
Colonnes
Créer une colonne
Dim NewCol As ListColumn
Set NewCol = tblVente.ListColumns.Add
NewCol.Name="TTC"
NewCol.DataBodyRange.Cells(1) = "=[@CA]*1.196"
Supprimer une colonne
Supprimer la colonne "CA"
tblVente.ListColumns("CA").Delete
Supprimer la colonne 5
tblVente.ListColumns(5).Delete
Formate une colonne
Appliquer un format Date
VariableTableau.ListColumns("CA").DataBodyRange.NumberFormat = "m/d/yyyy"
Appliquer un format Pourcentage
VariableTableau.ListColumns("CA").DataBodyRange.NumberFormat = "0.00%"
Appliquer un format Nombre avec séparateur de miliers
VariableTableau.ListColumns("CA").DataBodyRange.NumberFormat = "#,##0.00"
Résumé