FAQ Excel
FAQ ExcelConsultez toutes les FAQ
Nombre d'auteurs : 46, nombre de questions : 845, dernière mise à jour : 30 mars 2022
- Où trouver une présentation de la fonction Tableau sous Excel 2007 ?
- Quelle est la différence entre la fonction Liste Excel 2003 et la fonction Tableau Excel 2007 ?
- Comment créer un tableau par macro ?
- Comment boucler sur les tableaux d'une feuille ?
- Comment ajouter une ligne dans un tableau ?
- Comment ajouter un commentaire dans un tableau Excel 2007 ?
- Comment trier une colonne d'un tableau Excel 2007 ?
- Comment filtrer une colonne d'un tableau Excel 2007 ?
- Comment redimensionner rapidement un tableau ?
- Comment reconvertir un tableau en simple plage de cellules ?
- Comment empêcher l'ajout automatique de données dans un tableau ?
- Comment créer rapidement un tableau ?
- Comment utiliser un tableau dans un classeur partagé ?
- Comment identifier le type de source d'un tableau ?
- Comment ajouter rapidement une ligne dans un tableau contenant des totaux ?
- Comment utiliser des variables dans les références structurées des tableaux de données ?
- Comment placer les en-têtes d'un tableau dans une liste de validation, sous Excel 2007 ?
Il n'y a pas de différence entre les deux. La fonction Liste a été renommée et s'appelle Tableau dans Excel 2007.
Les tableaux facilitent le classement et l'exploitation de vos données. Vous pouvez gérer et analyser les informations dans les limites
de la plage spécifiée. Vous pouvez par exemple :
* Filtrer les colonnes.
* Ajouter une ligne de totaux.
* Appliquer un format de tableau.
* Synthétiser avec un tableau croisé dynamique.
* Supprimer les doublons.
Pour créer un tableau dans Excel 2007, sélectionnez la plage de cellules à convertir. Ouvrez l'onglet Insertion, puis cliquez sur le bouton Tableau dans le groupe Tableaux.
Les noms de tableaux sont accessibles dans le gestionnaire de noms (Onglet Formules/Groupe Noms définis) et aussi visibles
dans la liste de saisie semi automatique des formules.
Vous pouvez donc spécifier le nom du tableau (qui est en fait une plage nommée) dans vos formules :
=RECHERCHEV
("mimi"
;Tableau1;3
;0
)
Sub
CreationTableau
(
)
Dim
Ws As
Worksheet
Dim
NomTable As
String
'xlSrcExternal 0 Source de données externes (site Microsoft Windows SharePoint Services).
'xlSrcQuery 3 Requête
'xlSrcRange 1 Plage
'xlSrcXml 2 XML
NomTable =
"Table1"
Set
Ws =
Worksheets
(
"Feuil1"
)
'Un exemple qui prend en compte les cellules voisines à A1
With
Ws
.ListObjects.Add
(
xlSrcRange, .Range
(
"$A$1"
).CurrentRegion
, , xlYes).Name
=
NomTable
.ListObjects
(
NomTable).TableStyle
=
"TableStyleMedium5"
End
With
'Un autre exemple qui prend en compte une plage spécifique.
'With Ws
'.ListObjects.Add(xlSrcRange, .Range("$B$5:$F$30"), , xlYes).Name = NomTable
'.ListObjects(NomTable).TableStyle = "TableStyleMedium5"
'End With
End
Sub
Nota :
Pour supprimer la fonctionnalité d'un tableau, utilisez :
Worksheets
(
"Feuil1"
).ListObjects
(
"Table1"
).Unlist
Sub
BoucleTableauxFeuille
(
)
Dim
Ws As
Worksheet
Dim
ListObj As
ListObject
Set
Ws =
Worksheets
(
"Feuil1"
)
For
Each
ListObj In
Ws.ListObjects
MsgBox
ListObj.Name
&
" : "
&
ListObj.Range.Address
&
vbCrLf
&
_
"Style: "
&
ListObj.TableStyle
Next
End
Sub
Dans cet exemple, le tableau se nomme Table1 et contient 4 colonnes.
Sub
AjouteLigneTableau
(
)
Dim
ListObj As
ListObject
Dim
i As
Integer
'Définit le tableau dans la feuille de calcul
Set
ListObj =
Worksheets
(
"Feuil1"
).ListObjects
(
"Table1"
)
'Ajoute une ligne
ListObj.ListRows.Add
'Boucle pour ajouter une info dans chaque cellule de la
'nouvelle ligne.
'(dans cet exemple, le tableau contient 4 colonnes)
For
i =
1
To
4
With
ListObj.Range
(
ListObj.ListRows.Count
+
1
, i)
.Value
=
"info"
&
i
'Modifie la police
'.Font.Name = "Comic sans MS"
'Modifie la taille des cratères
'.Font.Size = 8
End
With
Next
i
End
Sub
Lorsque votre tableau est créé, cliquez sur l'onglet Formules, puis sur le
bouton "Gestionnaire de noms" dans le groupe "Noms définis".
Sélectionnez la ligne correspondant au tableau dans la liste, et cliquez sur le bouton "Modifier".
Vous pouvez indiquer vos annotations dans le champ "Commentaire".
Nota :
Vous constatez que cette opération peut être aussi effectuée sur toute plage nommée.
L'exemple ci-dessous montre comment ajouter un commentaire par macro, pour un tableau nommé "Tableau1":
Sub
AjoutAnnotationTableau
(
)
'Affecte un commentaire
Worksheets
(
"Feuil2"
).ListObjects
(
"Tableau1"
).Comment
=
"Mon commentaire"
'Vérifie le contenu du commentaire
MsgBox
Worksheets
(
"Feuil2"
).ListObjects
(
"Tableau1"
).Comment
End
Sub
Sub
TriTableau
(
)
'Trie par ordre croissant, la deuxième colonne du tableau "Tableau1".
With
ThisWorkbook.Worksheets
(
"Feuil1"
).ListObjects
(
"Tableau1"
).Sort
.SortFields.Clear
.SortFields.Add
Key:=
Range
(
"Tableau1[[#All],[Colonne2]]"
), _
SortOn:=
xlSortOnValues, Order:=
xlAscending, DataOption:=
xlSortNormal
.Header
=
xlYes
.MatchCase
=
False
.Orientation
=
xlTopToBottom
.SortMethod
=
xlPinYin
.Apply
End
With
End
Sub
Un autre exemple qui tri une colonne à partir de son index dans le tableau :
Sub
Test
(
)
'Feuil3.ListObjects(1) définit le premier tableau de la Feuillle nommée Feuil3
Tri_Table Feuil3.ListObjects
(
1
), 2
End
Sub
Sub
Tri_Table
(
Tb As
ListObject, Col As
Integer
)
Dim
objCol As
Range
'On sort si le nombre de colonnes du tableau est inférieur à la valeur
'passée à la sous procédure.
If
Tb.ListColumns.Count
<
Col Then
Exit
Sub
'Définit le champ à trier dans le tableau
Set
objCol =
Tb.ListColumns
(
Col).Range
With
Tb.Sort
'Supprime les tris existants
.SortFields.Clear
'Ajoute un nouveau tri
.SortFields.Add
objCol, xlSortOnValues, xlAscending
'Indique si la première ligne contient les en-têtes
.Header
=
xlYes
'Utilisez True pour exécuter un tri qui respecte la casse
.MatchCase
=
True
'Applique le tri
.Apply
End
With
End
Sub
Sub
FiltreTableau
(
)
'Filtre la deuxième colonne du tableau (Field:=2), pour les
'données commençant par la lettre "A". La procédure n'est pas
'sensible à la casse.
Worksheets
(
"Feuil1"
).ListObjects
(
"Tableau1"
).Range.AutoFilter
_
Field:=
2
, Criteria1:=
"=A*"
'Renvoie la plage de cellules visibles après l'application du filtre.
MsgBox
Worksheets
(
"Feuil1"
).ListObjects
(
"Tableau1"
).Range.Cells.
_
SpecialCells
(
xlCellTypeVisible).Cells.Address
End
Sub
Placez le curseur de la souris dans l'angle inférieur droit du tableau, sur le symbole bleu, jusqu'à l'affichage d'une double flèche inclinée. Ensuite, gardez enfoncé le clic gauche de la souris et déplacez la sélection de cellules pour modifier la dimension du tableau.
Faites un clic droit dans le tableau.
Sélectionnez "Table".
L'option "Convertir en plage" permet de transformer le tableau en plage de cellule standard tout en conservant
le format de style qui était appliqué au tableau.
Vous pouvez ensuite supprimer la mise en forme.
Lorsque vous saisissez une donnée contigüe (par exemple sous un tableau) et que vous appuyez sur la touche "Entrée", un nouvel enregistrement est intégré automatiquement à la table.
Pour annuler cette action :
Cliquez sur la balise active d'options de correction automatique qui s'affiche dès que l'enregistrement est inséré.
L'option "Annuler le développement automatique du tableau" supprime l'ajout de la nouvelle ligne dans le tableau (Si vous
recliquez sur la balise active, l'option devient "Répéter le développement automatique du tableau").
L'option "Arrêter le développement automatique des tableaux" empêche tout nouvel ajout automatique dans le tableau.
L'option "Contrôler les options de correction automatique" permet d'afficher l'onglet "Mise en forme automatique au cours
de la frappe", de la boîte de dialogue "Correction automatique". Elle contient les paramètres pour l'intégration automatique des
nouveaux enregistrements dans le tableau.
Une autre méthode pour afficher la fenêtre "Correction automatique" :
Cliquez sur le bouton "Office".
Cliquez sur le bouton "Options Excel".
Sélectionnez le menu "Vérification".
Cliquez sur le bouton "Options de correction automatique".
Sélectionnez l'onglet "Mise en forme automatique au cours de la frappe".
Décochez l'option "Inclure de nouvelles lignes et colonnes dans le tableau automatiquement" qui permet de
définir le développement automatique du tableau lorsque vous écrivez dans les cellules contigües au tableau.
Cliquez sur le bouton OK pour valider.
Nota :
L'ajout de nouvelles colonnes fonctionne sur le même principe que pour l'insertion de nouvelles lignes.
Sélectionnez une des cellules dans la plage de données.
Utilisez le raccourci clavier Ctrl + Maj + L.
Toutes les cellules contigües à la cellule active sont intégrées dans un nouveau tableau.
Ce n'est pas possible.
Une solution palliative consiste à exporter le contenu du tableau sur un site SharePoint afin que les autres utilisateurs
puissent lire et modifier ces données depuis le serveur. Vous pouvez ensuite synchroniser les données du tableau Excel
avec les données partagées dans SharePoint pour que ces données soient constamment actualisées.
Sub
Test
(
)
'Récupère le type de source pour le premier tableau de la feuille active
MsgBox
Table_TypeSource
(
ActiveSheet.ListObjects
(
1
))
End
Sub
Function
Table_TypeSource
(
listObj As
ListObject) As
String
Select
Case
listObj.SourceType
Case
xlSrcExternal: Table_TypeSource =
"Source de données externes SharePoint"
'0
Case
xlSrcQuery: Table_TypeSource =
"Requête"
'3
Case
xlSrcRange: Table_TypeSource =
"Plage de cellules"
'1
Case
xlSrcXml: Table_TypeSource =
"Fichier XML"
'2
End
Select
Table_TypeSource =
Table_TypeSource &
vbCrLf
&
listObj.Name
End
Function
Lorsque vous êtes dans la dernière cellule de la dernière colonne (hors ligne de totaux), utilisez la touche clavier "Tabulation".
Un nouvel enregistrement est inséré dans le tableau. Il ne vous reste plus qu'à compléter les informations dans la ligne.
Sous Excel 2007, il n'est pas possible d'utiliser la donnée d'une liste de validation directement dans une
référence structurée de tableau.
Pour contourner ce problème, vous pouvez mettre en oeuvre les fonctions
INDEX et EQUIV.
Par exemple, vous disposez d'un tableau nommé 'Tableau1', qui commence dans la cellule A1,
et d'un menu déroulant en H3, qui contient la liste des en-têtes du tableau de données.
Vous désirez extraire des données du tableau, en fonction du nom d'en-tête sélectionné dans la liste de
validation :
La formule suivante renvoie la 8ième ligne de la colonne choisie dans la liste da validation :
=INDEX
(Tableau1[#Tout];8
;EQUIV
(H3
;Tableau1[#En-têtes];0
))
Une formule qui renvoie la valeur maxi de la colonne choisie dans la liste da validation :
=MAX
(DECALER
(A1
;0
;EQUIV
(H3
;Tableau1[#En-têtes];0
)-1
;LIGNES
(Tableau1[#Données]);1
))
Nota :
Le dernier exemple est indicatif. vous pouvez également obtenir la valeur maxi en utilisant les fonctions
'Totaux' d'un tableau.
Cet exemple montre comment placer les en-têtes d'un tableau dans une liste de validation.
En suivant le mode opératoire ci-dessous, le contenu de la liste de validation sera automatiquement redimensionné si vous ajoutez ou supprimez des colonnes dans le tableau de données.
Vous allez tout d'abord nommer la plage de données qui va être utilisée pour la liste de validation. Il s'agit dans notre cas de la première ligne du tableau, contenant le nom des champs, et qui peut être définie par la référence structurée : Tableau1[#En-têtes].
Sélectionnez l'onglet Formules.
Cliquez sur le bouton 'Définir un nom' dans le groupe 'Noms définis'.
Dans le champ 'Nom', indiquez le nom donné à la plage de cellules. Par exemple : ListeChamps.
Dans le champ 'Fait référence à : ', indiquez la référence structurée du tableau : Tableau1[#En-têtes].
Cliquez sur le bouton OK pour valider.
Ensuite, sélectionnez la cellule qui va recevoir la liste de validation.
Sélectionnez l'onglet 'Données'.
Cliquez sur le bouton 'Validation des données' dans le groupe 'Outils des données'.
Sélectionnez l'onglet "Options".
Choisissez 'Liste' dans le champ 'Autoriser'.
Dans le champ 'Source', indiquez le nom que vous avez donné à la plage de cellules, précédé du signe égal
(=ListeChamps).
Cliquez sur le bouton OK pour valider.