Projet:Communes de France/VBA/Tableaux
La présente page s'inscrit dans le cadre d'une démarche progressive et succincte d'acquisition des notions de VBA pour faciliter l'amélioration des articles relevant des projet Communes de France ou Intercommunalités de France.
Principes généraux
[modifier | modifier le code]Tableau simple
[modifier | modifier le code]Un tableau est constitué d’une plage de cellules de i lignes et j colonnes. Construire un tableau revient donc à construire j listes de i cellules.
Dès lors que la construction de listes est maîtrisée en VBA, celle de tableaux l'est donc également, puisqu’il s’agit de listes imbriquées.
Transposition de tableau
[modifier | modifier le code]Une des opérations classiques sur tableaux (ou matrices) est la transposition, à savoir l’inversion des lignes et des colonnes.
Imaginons que l’on ait en cellule A1 d’une feuille Excel dénommée « Code » le tableau suivant (les premières populations 2017 de communes) :
01001 L'Abergement-Clémenciat 776 01002 L'Abergement-de-Varey 248 01004 Ambérieu-en-Bugey 14035 01005 Ambérieux-en-Dombes 1689 01006 Ambléon 111 01007 Ambronay 2726
Le résultat attendu après transposition est le tableau suivant en cellule G1 (par exemple)
01001 01002 01004 01005 01006 01007 L'Abergement-Clémenciat L'Abergement-de-Varey Ambérieu-en-Bugey Ambérieux-en-Dombes Ambléon Ambronay 776 248 14035 1689 111 2726
Première méthode
[modifier | modifier le code]Le code VBA en boucles imbriquées sera le suivant :
For i = 1 To 3 For j = 1 To 6 Sheets("Code").Cells(i, j + 6) = Sheets("Code").Cells(j, i) Next j Next i
Fonction Transpose
[modifier | modifier le code]La même chose peut être obtenue plus simplement (enfin, selon les points de vue!) avec la fonction Transpose utilisable soit directement dans la feuille de calcul, soit en VBA.
En VBA, cela donne
Range("A1:C6").Select Selection.Copy Range("G1").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=True
Exemples
[modifier | modifier le code]Répartition des communes par nombre d'habitants
[modifier | modifier le code]L'article commune (France) comporte un tableau qui mérite d'être actualisé. Il s'agit d'un bon exemple de traitement, qui peut en outre être élargi à tous les types de divisions.