30. juni 2003 - 08:04Der er
25 kommentarer og 1 løsning
Gemme et sheet fra en workbook som en kopi
Jeg har en Excel woorkbook der bruges til lønberegninger. Nå jeg så har tastet de relevante data ind på et sheet, vil jeg godt have mulighed for at gemme dette sheet som en kopi(meget gerne bare en selection af celler). Helst uden formler og makroer hvis det er muligt, da det vil gøre det vanskeligere at ændre i tallene efterfølgende. Filnavnet har jeg styr på da jeg allerede har lavet så der gemmes en kopi af hele woorkbook'en, men jeg synes det fylder for meget og jeg ville gerne om det var sådan at man ikke kan ændre fordi formlerne er væk.
Så fik jeg det til at fungere som jeg tror jeg gerne vil.
Dog mangler jeg lige det lille problem at hvis filen eksisterer i forvejen, så kommer Excel og spørger om man vil overskrive :-) Normalt vil det ikke være et problem da mit bilagsnummer skifter for hver udskrift og det er den jeg bruger som filnavn.
Jeg synes bare ikke jeg kan finde en parameter der forcer overwrite.
Det kan du vel egentlig have ret i, men som hardcoreprogrammør :-) overser jeg nogen gange ting hvor der ikke er skrevet noget kode. Jeg ved ikke om du kender fornemmelsen?
Jeg skal se om ikke jeg kan huske dig, så du ikke bliver snydt en anden gang.
Jamen det er jeg også overbevist om - det plejer du nok at kunne :-)
Men kan du så fortælle mig hvordan jeg gør så der ingen VBA kode gemmes med i kopien ? Så skal jeg hurtigt få oprettet et pointgivende spørgsmål til dig.
Baggrunden for det hele er at jeg har et regneark til indtastning af lønninger. Disse får et fortløbende bilagsnummer ved udskrift og jeg ønsker så at gemme de indtastede data med udregninger til senere brug. Men VBA koden på de trykknapper jeg har på arket gemmes også, selvom jeg har fået slettet knapperne (sådan gør man åbenbart i M$' verden)
Du kan evt. i Workbook_close hændelsen ligge følgende kode, som sletter et helt modul:
Sub DeleteVBComponent(ByVal wb As Workbook, ByVal CompName As String) ' deletes the vbcomponent named CompName from wb Application.DisplayAlerts = False On Error Resume Next ' ignores any errors wb.VBProject.VBComponents.Remove wb.VBProject.VBComponents(CompName) ' delete the component On Error GoTo 0 Application.DisplayAlerts = True End Sub
Jo - men jeg skal vel sådan set slette det i det øjeblik lige inden jeg gemmer den nye kopi. Det kan jeg ikke lige få til at funke med det kode.
Hvis du skulle have interesse i at se arket, så smid en mailadresse.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.