Avatar billede KingMedia Novice
16. april 2006 - 16:37 Der er 29 kommentarer og
1 løsning

VBA: Makro der gemmer ark uden eksisterende makro

Er det muligt når man kører en makro, at få den til at gemme arket på serveren, men uden at tage hele makroen med. Hvis makroen ligger i samtlige filer på serveren, bliver det jo hurtigt til en hel del spildplads.
Avatar billede excelent Ekspert
16. april 2006 - 18:10 #1
denne kode gemmer en kopi af aktuel fil uden makroer (Ark1-3)

Sub Makro2()
    Sheets(Array("Ark1", "Ark2", "Ark3")).Select
    Sheets("Ark3").Activate
    Sheets(Array("Ark1", "Ark2", "Ark3")).Copy
    ActiveWorkbook.SaveAs Filename:="C:\MyFile.xls"
End Sub
Avatar billede excelent Ekspert
17. april 2006 - 09:38 #2
Sub AlleArk()
    Sheets.Copy
    ActiveWorkbook.SaveAs Filename:="C:\MyFile.xls"
    'Workbooks("MyFile.xls").Close savechanges:=False
End Sub
Avatar billede KingMedia Novice
17. april 2006 - 09:43 #3
Hmmm... 
Hvorfor er Workbooks plinget ud ?
Avatar billede KingMedia Novice
17. april 2006 - 09:45 #4
Og det er vel muligt at implementere det i en allerede eksisterende makro ? :)
Avatar billede excelent Ekspert
17. april 2006 - 09:48 #5
hvis du vil lukke kopien under afvikling af koden
Avatar billede excelent Ekspert
17. april 2006 - 09:48 #6
det sku' jeg da mene
Avatar billede KingMedia Novice
17. april 2006 - 09:52 #7
Min Save streng ser iøvrigt således ud

ThisWorkbook.SaveAs strSaveQF25

den bliver så bare gemt på en bestemt sti udfra en del parametre..
Men den gemmer stadig "kopien" med makro ..
Uden makro fylder den ca 50 kb, men med makro fylder filen over 100kb.

og det blir hurtigt til meget spildplads, da der gemmes 6 af dem i døgnet. :-/
Avatar billede excelent Ekspert
17. april 2006 - 09:58 #8
Du kan enten sætte koden ind et passende sted i din kode eller
have den liggende som selvstændig sub, og så køre den inde
fra din kode med Call AlleArk
Avatar billede excelent Ekspert
17. april 2006 - 10:04 #9
Bemærk at jeg bruger ActiveWorkbook.SaveAs Filename:="C:\MyFile.xls"
så gemmes den aktuelle kopi
Hvis jeg brugte ThisWorkbook.SaveAs Filename:="C:\MyFile.xls"
ville filen med makroer blive gemt
Avatar billede excelent Ekspert
17. april 2006 - 10:14 #10
så det må vel blive til :

ActiveWorkbook.SaveAs strSaveQF25

som jeg ser det !
Avatar billede KingMedia Novice
17. april 2006 - 10:15 #11
OK cool ... .  jeg tester lige engang :)
Avatar billede KingMedia Novice
17. april 2006 - 10:17 #12
Hmm.. 

Selvom jeg bruger ActiveWorkbook, så gemmes makroen stadig i den nye fil
Avatar billede excelent Ekspert
17. april 2006 - 10:27 #13
ok den med call er jeg ikke sikker på har lige testet
kan ikke huske hvordan man overfører variabelværdier til anden sub

Når jeg kører min eks. sub, så bliver kopien (den uden makroer)
aktiv formentlig lige efter linien 'Sheets.Copy'
Avatar billede excelent Ekspert
17. april 2006 - 10:29 #14
kan du ikke paste den del af din kode, hvor mine linier indgår ?
Avatar billede KingMedia Novice
17. april 2006 - 10:55 #15
Application.EnableEvents = False
    Application.DisplayAlerts = False
    'ThisWorkbook.SaveAs strSaveQF25
    ActiveWorkbook.SaveAs strSaveQF25
    Application.DisplayAlerts = True
    Application.EnableEvents = True
Avatar billede KingMedia Novice
17. april 2006 - 10:56 #16
ahhh... smart..  jeg glemte Sheets.Copy
Avatar billede excelent Ekspert
17. april 2006 - 10:56 #17
tror det skal være sådan

Application.EnableEvents = False
    Application.DisplayAlerts = False
    'ThisWorkbook.SaveAs strSaveQF25
    Sheets.Copy  '* 
    ActiveWorkbook.SaveAs strSaveQF25
    Application.DisplayAlerts = True
    Application.EnableEvents = True
Avatar billede KingMedia Novice
17. april 2006 - 10:59 #18
Hmmm nu virker det..

Eneste problem jeg har nu er, at jeg har felter med grå baggrund. de blir nu rødlige ?
Avatar billede excelent Ekspert
17. april 2006 - 11:00 #19
øhh ?
Avatar billede KingMedia Novice
17. april 2006 - 11:02 #20
Jeg har et ark (en trykrapport til indrapportering af produktion i vores trykkeri)
Hvor hvert andet felt nedaf er med grå baggrund.. for at kunne skelne nemmere mellem dem .

i kopien bliver den baggrund rødlig ? :-s
Avatar billede excelent Ekspert
17. april 2006 - 11:03 #21
prøver lige det her også (laver felter med grå)
Avatar billede KingMedia Novice
17. april 2006 - 11:05 #22
Hmmm Nu begynder det at hænge sammen
Jeg kan se at baggrundsfarvepaletten ikke er den samme i kopien og originalen ..
i org. ligger en grå farve, mens der på samme plads i kopien ligger en sandfarve :S
Avatar billede excelent Ekspert
17. april 2006 - 11:06 #23
jeg kan ikke umiddelbart se forskel på mine grå celler efter kørsel
Avatar billede KingMedia Novice
17. april 2006 - 11:09 #24
Nej .. men tror det er fordi der er brugt "brugerdefinerede" farver. Så de ligger i paletten nederst... 
Ved du om der er en mulighed for at "overføre" paletten til kopien ?
Avatar billede excelent Ekspert
17. april 2006 - 11:09 #25
er dine grå celler frembragt ved alm formatering i arket, eller
via makro ?
Avatar billede excelent Ekspert
17. april 2006 - 11:09 #26
hmm ikke umiddelbart
Avatar billede KingMedia Novice
17. april 2006 - 11:11 #27
det grå er lavet ved alm formatering...
Avatar billede excelent Ekspert
17. april 2006 - 12:57 #28
kan ikke lige finde en løsning på dit formateringsproblem- desværre
Avatar billede KingMedia Novice
17. april 2006 - 20:50 #29
Det må jeg selv lige hitte mig ud af så .

men smid lige et svar, du fik løst mit største problem :)
Avatar billede excelent Ekspert
17. april 2006 - 21:16 #30
ok :-)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester