Rajouter 3 ligne de code dans le module "thisworkbook" d'excel a l'aide de VB6

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 !

57.scheider

XLDnaute Junior
Hello tout le monde

Je souhaiterais rajouter 3 lignes de code dans le module "thisworkbook" d'excel a l'aide de visual basic 6. j'ai trouvé ce code


Dim X As Integer
Dim Wb As Workbook
Dim VBComp As VBComponent

Set VBComp = Wb.VBProject.VBComponents.Add(1)
VBComp.Name = "ThisWorkbook"

With VBComp.CodeModule
X = .CountOfLines
.InsertLines X + 1, "Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)"
.InsertLines X + 2, "Call UpdateColorsWorkbook"
.InsertLines X + 3, "End Sub"

End With


Par contre le logiciel plante sur cette ligne

Dim VBComp As VBComponent


Savez vous pourquoi ?

Merci
 
Re : Rajouter 3 ligne de code dans le module "thisworkbook" d'excel a l'aide de VB6

Bonjour,

Il te manque certainement des références aux bibliothèque idoines:
Visual Basic for Application
Microsoft Visual Basic for Application And Extensibility X.y

A+
 
Re : Rajouter 3 ligne de code dans le module "thisworkbook" d'excel a l'aide de VB6

Re,

Je n'ai plus visual basic 6 sur ma machine mais je crois me rappeler qu'il faut passer comme dans VBE par Outils/références.

Ou Référence du projet? Je ne sais plus. En tout cas dans l'éditeur de code VB6

A+
 
Re : Rajouter 3 ligne de code dans le module "thisworkbook" d'excel a l'aide de VB6

C'est bon j'ai rajouté les bibliotheque pas contre je recois ce message d'erreur "Run time '91': Object variable or with block variable not set"
Pour cette ligne
VBComp.Name = "ThisWorkbook"

Merci MJ13
Mais avec ton code je recois le message d'erreur
Ru-time error '1004': Method 'thisworkbook' of object '_Global" failed

L'erreur par lorsque je remplace
Set VBComp = ThisWorkbook.VBProject.VBComponents("ThisWorkbook")
par
Set VBComp = Workbooks.VBProject.VBComponents("ThisWorkbook")


Par contre j'ai l'impression que la fonction "VBProject" n'est toujours pas reconnu, je recois le message d'erreur
"Compile error: Method or data member not found" avec "VBProject" de surligné dans Excel

Pourtant j'ai bien rajouté les references
Microsoft Visual basic for applications Extensibility 5.2
Microsoft Office Excel 11 Object library (j'ai excel 2003)
Microsoft Office Excel 12 Object library
Visual basic for application
et OLE automation
 
Dernière édition:
Re : Rajouter 3 ligne de code dans le module "thisworkbook" d'excel a l'aide de VB6

Finalement ca marche avec ce code


Sub AddProcedureToModule()
Dim VBProj As VBIDE.VBProject
Dim VBComp As VBIDE.VBComponent
Dim CodeMod As VBIDE.CodeModule
Dim LineNum As Long
Const DQUOTE = """" ' one " character

Set VBProj = ActiveWorkbook.VBProject
Set VBComp = VBProj.VBComponents("Module1")
Set CodeMod = VBComp.CodeModule

With CodeMod
LineNum = .CountOfLines + 1
.InsertLines LineNum, "Public Sub SayHello()"
LineNum = LineNum + 1
.InsertLines LineNum, " MsgBox " & DQUOTE & "Hello World" & DQUOTE
LineNum = LineNum + 1
.InsertLines LineNum, "End Sub"
End With

End Sub
 
- 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

Discussions similaires

Retour