Avatar billede grontoft Nybegynder
11. oktober 2009 - 20:42 Der er 18 kommentarer og
1 løsning

Makro der gemmer med filnavn incl dato fra bestemt celle i ark

Hej!

Kan man lave en makro der kan indsættes i ark og gemme arket (evt en hel projektmappe) med dets filnavn plus et datostempel fra regnearket?

For eksempel har jeg lavet en post med en bestemt dato. Datoen er afgørende for arkets udseende og derfor vil jeg gerne gemme arket (eller hele projektmappen) med en unik identifikation som for eksempel datoen.

Gode point til den der har svaret!
Avatar billede excelent Ekspert
11. oktober 2009 - 21:35 #1
ActiveWorkbook.SaveAs ThisWorkbook.Name & Range("A1").Value & ".xls"
Avatar billede excelent Ekspert
11. oktober 2009 - 21:39 #2
Den gemmer i den aktive mappe (sti)
Hvis du gemmer den samme Projektmappe blot med ny dato, er den måske ikke så hensigtsmæssig ?
Avatar billede grontoft Nybegynder
11. oktober 2009 - 21:43 #3
Projektmappen skal gerne have det samme filnavn hver gang, for eksempel:

Haveredskaber_11-10-09.xls
Haveredskaber_12-10-09.xls

osv.
Avatar billede excelent Ekspert
11. oktober 2009 - 21:47 #4
ok, Hvor skal dato hentes, og hvad med mappe/sti ?
Avatar billede grontoft Nybegynder
11. oktober 2009 - 21:53 #5
Dato skal hentes i ark1 celle B7 (i den åbne projektmappe, forståes :) )
Mappe/Sti ?? hvad mener du? Projektmappen ligger i Dokumenter på D drevet...
Avatar billede grontoft Nybegynder
11. oktober 2009 - 21:54 #6
Celle B7: Datoen retter jeg til hver gang jeg er inde og ændre i projektmappen.
Avatar billede excelent Ekspert
11. oktober 2009 - 21:59 #7
ok ellers må du sige til, hvis der skal sti med

ActiveWorkbook.SaveAs "Haveredskaber" & "_" & Sheets("Ark1").Range("B7").Value & ".xls"
Avatar billede grontoft Nybegynder
11. oktober 2009 - 22:01 #8
Hvordan sætter jeg det ind i arket?
Avatar billede excelent Ekspert
11. oktober 2009 - 22:20 #9
Tast ALT+F11, Vælg Module i Menuen Insert - indsæt kode der

Sub GemFil()
ActiveWorkbook.SaveAs "Haveredskaber" & "_" & Sheets("Ark1").Range("B7").Value & ".xls"
End Sub

Opret evt. en knap via Formular-menuen og tildel den makroen "GemFil"
Avatar billede grontoft Nybegynder
11. oktober 2009 - 22:42 #10
Takker mange gange. Kunne ikke få det til at virke i første omgang. Men det var fordi det var en fejl 40. Havde glemt at man lige skal gemme det først og så også gerne hvor makroer er aktiveret... Men nu virker det!


Tak for kommentaren, men vil du også give mig et svar? ;)
Avatar billede excelent Ekspert
11. oktober 2009 - 22:44 #11
jada velbekom :-)
Avatar billede grontoft Nybegynder
12. oktober 2009 - 19:27 #12
Jeg har lige et spørgsmål mere:

Nu har jeg mange videoer. Og jeg låner dem gerne ud til mine venner. Når de låner en video får de en seddel med hvor der står hvad de har lånt og hvor længe de må låne den.

Det er lidt forskelligt hvor mange der låner videoer, derfor er det forskelligt hvor mange der skal have sådan en seddel. Jeg har i mit regnskabsark et ark (ark2) hvor alle de sedler er, der er lavet 5 sedler, men det er ikke altid der er behov for at alle sedler skal skrives ud (for eksempel hvis der kun er 2 den dag der har været hjemme hos mig og låne en video).

