Hi,
Ben nieuw op dit forum en ik hoop dat iemand me in de goede richting kan duwen.
Ik heb een Excel met veel macro's. Een knop op 1 van de eerste sheets maakt alle andere sheets aan
die ik nodig heb, en er wordt een subroutine aangeroepen om programmatisch code toe te voegen aan een sheet code blok.
De sub is als volgt:
Dit doet precies wat ik wil, maar op het moment dat de sub wordt aangeroepn wordt automatisch VBA (de macro editor zeg maar) geopend.
Dit gebeurt ook als ik alleen het Excel workbook heb geopend.
Ik kan echter niet achterhalen waar en of en hoe ik kan voorkomen dat VBA wordt geopend als dit stukje code runt.
Heeft iemand hier een idee ?
Alvast bedankt,
Hans
Ben nieuw op dit forum en ik hoop dat iemand me in de goede richting kan duwen.
Ik heb een Excel met veel macro's. Een knop op 1 van de eerste sheets maakt alle andere sheets aan
die ik nodig heb, en er wordt een subroutine aangeroepen om programmatisch code toe te voegen aan een sheet code blok.
De sub is als volgt:
Code:
Sub make_code()
Dim VBProj As VBIDE.VBProject
Dim VBComp As VBIDE.VBComponent
Dim CodeMod As VBIDE.CodeModule
Dim LineNum As Long
Const DQUOTE = """"
Set VBProj = ActiveWorkbook.VBProject
Set VBComp = VBProj.VBComponents(Sheets("Laatste 16").CodeName)
Set CodeMod = VBComp.CodeModule
With CodeMod
LineNum = .CreateEventProc("Change", "Worksheet")
LineNum = LineNum + 1
.InsertLines LineNum, " Dim r As Range, c As Range"
LineNum = LineNum + 1
.InsertLines LineNum, " Set r = Intersect(Target, Range(" & DQUOTE & "H20:H22" & DQUOTE & "))"
LineNum = LineNum + 1
.InsertLines LineNum, " If Not r Is Nothing Then"
LineNum = LineNum + 1
.InsertLines LineNum, " For Each c In r"
LineNum = LineNum + 1
.InsertLines LineNum, " If Len(c.Value) = 0 Then"
LineNum = LineNum + 1
.InsertLines LineNum, " Call DropDownListToDefault"
LineNum = LineNum + 1
.InsertLines LineNum, " End If"
LineNum = LineNum + 1
.InsertLines LineNum, " Next c"
LineNum = LineNum + 1
.InsertLines LineNum, " End If"
End With
Set VBProj = Nothing
Set VBComp = Nothing
Set CodeMod = Nothing
End Sub
Dit doet precies wat ik wil, maar op het moment dat de sub wordt aangeroepn wordt automatisch VBA (de macro editor zeg maar) geopend.
Dit gebeurt ook als ik alleen het Excel workbook heb geopend.
Ik kan echter niet achterhalen waar en of en hoe ik kan voorkomen dat VBA wordt geopend als dit stukje code runt.
Heeft iemand hier een idee ?
Alvast bedankt,
Hans