Suppression de macro à la fin d'un fichier

Gwendoline

XLDnaute Junior
Bonjour à tous,

J'ai mis cette inputbox dans le thisWoorkbook de mon fichier pour une ouverture :

Sub Superior()
Message = InputBox("Quelle est votre Puissance supérieure:", "Puissance supérieure")

Range("H63") = Message
End Sub

A la fin, je fais en sorte que mon fichier s'enregistre sous un autre nom. Mais par la suite, je ne sais pas comment désactiver ou supprimer l'inputbox sur à l'ouverture de ce nouveau fichier.

Existe-il une possibilité de le faire?

Merci.
 

pierrejean

XLDnaute Barbatruc
Re : Suppression de macro à la fin d'un fichier

Bonjour Gwendoline

A tester:
Controler le nom du fichier :

Sub Superior()
if thisworkbook.name <> 'le nom du fichier original' then exit sub
Message = InputBox("Quelle est votre Puissance supérieure:", "Puissance supérieure")

Range("H63") = Message
End Sub
 

john

XLDnaute Impliqué
Re : Suppression de macro à la fin d'un fichier

Bonjour,

Il y a cette solution !!

Sub Workbook_Open()
Call Superior
End Sub
Sub Superior()
Message = InputBox("Quelle est votre Puissance supérieure:", "Puissance supérieure")

Range("H63") = Message
Call DelMacro
Application.Dialogs(xlDialogSaveAs).Show
End Sub


'Option Explicit

' la Macro à supprimer est nommée Workbook_Open, Superior et DelMacro dans module ThisWorkbook
' Cocher Outils | Références Microsoft Visual Basic for Applications
'Extensibility 5.3
'Cette macro supprime tout le code vba (parce que demandé) qui se trouve dans le module "ThisWorkbook", mais possibilité de supprimer module par module :eek:)

Sub DelMacro()
Dim Debut As Long
Dim NbLignes As Long
With ThisWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule
Debut = .ProcStartLine("Workbook_Open", 0)
NbLignes = .ProcCountLines("Workbook_Open", 0)
.deleteLines Debut, NbLignes 'supprime ce qui se trouve dans Workbook_Open
End With
With ThisWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule
Debut = .ProcStartLine("Superior", 0)
NbLignes = .ProcCountLines("Superior", 0)
.deleteLines Debut, NbLignes 'supprime ce qui se trouve dans le module Superior
End With
With ThisWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule
Debut = .ProcStartLine("DelMacro", 0)
NbLignes = .ProcCountLines("DelMacro", 0)
.deleteLines Debut, NbLignes 'supprime ce qui se trouve dans le module DelMacro

End With
End Sub
----------------------------------------------------------

Ou celle-ci si on veut vraiment supprimer TOUT le code qui se trouve dans ThisWorkbook

Sub DelMacro()
On Error Resume Next
Dim Debut As Long
Dim NbLignes As Long
Debut = 1
NbLignes = ActiveWorkbook.VBProject.VBComponents("Thisworkbook").CodeModule.CountOfLines 'compte le nbr de lignes total de ThisWorkbook
Application.DisplayAlerts = False
ThisWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule.deleteLines Debut, NbLignes 'suppression totale de TOUT le code
End Sub
Bonne journée.

John
 
Dernière édition:

Gwendoline

XLDnaute Junior
Re : Suppression de macro à la fin d'un fichier

Bonjour Gwendoline

A tester:
Controler le nom du fichier :

Sub Superior()
if thisworkbook.name <> 'le nom du fichier original' then exit sub
Message = InputBox("Quelle est votre Puissance supérieure:", "Puissance supérieure")

Range("H63") = Message
End Sub

Je suppose que cette VBA doit se mettre dans le ThisWorkbook?
 

Discussions similaires

Statistiques des forums

Discussions
312 310
Messages
2 087 119
Membres
103 478
dernier inscrit
Frederic Lagger