Jeg kunne tænke mig at jeg havde en boks (ud for hvert navn der har lånt en video) jeg vingede af, og så blev de sedler skrevet ud når jeg trykkede på en kommando knap.

Ydermere kunne det være fint hvis den sub du lavede til mig gemte de sedler jeg havde skrevet ud.

Er det muligt?
Avatar billede excelent Ekspert
12. oktober 2009 - 21:33 #13
Nu ved jeg ikke hvordan dit layout er, men prøv denne
OBS. anvend Checkboxe fra Kontrolelementmenuen

Sub BoxVærdi()
Sheets("Ark2").Select
For nr = 1 To ActiveSheet.OLEObjects.Count
If ActiveSheet.OLEObjects("Checkbox" & nr).Object = True Then x = x + 1
Next
If x <= 0 Then ActiveSheet.PageSetup.PrintArea = "" ' Hvis ingen flueben er sat
If x = 1 Then ActiveSheet.PageSetup.PrintArea = "$A$1:$D$10" ' Ret selv områderne til
If x = 2 Then ActiveSheet.PageSetup.PrintArea = "$A$1:$D$20" ' i disse 5 linier
If x = 3 Then ActiveSheet.PageSetup.PrintArea = "$A$1:$D$30"
If x = 4 Then ActiveSheet.PageSetup.PrintArea = "$A$1:$D$40"
If x = 5 Then ActiveSheet.PageSetup.PrintArea = "$A$1:$D$50"
End Sub
Avatar billede excelent Ekspert
13. oktober 2009 - 15:38 #14
Hvis Checkboxene ikke er i rækkefølge 1-5  så anvend denne:

Sub BoxVærdi2()
Dim bx As OLEObject
Sheets("Ark2").Select
For Each bx In ActiveSheet.OLEObjects
If bx.Object = True Then x = x + 1
Next
If x <= 0 Then ActiveSheet.PageSetup.PrintArea = "" ' Hvis ingen flueben er sat
If x = 1 Then ActiveSheet.PageSetup.PrintArea = "$A$1:$D$10" ' Ret selv områderne til
If x = 2 Then ActiveSheet.PageSetup.PrintArea = "$A$1:$D$20" ' i disse 5 linier
If x = 3 Then ActiveSheet.PageSetup.PrintArea = "$A$1:$D$30"
If x = 4 Then ActiveSheet.PageSetup.PrintArea = "$A$1:$D$40"
If x = 5 Then ActiveSheet.PageSetup.PrintArea = "$A$1:$D$50"
End Sub
Avatar billede grontoft Nybegynder
13. oktober 2009 - 20:53 #15
Vil det (i dit sidste indlæg) så betyde, at hvis det er person nr 1; 2; 4 der har lånt video, så checker jeg dem af og får en seddel?
Avatar billede excelent Ekspert
13. oktober 2009 - 22:09 #16
Koden forudsætter at du starter med nr 1 (øverst i arket) og checker af
Er der flere, så fotsæt med nr 2 og så fremdeles

dvs. at flueben i box1 (øverste) gir udskriftområde A1:D10
og flueben i både box1 og 2 gir udskrift af A1:A20
Avatar billede grontoft Nybegynder
27. oktober 2013 - 14:08 #17
Hej Excelent!

Håber du læser denne tråd, selv om den er gammel!

Men jeg har tænkt på om det er muligt at skrive en sti hvor den skal  gemme filen. Lige nu gemmer den filen i Dokumenter, men ville gerne have den til at gemme i en anden mappe på D drevet.
Avatar billede excelent Ekspert
27. oktober 2013 - 18:56 #18
Prøv med
ActiveWorkbook.SaveAs "D:\mappe?\mappe?\Haveredskaber" & "_" & Sheets("Ark1").Range("B7").Value & ".xls"

slet/tilføj mapper efter behov - ret mappe? til aktuel mappenavn
Avatar billede grontoft Nybegynder
27. oktober 2013 - 20:28 #19
Takker mange gange!
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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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