• 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.

Macro mee kopieren naar nieuw werkblad

Status
Niet open voor verdere reacties.

xmir

Gebruiker
Lid geworden
12 mrt 2011
Berichten
212
Hoi,

Als ik twee van de bv 10 werkbladen kopiëer naar een nieuw bestand kan ik dan ook een van de macro's mee kopiëren?
Ik heb een knop gemaakt om die twee werkbladen te kopiëren maar dan wordt de macro natuurlijk niet meegenomen.
Wat ik heb:
Code:
Private Sub Beta_Opslaan_Click()
    Sheets(Array("BETA", "BETA_DD")).Select
    Sheets("BETA_DD").Activate
    Sheets(Array("BETA", "BETA_DD")).Copy
    ActiveSheet.Shapes.Range(Array("Beta_Opslaan")).Select
    Selection.Delete
    Sheets("BETA_DD").Select
    ActiveWindow.SelectedSheets.Visible = False
End Sub

zijn hier bv de macro's "info" en "mousemenu" aan toe te voegen?

Als jullie een vb bestand nodig hebben of de volledige macro' die achter info en mousemenu zitten dan hoor ik het wel

Dank
 
Laatst bewerkt:
Doe het andersom. Sla het document op als nieuw document (SaveCopyAs) met macro's en verwijder de onnodige werkbladen.
Dan heb je de macro's ook.

Ook kan je per module exporteren en importeren:
Code:
Sub TransferModule()
Const MODULE_NAME    As String = "Misc"         ' Name of the module to transfer
Const TEMPFILE       As String = "c:\Modul.bas" ' temp textfile
Dim WBK As Workbook
   
   On Error Resume Next
   '**Create new workbook
   Set WBK = Workbooks.Add
   
   '** Export the module to a textfile
   ThisWorkbook.VBProject.VBComponents(MODULE_NAME).Export TEMPFILE
  
   'Import the module to the new workbook
   WBK.VBProject.VBComponents.Import TEMPFILE
  
   'Kill the textfile
   Kill TEMPFILE
End Sub
 
Laatst bewerkt:
Ja andersom kan natuurlijk ook alleen moet alles per 2 tabbladen als nieuw bestand opgeslagen worden onder een nieuwe naam. Dat wilde ik automatiseren omdat het uiteindelijk 10 nieuwe bestanden worden die allemaal de betreffende macro moeten bevatten. Ik zie niet helemaal hoe dat met jou tips kan?!
 
Gebruik svp code tags !

Zet de te kopiëren code in de macromudule van een vna de te kopiëren werkbladen.
 
Ja andersom kan natuurlijk ook alleen moet alles per 2 tabbladen als nieuw bestand opgeslagen worden onder een nieuwe naam. Dat wilde ik automatiseren omdat het uiteindelijk 10 nieuwe bestanden worden die allemaal de betreffende macro moeten bevatten. Ik zie niet helemaal hoe dat met jou tips kan?!

Die tips lijken me alleszins duidelijk genoeg.
 
Ik heb je code toegevoegd maar nu worden er twee nieuwe werkbladen aangemaakt: een lege en een gevulde maar beide zonder de module:

Code:
Private Sub Beta_Opslaan_Click()
    Sheets(Array("BETA", "BETA_DD")).Select
    Sheets("BETA_DD").Activate
    Sheets(Array("BETA", "BETA_DD")).Copy
    ActiveSheet.Shapes.Range(Array("Beta_Opslaan")).Select
    Selection.Delete
    Sheets("BETA_DD").Select
    ActiveWindow.SelectedSheets.Visible = False
    Const MODULE_NAME    As String = "Module1"         ' Name of the module to transfer
Const TEMPFILE       As String = "c:\Modul.bas" ' temp textfile
Dim WBK As Workbook
   
   On Error Resume Next
   '**Create new workbook
   Set WBK = Workbooks.Add
   
   '** Export the module to a textfile
   ThisWorkbook.VBProject.VBComponents(MODULE_NAME).Export TEMPFILE
  
   'Import the module to the new workbook
   WBK.VBProject.VBComponents.Import TEMPFILE
  
   'Kill the textfile
   Kill TEMPFILE
