Détection feuille copiée

mécano41

XLDnaute Accro
Bonjour à tous,

Quelqu'un connaîtrait-il un moyen direct équivalent à : Sub Workbook_NewSheet(ByVal Sh As Object) pour détecter la création d'une nouvelle feuille par duplication (Clic droit sur un onglet, Déplace ou Copier...etc)

Pas trouvé, dans le forum, de solution autre que créer une nouvelle feuille puis traiter la copie...tout cela juste pour pouvoir changer automatiquement le nom du nouvel onglet...

Merci d'avance.

Cordialement
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Cette procédure est exécutée à l'occasion de l'opération manuelle:
VB:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
MsgBox Sh.Name & " Workbook_SheetActivate"
End Sub
Il reste à bien veiller à ce qu'elle reste sans effet lorsqu'on active seulement une feuille existante
 

Dranreb

XLDnaute Barbatruc
Non, Staple1600, il semble que tu n'ai rien compris.
Il veut créer sa feuille manuellement. Mais il veut par contre aussi que son nom lui soit attribué automatiquement selon une règle dont il a le secret. Il y aurait bien eu la Workbook_NewSheet pour ça, mais le problème c'est qu'il ne la crée pas à partir de rien mais à partir d'une feuille existante. Et dans ce cas l'évènement NewSheet n'est pas décrété.
 

mécano41

XLDnaute Accro
Bonjour à tous,

Merci pour vos réponses. C'est exactement ce que vient de dire Dranreb au #6. Si l'on utilise l'événement de la feuille à copier comme déclencheur, cela se déclenche bien suite à l'action de copie (clic droit...etc) on peut faire les opérations de renommage, mais je ne trouve pas de solution pour ne pas que cela se déclenche lors d'un changement d'onglet.

Ce n'est pas grave, de toute manière je vais faire autrement mais cela aurait été bon à savoir...

Cordialement
 

Pièces jointes

  • Renommage suite à duplication de feuille1.xlsx
    8.6 KB · Affichages: 12

Dranreb

XLDnaute Barbatruc
Bonjour.
Comme ça ça marche chez moi :
VB:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
On Error Resume Next
If Sh.Name Like "Cas* (*)" Then Sh.Name = "Cas" & ThisWorkbook.Sheets.Count - 1
End Sub
Étonnant que vous n'y ayez pas pensé.
C'est probablement parce que vous avez cherché à ce que ça ne se déclenche pas, ce qui n'est pas possible, au lieu de chercher à faire en sorte que ça reste sans effet, comme j'avais dit.
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
314 450
Messages
2 109 726
Membres
110 552
dernier inscrit
jasson