Avatar billede dougheffernan Nybegynder
17. juli 2003 - 11:10 Der er 14 kommentarer og
1 løsning

Gemme .xlt fil som .xls

Jeg har overført nogle data fra en access database til en Excel-skabelon, som jeg ønsker at gemme som en .xls fil, så skabelonen ikke bliver ændret, selvfølgelig. Men når jeg overfører data vha. VBA, vil regnearket som standard foreslå at gemme i selve skabelonen, når brugeren klikker på Luk.
Kan jeg i VBA oprette en .xls fil på baggrund af data fra Access, med skabelonen som "filter"?
Avatar billede kol Nybegynder
17. juli 2003 - 11:28 #1
Hvad med ganske enkelt når du vælger "Filer > Gem Som" at vælge Filtype som "Microsoft Excel-projektmappe"?
Det synes at være løsningen på dit problem.

Hilsen KOL
Avatar billede bak Forsker
17. juli 2003 - 11:42 #2
Denne linie vba opretter en ny fil (c:\test.xls") på baggrund af den aktive fil (xlt-filen)

ActiveWorkbook.SaveAs "c:\test.xls"
Avatar billede kol Nybegynder
17. juli 2003 - 11:48 #3
Er der ikke en tendens til, at selv de mindste problemer absolut skal løses ved hjælp af VBA?
Jeg synes, at det i mange tilfælde er at gå over åen efter vand.

Intet opstød, blot en kommentár.

bak  Når jeg engang har et passende komplekst problem, vil jeg spørge dig om noget VBA, som jeg ikke selv er skrap til.

Hilsen KOL
Avatar billede bak Forsker
17. juli 2003 - 11:56 #4
Kol -> så vidt jeg kan se, spørges der til en VBA-løsning, men ellers har du da ret i holde tingene så enkle som muligt.
Avatar billede kol Nybegynder
17. juli 2003 - 12:03 #5
bak  Du har selvfølgelig ret, men jeg tolkedes spørgsmålet "i min retning" og tror at den sidste bemærkning skyldes "VBA-syndromet"
Vi får se når spørgeren reagerer.

Hilsen KOL
Avatar billede dougheffernan Nybegynder
17. juli 2003 - 14:14 #6
Well, sagen er den at når jeg overfører data fra Accessformularen, sker der vha. VBA og data lægges så ind i templaten, i stedet for et nyt regneark BASERET på templaten. (om man så kan lave det som en makro i stedet for i VBA, det ved jeg ikke, brugeren skal SELV have mulighed for at gemme som den første, dvs. programmet skal IKKE selv gemme det nyoprettede regneark, kun foreslå et navn a la worksheet1.xls)
Avatar billede bak Forsker
17. juli 2003 - 14:48 #7
Ok, så prøv dette:

Dim Filnavn As String
Filnavn = Application.GetSaveAsFilename("Workbook1.xls")
If Not Filnavn = False Then ActiveWorkbook.SaveAs Filnavn
Avatar billede fagpoler Novice
17. juli 2003 - 14:53 #8
Her er en kode som jeg har fået af kabbak, som kan bruges.

Sub gem()
ChDir "C:\Mappe_x" Mappen skal oprettes på PC, du kan kalde den hvad du vil

    Flt = "Excel mappe(*.xls),*.xls,"
    Flt = Flt & "Print-filer (*.prn),*.prn,"
    Flt = Flt & "Tekst-filer(*.txt),*.txt"
    Titel = "Gem Bilag Som!"
    Filnavn = Application.GetSaveAsFilename(, Flt, 1, Titel)
    If Filnavn = False Then GoTo Afbryd
    On Error GoTo Afbryd
    ActiveWorkbook.SaveAs Filnavn
   
   
Afbryd:
    ActiveWorkbook.Save
    ActiveWorkbook.Close
End Sub
Avatar billede fagpoler Novice
17. juli 2003 - 14:57 #9
en lille rettelse
Sub gem()
ChDir "C:\Mappe_x"' Mappen skal oprettes på PC, du kan kalde den hvad du vil

    Flt = "Excel mappe(*.xls),*.xls,"
    Flt = Flt & "Print-filer (*.prn),*.prn,"
    Flt = Flt & "Tekst-filer(*.txt),*.txt"
    Titel = "Gem Bilag Som!"
    Filnavn = Application.GetSaveAsFilename(, Flt, 1, Titel)
    If Filnavn = False Then GoTo Afbryd
    On Error GoTo Afbryd
    ActiveWorkbook.SaveAs Filnavn
   
   
Afbryd:
    ActiveWorkbook.Save
    ActiveWorkbook.Close
End Sub
Avatar billede dougheffernan Nybegynder
17. juli 2003 - 15:55 #10
Ja, noget derhenad..... Jeg kigger på det, tilretter og vender tilbage.
Avatar billede dougheffernan Nybegynder
18. juli 2003 - 11:33 #11
hmmm....og alligevel ikke, så lad mig spørge på en anden måde:
Hvordan kan man oprette et nyt regneark fra VBA ved brug af en på forhånd defineret template (.xlt)?
Altså a la når man på skrivebordet højre-klikker og vælge Ny -> Microsoft Excel-regneark.
Avatar billede dougheffernan Nybegynder
18. juli 2003 - 11:34 #12
Den nye fil bliver lavet på baggrund af standard templaten normal.xls, right?
Avatar billede bak Forsker
18. juli 2003 - 11:54 #13
Der findes ikke en normal.xls i excel,
Hvis du vil lave en ny fil på baggrund af en anden template så test det her.
Du ærdrer bare sti og navn til Skabelon.

Sub Macro2()
Dim Filnavn As String
Dim Skabelon As String
Dim wb As Workbook
Skabelon = "C:\Documents and Settings\xxx\Application Data\Microsoft\Templates\testskabelon.xlt"
Set wb = Workbooks.Add(template:=Skabelon)
Filnavn = Application.GetSaveAsFilename("Workbook1.xls")
If Not Filnavn = "False" Then wb.SaveAs Filnavn
End Sub
Avatar billede palle_ib Nybegynder
24. juli 2003 - 08:44 #14
Bare en kommentar - jeg har en skabelon .xlt med en Pivotabel og den opdaterer på forspørgsel de data specificeret i en Access Query.
Måske var det en alternativ løsning. Dataene bliver trukket over via et SQL kald som er defineret i Pivotabellen. Bare en alternativ løsning som så vidt jeg kan se det løser mange af de ønsker du skriver om.
Avatar billede dougheffernan Nybegynder
29. juli 2003 - 09:14 #15
Takker for de mange forslag, resultatet var at lave det som en .xls fil og skrivebeskytte den, det opfylder vores krav. Lukker spørgsmålet igen.
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