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

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
 
G

Guest

Guest
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+
 
G

Guest

Guest
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+
 

57.scheider

XLDnaute Junior
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:

57.scheider

XLDnaute Junior
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
 

Discussions similaires

Statistiques des forums

Discussions
315 297
Messages
2 118 173
Membres
113 444
dernier inscrit
Yves GUIBERT