End Sub
 
Laatst bewerkt:
Zonder een voorbeeld document is daar weinig over te zeggen.
 
Lees jij de reakties wel ? Gebruik code tags !!
 
bij deze het voorbeeld

Ik heb het bestand even helemaal uitgekleed.
Als je nu op de gele knoppen klikt doet hij in principe wat hij moet doen, namlijk een nieuw bestand aanmaken, een tabblad verbergen en de knop verwijderen. Echter de macro die ervoor zorgt dat je middels de rechter muisknop op de naam kunt klikken en dan extra info krijgt die ontbreekt wat logisch is. Als ik de code van Edmoor toevoeg zoals ik aangaf dan lukt het ook niet; dan krijg ik 2 nieuwe bestanden en beiden zonder de macro.

NB sorry voor de code tags, zal er voortaan aan denken!

Bekijk bijlage voorbeeld forum.xlsm
 
Dat is niet voldoende: je moet het ook toepassen. Dat kan nog in de door jou geplaatste bijdragen.
 
Kon iemand nog wat met mijn voorbeeld of wil ik iets onmogelijks? (Dan sluit ik hem af namelijk).
 
Het werkt anders prima in je eigen voorbeeld document.
Heb je er wel voor gezorgd dat dit:
Code:
Const TEMPFILE       As String = "c:\Modul.bas" ' temp textfile
wordt gedaan naar een map waar je mag schrijven?
Anders gaat het niet werken uiteraard.
Maak er bijvoorbeeld eens dit van:
Code:
Const TEMPFILE As String = Environ("TEMP") & "\Modul.bas" ' temp textfile

Totaal dus dit:
Code:
Private Sub Beta_Opslaan_Click()
    Const TEMPFILE As String = Environ("TEMP") & "\Modul.bas" [COLOR="#008000"]' temp textfile[/COLOR]
    Const MODULE_NAME    As String = "Module1"                [COLOR="#008000"]' Name of the module to transfer[/COLOR]
    Dim WBK As Workbook

    Sheets(Array("BETA", "BETA_DD")).Select
    Sheets("BETA_DD").Activate
    Sheets(Array("BETA", "BETA_DD")).Copy
    ActiveSheet.Shapes.Range(Array("Beta_Opslaan")).Select
    Selection.Delete
    Sheets("BETA_DD").Select
    ActiveWindow.SelectedSheets.Visible = False
  
    On Error Resume Next
    [COLOR="#008000"]'**Create new workbook[/COLOR]
    Set WBK = Workbooks.Add
   
    [COLOR="#008000"]'** Export the module to a textfile[/COLOR]
    ThisWorkbook.VBProject.VBComponents(MODULE_NAME).Export TEMPFILE
  
    [COLOR="#008000"]'Import the module to the new workbook[/COLOR]
    WBK.VBProject.VBComponents.Import TEMPFILE
  
    [COLOR="#008000"]'Kill the textfile[/COLOR]
    Kill TEMPFILE
End Sub
 
Laatst bewerkt:
Hoi Edmoor,

Jou code geeft de foutmelding "Compileerfout: Expressie voor constante vereist" met "Environ" geselecteerd.
Als ik er "u:\Modul.bas" van maak, plek waar ik mag schrijven dan wordt "BETA" aangemaakt zonder het script en een leeg werkblad waar hij dan in zit.
Vreemd dat hij het bij jou in mijn voorbeeld blad wel doet?? Kun je mijn voorbeeld waarin je het werkend hebt terug plaatsen?

Dank voor de moeite!
 
Het is raar dat Environ een foutmelding geeft.
Het lijkt erop dat er iets met je VBA installatie of verwijzingen niet in orde is waardoor de rest ook niet werkt.
Staan deze 4 vinkjes er wel voor je eigen Office versie?

Verwijzingen.png
 
Laatst bewerkt:
draai de macro - F5 - in de macromodule van werkblad 2.
 

Bijlagen

  • _simpel toch.xlsb
    13,3 KB · Weergaven: 66
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan