code voor verwijderen module1

Status
Niet open voor verdere reacties.

Ad4Jansen

Gebruiker
Lid geworden
20 jun 2007
Berichten
130
Heren/dames,

Is er een code voor het verwijderen van een 1 of meerdere module bladeren.

Wij sturen vanuit excel een deel van een bestand naar de klant dit doen we door alleen de relevante bladen te bewaren de rest verwijderen we uit het originele bestand.
Alleen blijven nu natuurlijk wel de macro's bestaan.

Alvast bedankt voor de snelle antwoorden

Ad
 
Code:
Sub verwijder_macromodule()
    With ThisWorkbook.VBProject
        .VBComponents.Remove .VBComponents("[COLOR="Teal"]Macroos_1[/COLOR]")
    End With
End Sub

wijzig de naam van de module naar je eigen situatie.
het is handig als de verwijdermacro niet in de te verwijderen module staat
 
SNB wat gaat er mis?

Bedankt heren, ik wil gaan voor de eenvoud en kies de methode van SNB maar dan krijg ik de volgende foutmelding

Fout 1004
Methode VBProject van object_workbook is mislukt :evil:

Code:
Sub verwijder_macromodule()


    With ThisWorkbook.VBProject
    .VBComponents.Remove .VBComponents("Module1")
    End With
End Sub
 
Heb je de beide caveats in acht genomen.
Waar heb je de verwijdercode staan ?
 
dit is de totale code

SNB
de eerder genoemde code heb ik gekopieerd uit module1
In feite is het jou code waarin ik alleen Macroos_1 heb vervangen door module1 :o

de code voor het verwijderen staat in module2



Ad
 
En dan hopelijk niet in het persnlk.xls ?

test eventueel met
c0=thisworkbook.fullname
c1=thisworkbook.VBproject.vbcomponents.count
 
het gaat niet

SNB bedankt voor je hulp tot nu toe....

De code staat in Module1 van het betreffende document niet in persoonlijk.

De test code die je geeft loopt ook vast op.......

c1 = ThisWorkbook.VBProject.VBComponents.Count

Wil je zo vriendelijk zijn om een simpel documentje hieraan te hangen met werkende code
Dan kan ik vergelijken met wat ik tot nu toe heb.


Alvast bedankt
Ad
 
In de bijlage:

een workbook met
4 macromodules (Module1 t/m Module4)
3 macro's: moduleweg_1, moduleweg_2 en moduleweg_3
deze 3 macro's staan:
in Thisworkbook: Sub moduleweg_1()
in Blad1: Sub moduleweg_2()
in Module4: Sub moduleweg_3()
 

Bijlagen

het zal aan mij liggen maar.......

SNB,

Wanneer ik de eerste macro start krijg ik de fout melding 400 ok / help

de tweede krijg ik methode vbproject van object_workbook is mislukt

De derde geeft hetzelfde als de eerste fout 400 ok help


Ik weet ik ben een hopeloos verhaal maar wat kan er hier aan de hand zijn?

Alvast bedankt

Ad
 
Kijk eens in de VBEditor (Alt-F11) bij Extra/verwijzingen.

Bij mij staan de volgende aangevinkt:

- Visual Basic for applications
- Microsoft Excel xx Object library
- Microsoft Office xx Object Library
- OLE automation
 
Ad, heb je wel de introduction gelezen op de pagina van Chip Pearson waaraan ik refereerde? Meer bepaald:
First, you need to set an reference to the VBA Extensibililty library. The library contains the definitions of the objects that make up the VBProject. In the VBA editor, go the the Tools menu and choose References. In that dialog, scroll down to and check the entry for Microsoft Visual Basic For Applications Extensibility 5.3. If you do not set this reference, you will receive a User-defined type not defined compiler error.
 
ik heb nu vijf optie aangevinkt maar.....

SNB / Wigi,

Ik had de 4 opties die SNB noemde al (waarschijnlijk) standaard al aanstaan en vervolgens heb ik die van Wigi erbij gezocht maar krijg nog steeds de boven gemelde fouten.

Morgen ga ik het eens op mijn werk proberen :(

Een domme vraag misschien het heeft toch niets met office 2003 te maken want daar werk in nog steeds mee.....

Ad
 
het lukt niet.......

Ook op mijn werk niet.......:(

Ik krijg dezelfde meldingen als thuis.......

Ad
 
Het heeft niet met de versie (2000, 2003 of 2007) te maken.
Je krijgt altijd een foutmelding als je de stapsgewijze methode (F8) voor de utivoering van de macro gebruikt. Als je dan op negeren klikt wordt de macro gewoon uitgevoerd.
Als je de macro gewoon laat lopen krijg je die melding niet.
Eventueel kan je virusscanner roet in het eten gooien (de macro wijzigt nl. de macrostruktuur van het bestand). Kontroleer wat er gebeurt als je die uitschakelt.

Ik hoop dat je niets aan mijn code veranderd hebt, want dan is het beoordelen van het bij jou optredende effekt niet mogelijk.

Kijk eens wat het effekt is als je voor de code de regel on error resume next zet.

Overigens is er een alternatief om een kopie van een werkblad zonder macro's op te slaan. Zorg dat er alleen macro's staan in een macromodule, userform of klassemodule. Dan kun je louter de werkbladen kopiëren naar een nieuw werkboek met:

Code:
Sub tst()
    Sheets(Split("Blad1|Blad2|Blad3|Blad4|Blad5", "|")).Copy
    ActiveWorkbook.SaveAs "E:\OF\bestand zonder macroos.xls"
    ActiveWorkbook.Close False
End Sub
 
Laatst bewerkt:
bedankt snb

Hoi SNB dat alternatief werkt goed:D

Klein vraagje nog waar staat de "l" voor in je onderstaande code?:o

Sheets(Split("Blad1|Blad2|Blad3|Blad4|Blad5", "|")).Copy


Ad
 
Split zorgt ervoor dat een stuk tekst (Blad1|Blad2|Blad3|Blad4|Blad5) gesplitst wordt op een bepaald karakter. De componenten komen automatisch in een array terecht. Hier is dat karakter uiteraard het "pipe symbol" | zodat je een array krijgt met daarin de bladnamen.

Wigi
 
bedankt wigi voor de aanvulling

Dus die laatste "l" is dus niet bedoelt als een L :D:shocked:

Bedankt voor de toelichting

Ad
 
Bedankt allemaal

Bedankt:thumb: voor de geboden hulp ik heb inmiddels het alternatief van SNB verwerkt in mijn macrobestand.

Het werkt perfect op deze manier.......:thumb::thumb::thumb:

Bedankt
Ad
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan