[RESOLU] Problème de décalage dans mon tableau après MAJ des onglets

scoubidou35

XLDnaute Occasionnel
Bonjour à tous,
J'ai créé dans mon fichier dans la feuille MEMBERS un bouton pour me mettre la liste des onglets dans mon tableau.
Le problème que j'ai c'est que si je rajoute ou supprime un onglet l'ensemble du tableau ne suit pas.
Si je rajoute un onglet et que je clic sur le bouton MAJ des onglets, j'ai bien la liste en entête de mon tableau qui se met à jour mais je retrouve avec les droits décalé et inversement si je supprime je me retrouve avec des autorisations d'accès décalé et avec même une colonne avec des accès sans onglet.
Comment faire pour conserver les accès attitré à la colonne?
Merci
A+
 

Fichiers joints

Dranreb

XLDnaute Barbatruc
Bonjour.
VB:
Private Sub CommandButton1_Click()
Dim LOt As ListObject, N As Long, Nom As String, LCnN As ListColumn, LCnX As ListColumn
Set LOt = Me.ListObjects(1)
For N = 1 To ThisWorkbook.Sheets.Count
   Nom = ThisWorkbook.Sheets(N).Name
   Set LCnN = LOt.ListColumns.Add(Position:=N + 5)
   On Error Resume Next: Set LCnX = LOt.ListColumns(Nom): If Err Then Set LCnX = Nothing
   On Error GoTo 0
   If Not LCnX Is Nothing Then
      LCnN.DataBodyRange.Value = LCnX.DataBodyRange.Value
      LCnX.Delete: End If
   LCnN.Name = Nom: Next N
' N = N + 5
' While LOt.ListColumns.Count >= N: LOt.ListColumns(N).Delete: Wend
End Sub
Attention, d'anciennes colonnes correspondant à des feuilles disparues ne sont pas supprimées au cas où elle ne seraient pas vides et que leur contenu, d'une feuille renommée par exemple, devrait être reporté dans une colonne créée. Mais elles se retrouvent en dernier, après une modif apportée dans le code ci dessus (Position:=N + 5 au LOt.ListColumns.Add), de sorte que s'il fallait quand même les supprimer il serait assez facile d'ajouter à la fin, avant la End Sub, un code qui le fasse :
VB:
N = N + 5
While LOt.ListColumns.Count >= N: LOt.ListColumns(N).Delete: Wend
 
Dernière édition:

Discussions similaires


Haut Bas