Liste Nom Onglets actualisée (supp ceux qui n'existent plus)

Bonjour à tous,

Je suis bloqué sur une petite macro actuellement qui met à jour le nom de mes onglets (voir le fichier joint).

Tout fonctionne nickel mais lorsque je supprime une feuille je n'arrive pas à effacer les onglets en trop listés précédemment... J'ai essayé de le faire en sélectionnant ma dernière colonne puis avec un offset de .delete celles qui étaient en plus mais rien de satisfaisant malheureusement Car je ne savais pas trop où m'arreter enfin si avec le : xlEnd... mais pour faire la différence entre les bonnes et les mauvaises à supp...

Quelqu'un aurait-t-il une idée pour me dépanner svp ? Merci d'avance

Kitesurf

Ex dans le fichier : les feuilles 6&7 n'existent plus mais sont toujours présentes dans la liste.

Bonjour,

Private Sub Worksheet_Activate()
    Dim i As Integer
    Cells(6, 4).CurrentRegion.ClearContents
    For i = 1 To Sheets.Count
        Cells(6, 3 + i) = Sheets(i).Name
    Next i
End Sub

Cordialement.

Bonjour MFerrand,

Génial ! Mais si j'ai des choses à gauche ? :/

Oui ma première demande ne précisait pas qu'il y avait des choses à gauche (sur la même ligne) et je m'en excuse.

Kitesurf

Mais si j'ai des choses à gauche ? :/

A toi de ne pas en mettre (ni sur les lignes attenantes)...

Ou tu définis l'ancienne liste autrement, mais il faut l'effacer pour la remplacer.

Cordialement.

Je suis finalement passé par :

Private Sub Worksheet_Activate()
    Dim i As Integer, j As Integer

    For j = 4 To 50

    Cells(6, j).ClearContents

    Next j
    For i = 1 To Sheets.Count
        Cells(6, 3 + i) = Sheets(i).Name
    Next i
End Sub

Mais je ne sais pas si c'est optimal car j'ai mis 50 "au pif" je chercher pour atteindre ma dernière cellule de la ligne contenant du texte

Re,

    Range(Cells(6, 4), Cells(6, 4).End(xlToRight)).ClearContents

Cordialement.

Re Mferrand

J'y étais presque !!!

der_ligne = ActiveSheet.Range("D6").End(xlRight).Column
ActiveSheet.Range("D6:6" & der_ligne).ClearContents

Mais ça ne fonctionnait pas Une petite explication si tu en as une concernant ma solution serait super pour moi !

Merci pour ta solution

Tu appelles ta variable der_ligne (mais tu cherches une colonne), tu te crées des peaux de banane potentielles !

La constante de recherche de fin à droite est : xlToRight (non xlRight).

Ayant un numéro de colonne tu ne peux pas utiliser un adressage avec lettre...

(Et dans une évènementielle, la feuille concernée c'est Me [éviter ActiveSheet, et si l'on vise une autre feuille l'indiquer par son nom pour éviter toute ambiguïté]).

Cordialement.

edit : tu pouvais faire :

    Range("D6").Resize(, der_ligne - 5).ClearContents

Compris !

Merci Mferrand

Rechercher des sujets similaires à "liste nom onglets actualisee supp ceux qui existent"