Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Nom d'une feuille XL imposé par macro

Fredrennes

XLDnaute Junior
Bonjour,

J'ai un bout de code qui est le suivant :

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
For Each sht In ActiveWorkbook.Worksheets
Sheets(sht.name).name = Sheets(sht.name).["Agence_"&B2]
Next
End Sub

Ce bout de code me permet de nommer chaque feuille en fonction de la saisie dans la cellule B2. Mon problème est que ma macro s'applique à toutes les feuilles du classeur (normal puisque je précise dans le code for each sht)....je souhaiterais que la dernière feuille du classeur ne soit pas soumise à cette macro pour lui affecter un nom définitif, comment faire ? Actuellement je nomme cette feuille mais ce nom est modifié qq secondes plus tard sous l'effet de la macro...

Merci beaucoup
Cordialement
 

Gruick

XLDnaute Accro
Re : Nom d'une feuille XL imposé par macro

Bonjour,
Tu fais un test sur le nom que tu as donné et tu exclues ce nom de la modif.
du genre :
if worksheets.name = "le nom donné", then exit sub.
c'est ce qui semble le plus simple.
A plus,
Gruick

PS : Hello PierreJean, heureux de te croiser
 
Dernière édition:

pierrejean

XLDnaute Barbatruc
Re : Nom d'une feuille XL imposé par macro

bonjour Fredrennes

Code:
For Each sht In ActiveWorkbook.Worksheets
 if sht <> sheets(sheets.count) then Sheets(sht.name).name = Sheets(sht.name).["Agence_"& B2]
Next

Salut mon ami Gruick
 

Fredrennes

XLDnaute Junior
Re : Nom d'une feuille XL imposé par macro

En fait j'ai toujours le même problème, j'ai modifié le code tel que :

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
For Each sht In ActiveWorkbook.Worksheets
If sht <> Sheets(Sheets.Count) Then Sheets(sht.Name).Name = Sheets(sht.Name).["Agence_"& B2]
Next
End Sub

Est-ce bien cela que je dois écrire ?

Merci
 

pierrejean

XLDnaute Barbatruc
Re : Nom d'une feuille XL imposé par macro

Re

La derniere feuille est Sheets(Sheets.count)

Si sht n'est pas la derniere feuille on renomme

Edit

Il y avait effectivement une erreur

Teste:

Code:
For Each sht In ActiveWorkbook.Worksheets
 If sht.Name <> Sheets(Sheets.Count).Name Then Sheets(sht.Name).Name = Sheets(sht.Name).["Agence_"& B2]
Next

Note: Le on error resume Next n'est pas utile !!
 
Dernière édition:

Discussions similaires

Réponses
2
Affichages
203
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…