OK merci à tous
Je suis désolé mais j'ai chercher comment détecter le changement de nom de
la feuille et je n'y parviens pas.
J'ai chercher dans les événement WorkBook mais j'ai rien trouvé.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
michdenis
Bonjour Jean,
Excel ne possède pas une procédure d'événementielle capable de détecter facilement si l'usager à modifier le nom d'une feuille.
Ce qui suit est un petit exemple sur une façon de contourner la situation. Ce code utilise 2 événements particuliers pour annuler la modification du nom de l'onglet d'une feuille fait par l'usager...ce n'est pas parfait, mais tu peux utiliser d'autres événements au besoin et raffiner le code selon les exigences de ton application.
'Dans le haut d'un module standard, la déclaration de ces 2 variables Public Tblo(), T()
Dans le ThisWorkbook de ton classeur : '------------------------------------- Private Sub Workbook_Open()
ListeDesFeuilles
End Sub '------------------------------------- Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
No = Application.WorksheetFunction.Match(Sheets(Sh.Name).Index, Tblo, 0) Sh.Name = T(No) ListeDesFeuilles
End Sub '------------------------------------- Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
No = Application.WorksheetFunction.Match(Sheets(Sh.Name).Index, Tblo, 0) Sh.Name = T(No) ListeDesFeuilles
End Sub
'------------------------------------- Sub ListeDesFeuilles()
Dim B As Integer, A As Integer B = Worksheets.Count ReDim Tblo(1 To B): ReDim T(1 To B)
For A = 1 To Worksheets.Count T(A) = Worksheets(A).Name Tblo(A) = Sheets(Worksheets(A).Name).Index Next
End Sub '-------------------------------------
Salutations!
"Jean" a écrit dans le message de news: 442e5a4c$0$29205$ OK merci à tous Je suis désolé mais j'ai chercher comment détecter le changement de nom de la feuille et je n'y parviens pas. J'ai chercher dans les événement WorkBook mais j'ai rien trouvé.
Pouvez vous m'aider une fois de plus
Jean
Bonjour Jean,
Excel ne possède pas une procédure d'événementielle capable de détecter
facilement si l'usager à modifier le nom d'une feuille.
Ce qui suit est un petit exemple sur une façon de contourner la situation.
Ce code utilise 2 événements particuliers pour annuler la modification
du nom de l'onglet d'une feuille fait par l'usager...ce n'est pas parfait, mais
tu peux utiliser d'autres événements au besoin et raffiner le code selon
les exigences de ton application.
'Dans le haut d'un module standard, la déclaration de ces 2 variables
Public Tblo(), T()
Dans le ThisWorkbook de ton classeur :
'-------------------------------------
Private Sub Workbook_Open()
ListeDesFeuilles
End Sub
'-------------------------------------
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
No = Application.WorksheetFunction.Match(Sheets(Sh.Name).Index, Tblo, 0)
Sh.Name = T(No)
ListeDesFeuilles
End Sub
'-------------------------------------
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
No = Application.WorksheetFunction.Match(Sheets(Sh.Name).Index, Tblo, 0)
Sh.Name = T(No)
ListeDesFeuilles
End Sub
'-------------------------------------
Sub ListeDesFeuilles()
Dim B As Integer, A As Integer
B = Worksheets.Count
ReDim Tblo(1 To B): ReDim T(1 To B)
For A = 1 To Worksheets.Count
T(A) = Worksheets(A).Name
Tblo(A) = Sheets(Worksheets(A).Name).Index
Next
End Sub
'-------------------------------------
Salutations!
"Jean" <jj@free.fr> a écrit dans le message de news: 442e5a4c$0$29205$8fcfb975@news.wanadoo.fr...
OK merci à tous
Je suis désolé mais j'ai chercher comment détecter le changement de nom de
la feuille et je n'y parviens pas.
J'ai chercher dans les événement WorkBook mais j'ai rien trouvé.
Excel ne possède pas une procédure d'événementielle capable de détecter facilement si l'usager à modifier le nom d'une feuille.
Ce qui suit est un petit exemple sur une façon de contourner la situation. Ce code utilise 2 événements particuliers pour annuler la modification du nom de l'onglet d'une feuille fait par l'usager...ce n'est pas parfait, mais tu peux utiliser d'autres événements au besoin et raffiner le code selon les exigences de ton application.
'Dans le haut d'un module standard, la déclaration de ces 2 variables Public Tblo(), T()
Dans le ThisWorkbook de ton classeur : '------------------------------------- Private Sub Workbook_Open()
ListeDesFeuilles
End Sub '------------------------------------- Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
No = Application.WorksheetFunction.Match(Sheets(Sh.Name).Index, Tblo, 0) Sh.Name = T(No) ListeDesFeuilles
End Sub '------------------------------------- Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
No = Application.WorksheetFunction.Match(Sheets(Sh.Name).Index, Tblo, 0) Sh.Name = T(No) ListeDesFeuilles
End Sub
'------------------------------------- Sub ListeDesFeuilles()
Dim B As Integer, A As Integer B = Worksheets.Count ReDim Tblo(1 To B): ReDim T(1 To B)
For A = 1 To Worksheets.Count T(A) = Worksheets(A).Name Tblo(A) = Sheets(Worksheets(A).Name).Index Next
End Sub '-------------------------------------
Salutations!
"Jean" a écrit dans le message de news: 442e5a4c$0$29205$ OK merci à tous Je suis désolé mais j'ai chercher comment détecter le changement de nom de la feuille et je n'y parviens pas. J'ai chercher dans les événement WorkBook mais j'ai rien trouvé.