With ListObjects("Tableau1").Sort
.SortFields.Clear
.SortFields.Add Key:=Range("Tableau1[Onglet]"), SortOn:=xlSortOnValues, Order:=xlAscending
.Header = xlYes
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Bonjour
Le souci vient que vous utilisez un tableau prédéfini (nouvelle invention Microsoft qui apporte souvent des ennuis dans la gestion des codes. J'aime pas ce truc !)
essayez plutôt ce code à la place de la ligne qui fait défaut
Attention toutefois à vérifier que le nom Tableau1 correspond bien au nom de votre tableau.VB:With ListObjects("Tableau1").Sort .SortFields.Clear .SortFields.Add Key:=Range("Tableau1[Onglet]"), SortOn:=xlSortOnValues, Order:=xlAscending .Header = xlYes .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With
Pour vérifier,
- sélectionnez une cellule dans le tableau
- cliquez sur l'onglet création dans le menu
- A gauche dans l'encart nom du tableau, vous pouvez voir le nom du tableau
Cordialement
bonjour
avec entête
[C5:C200].Sort key1:=[C6],order1:=[C5]:header:=xlyes
sans entête
[C5:C200].Sort key1:=[C5],order1:=[C5]:header:=xlno
.SortFields.Add Key:=Range("Tableau1[Onglet]"), SortOn:=xlSortOnValues, Order:=xlAscending
Quand je pointe et clique ça m'affiche une flèche et ça sélectionne la ligne du tableau sur laquelle je clique respectivement (voir capture d'écran jointe)
Option Explicit
Private Sub Worksheet_Activate()
Dim nf As String, i As Long 'ou Byte
[listing_onglets].Clear
For i = 2 To Sheets.Count
nf = Sheets(i).Name
Me.Hyperlinks.Add Cells(i + 3, 3), "", nf & "!A1", nf
Next
[listing_onglets].Sort [listing_onglets].Item(1, 1), Header:=1
End Sub