Pouvez vous m'aider à partir de cette capture, qu'est-ce qui ne va pas ?

anthoYS

XLDnaute Barbatruc
Bonjour,


Merci
 

Pièces jointes

  • xls onglets.png
    xls onglets.png
    80.4 KB · Affichages: 97

Dan

XLDnaute Barbatruc
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

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
Attention toutefois à vérifier que le nom Tableau1 correspond bien au nom de votre tableau.
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
 
Dernière édition:

anthoYS

XLDnaute Barbatruc
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

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
Attention toutefois à vérifier que le nom Tableau1 correspond bien au nom de votre tableau.
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

Merci, ça à marché un instant (j'ai pu accéder à un onglet) puis ça a planté de nouveau.
 

Pièces jointes

  • 1.png
    1.png
    4 KB · Affichages: 40
  • 2.png
    2.png
    13.3 KB · Affichages: 38

anthoYS

XLDnaute Barbatruc
quand je transpose la première feuille vers un nouveau classeur par le biais d'une copie, eh bien, ça marche dans ce cas. Donc mystère.

Tant pis, merci de m'avoir aider jusque là (même si cela ne servira probablement pas)


Bonne soirée !
 

Si...

XLDnaute Barbatruc
Bonsoir

Tableau nommé listing_onglets donc code simple (plus qu'avec l'enregistreur de macro):

VB:
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

Nota : en cas de copie du tableau, la copie change de nom donc réajuster le code avec le nouveau nom.
Il est dommage que beaucoup laissent cet outil de côté car il est performant (quand on sait le manipuler).
 
Dernière édition:

Discussions similaires

Réponses
6
Affichages
205

Statistiques des forums

Discussions
311 725
Messages
2 081 940
Membres
101 845
dernier inscrit
annesof