• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Activesheet.copy zonder private subs

Status
Niet open voor verdere reacties.

angelokonijn

Gebruiker
Lid geworden
14 mrt 2011
Berichten
18
Hallo iedereen,

Ik ben bezig met een excelsheet waarbij ik een button heb geplaatst die de actieve sheet kopieert en vervolgens de button (en nog wat checkboxen) verwijderd. Dit gaat allemaal prima maar hij kopieert wel de private subs onder de buttons en checkboxen mee naar de nieuwe sheet. Dit wil ik voorkomen aangezien de orginele excelsheet doorborduurt op de nieuw gemaakte sheet en dan in de knoop raakt.

Is het mogelijk dat de gehele sheet wordt gekopieerd (inclusief lay-out, formules, voorwaardelijke opmaak etc.) alleen zonder de VBA codes?

Of is het mogelijk dat wanneer ik Commandbutton1 verwijder, de onderliggende code ook automatisch wordt verwijderd?

Of is het mogelijk dat ik de code van commandbutton 1 kan aanpassen dat deze automatisch alle private subs van de nieuw gecreerde sheet verwijderd?

Ik zit al een tijdje te zoeken maar heb nog geen geschikte oplossing gevonden voor dit specifieke probleem. Ter verduidelijking heb ik een versimpeld excelbestandje toegevoegd. Bekijk bijlage Test code verwijderen.xls
 
Ik heb de code gekopieerd onder de sub van commandbutton 1 (na het kopieren van de sheet), maar als ik op deze commandbutton klik dan wordt de bladcode in de nieuw aangemaakte sheet nog niet verwijderd. Welke aanpassingen moeten er in de code gedaan worden om hem te laten werken?
 
Code:
Private Sub CommandButton1_Click()
Dim Doc As Object, Sht As String, VBproj As Object
ActiveSheet.Copy After:=ActiveSheet
With ActiveSheet
    .Name = .Range("A1")
    .Shapes("CommandButton1").Delete
    For i = 1 To 3
        .Shapes("Checkbox" & i).Delete
    Next
    Sht = .CodeName
End With
    Set VBproj = Application.VBE.ActiveVBProject
    Set Doc = VBproj.VBComponents.Item(Sht).CodeModule
    With Doc
       .DeleteLines 1, .CountOfLines
    End With
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan