Avatar billede faldo Nybegynder
29. september 2000 - 00:48 Der er 7 kommentarer og
1 løsning

makro til at gemme filer i excell

jeg har nu en makro der kan åbne en variabel fil af typen *.dat. Jeg manipulerer lidt med filen og ønsker at gemme den samme sted jeg tog den og med samme navn, men nu som *.xls fil. Hvordan gør jeg det?
Avatar billede ransborg Juniormester
29. september 2000 - 09:08 #1
Du kan benytte dig af følgende macro:
Sub gem()
    ActiveWorkbook.SaveAs Filename:= _
        \"C:\\BIBLIOTEK\\FILNAVN.xls\", FileFormat:=xlNormal, _
        Password:=\"\", WriteResPassword:=\"\", ReadOnlyRecommended:=False _
        , CreateBackup:=False
End Sub

Med venlig hilsen
Claus
Avatar billede faldo Nybegynder
29. september 2000 - 12:32 #2
Det er okay, MEN filen gemmes nu som C:\\bla bla\\filnavn.xls. Hvis jeg gør det med 100 filer, får jeg 100 filer der hedder filnavn. Istedet for \"filnavn\" skal jeg have en variabel der afhænger af hvilken fil jeg har åbnet! - jeg skriver her min åbningsmakro:
Makro3 Makro
\' Makro indspillet 29-09-00 af info
\'
\' Genvejstast:Ctrl+l

\'
\'
    Set variabelWorkbook = ActiveWorkbook
    fileToOpen = Application.GetOpenFilename(\"microsoft data Files (*.dat*),(*.dat*)\")
If fileToOpen <> False Then
  MsgBox \"Open \" & fileToOpen
End If
    MyStr = fileToOpen
        Workbooks.Open FileName:=fileToOpen

nu flytter jeg lidt rundt på data...

og så ønsker jeg at gemme filen med det oprindelige navn, men med .xls
EX: 1407.dat  makro  -  1407.xls

Hvordan får jeg skrevet det variable filnavn ind i gemme-delen?
 
Avatar billede ransborg Juniormester
29. september 2000 - 12:53 #3
Faldo,
Det giver helt automatisk sig selv.
Du skal gøre følgende:
Prøv at åbne filen via din macro.
Start med at lave en ny macro via record:
Vælg \"gem som\"
Omdøb dat til xls
tryk ok
Stop recording.

Hermed kan du bruge macroen til andre filer, som du blot ændre macroen til at hente (filnavn).

Med venlig hilsen
Claus
Avatar billede faldo Nybegynder
29. september 2000 - 13:04 #4
Du forstår ikke helt... Hvis jeg gør det bliver alle filerne gemt som \"filnavn.xls\". De får ikke deres oprindelige navn, f.esk 1407.xls. I gemme makroen skal der vel være en variabel der har værdien af den aktuelle fil?
Avatar billede smoothj Nybegynder
29. september 2000 - 13:39 #5
Her er tre løsningsforslag - jeg ved ikke hvorfor man skal skrive Format(...) rundt om tælleren i tilfældet med rene tal i titlerne, men det virker bedst på den måde.

Sub De_skal_nummereres_i_raekkefoelge_og_jeg_ved_hvor_mange_der_er()
   
For taeller = 1 To 999 \'Her skal du skrive hvor mange åbne filer du har

  ActiveWorkbook.SaveAs FileName:=\"C:\\temp\\\" + Format(taeller) + \".xls\", FileFormat:=xlNormal _
        , Password:=\"\", WriteResPassword:=\"\", ReadOnlyRecommended:=False, _
        CreateBackup:=False
       
  ActiveWorkbook.Close

Next taeller

End Sub
Sub De_skal_beholde_deres_navn_og_jeg_ved_hvor_mange_der_er()
       
For taeller = 1 To 999 \'Her skal du skrive hvor mange åbne filer du har
   
    navn = ActiveWorkbook.Name
   
    ActiveWorkbook.SaveAs FileName:=\"C:\\temp\\\" + navn, FileFormat:=xlNormal _
        , Password:=\"\", WriteResPassword:=\"\", ReadOnlyRecommended:=False, _
        CreateBackup:=False
       
    ActiveWorkbook.Close

Next taeller

End Sub
Sub De_skal_beholde_deres_navn_og_jeg_ved_ikke_hvor_mange_der_er()

    antal = Application.InputBox(\"Hvor mange filer er der ?\")
         
For taeller = 1 To antal

    navn = ActiveWorkbook.Name

    ActiveWorkbook.SaveAs FileName:=\"C:\\temp\\\" + navn, FileFormat:=xlNormal _
        , Password:=\"\", WriteResPassword:=\"\", ReadOnlyRecommended:=False, _
        CreateBackup:=False
       
    ActiveWorkbook.Close

Next taeller

End Sub

Held & Lykke :o]
Avatar billede faldo Nybegynder
29. september 2000 - 14:42 #6
Den vil jeg godt godtage - det virker faktisk. eneste problem er at min fil bliver gemt som .dat fil (da navn=aktuel fil, som jo er en .dat fil) Altså skal jeg have det gemt som du siger det:ActiveWorkbook.SaveAs FileName:=\"C:\\temp\\\" + navn,  men med tilføjelsen at det bliver som navn.xls. Det sker ikke automatisk med den model du har lavet (selvom du har skrevet fileformat=xlnormal. Kan du klare den?
Avatar billede smoothj Nybegynder
29. september 2000 - 15:35 #7
Hmmmm .....

Er der nogen systematik i dine titler ?? Hvis de er lige lange kan du snyde på vedlagte måde:

Sub De_skal_beholde_deres_navn_og_jeg_ved_ikke_hvor_mange_der_er()

    antal = Application.InputBox(\"Hvor mange filer er der ?\")
         
For taeller = 1 To antal

    navn = ActiveWorkbook.Name
    navn2 = Left(navn, 8) \'Hvor 8 er længden af navnet excl. \".dat\"
   
    ActiveWorkbook.SaveAs FileName:=\"C:\\temp\\\" + navn2 + \".xls\", FileFormat:=xlNormal _
        , Password:=\"\", WriteResPassword:=\"\", ReadOnlyRecommended:=False, _
        CreateBackup:=False
       
    ActiveWorkbook.Close

Next taeller

End Sub

Hvis de ikke er lige lange skal jeg lige tænke mig lidt mere om :o]
Avatar billede smoothj Nybegynder
29. september 2000 - 15:43 #8
Så skulle vi vist være i hus:

Sub De_skal_beholde_deres_navn_og_jeg_ved_ikke_hvor_mange_der_er_og_de_er_ikke_lige_lange()

    antal = Application.InputBox(\"Hvor mange filer er der ?\")
         
For taeller = 1 To antal

    navn = ActiveWorkbook.Name
    ldg = Len(navn)
   
    navn2 = Left(navn, ldg - 4) \'For at fjerne \".dat\" fra navnet
   
    ActiveWorkbook.SaveAs FileName:=\"C:\\temp\\\" + navn2 + \".xls\", FileFormat:=xlNormal _
        , Password:=\"\", WriteResPassword:=\"\", ReadOnlyRecommended:=False, _
        CreateBackup:=False
       
    ActiveWorkbook.Close

Next taeller

End Sub

:o]
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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