Active Macro lors d'une fermeture

  • Initiateur de la discussion Initiateur de la discussion Stéphanie82
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

S

Stéphanie82

Guest
Bonjour

J'ai une petite question en macro.
J'essaye de renomer une plage de cellule automatiquement dès lors que je ferme une feuille de calcul.

Je ne vois ou est le problème dans mon code.

Mes deux idées de code :

Code:
Private Sub UserForm_Terminate()
Dim O1Down

Set O1Down = Range("O1").End(xlDown)
O1Down.Name = "PLAGE"
Range("A1:PLAGE").Select

Selection.Name = "Contacts"

ActiveWorkbook.Names("PLAGE").Delete
End Sub

2eme code

Code:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Dim O1Down

Set O1Down = Range("O1").End(xlDown)
O1Down.Name = "PLAGE"
Range("A1:PLAGE").Select

Selection.Name = "Contacts"

ActiveWorkbook.Names("PLAGE").Delete
End Sub
 
Re : Active Macro lors d'une fermeture

Bonjour et Bienvenue

essaye ce code et dis nous

Code:
    Dim plage As Range
    Set plage = Range("O1:O" & Range("O65536").End(xlUp).Row)
    On Error Resume Next ' si le nom n'exite pas erreur
    Application.Names("contacts").Delete ' destruction du nom
    On Error GoTo 0 ' rend le getionnaire d'erreur à excel
    Application.Names.Add "contacts", RefersTo:=plage
 
Re : Active Macro lors d'une fermeture

Bonjour Stéphanie, bonjour le forum,

je te propose le code suivant sur l'événement BeforeClose du classeur :

Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim O1Down As Long 'déclare la variable O1down
O1Down = Range("O1").End(xlDown).Row 'définit la variable O1down
Range("A1:O" & O1Down).Name = "Contacts" 'nomme la plage
Range("Contacts").Clear 'efface la plage
ActiveWorkbook.Save 'sauve le classeur
End Sub

Édition :
Ho la la ! pas frais sur ce coup là ! Boujour Astralon, Wilfried
 
Re : Active Macro lors d'une fermeture

Merci pour vos propositions clair et précis
Egalement pour votre acceuil.

j'ai finalement opté sur la proposition de Robert en enlevant les lignes :

Range("Contacts").Clear 'efface la plage
ActiveWorkbook.Save 'sauve le classeur

Bonne journée a tous

^^
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
7
Affichages
176
Réponses
3
Affichages
256
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
4
Affichages
521
Retour