Avatar billede hjald8 Nybegynder
29. november 2004 - 14:06 Der er 6 kommentarer og
1 løsning

Kopiere fra Excelfil til Excelfil

Jeg har tidligere spurgt. Særdeles uklart. Forsøger derfor igen.

Jeg har 'brygget' følgende kode. Hensigten er at biblioteket er 'præ'-defineret i filen. Dog skal brugeren vælge den fil, som der skal hentes indhold fra. (Der kan ligge flere relevante filer).

Den første del af makroen fungere fint, såsom
1) At gemme excelfilen med korrekt navn/bibliotek
2) Åbn funktion til fil2 og valg af fil2 går fint.
3) Sortering i fil2 og kopi går fint.
men, men ......
4) Valg af fil1 går galt
5) At lukke fil2 går galt.

Håber at nogen kan hjælpe? Det er givet noget med defineringen af de 2 workbooks?

Sub Hent()
    ChDrive "H"
    ChDir "" & Range("Stinavn").Value & ""
    Filnavn1 = "" & Range("FilnavnDV").Value & ""
    ActiveWorkbook.SaveAs Filename:=Filnavn1, FileFormat:=xlNormal
    Filnavn2 = Application.GetOpenFilename
    Workbooks.Open Filnavn2
    Sheets("Ark1").Select
    Cells.Sort Key1:=Range("C2"), Order1:=xlAscending, Header:=xlYes, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
    Cells.Copy
    Windows(Filnavn1).Activate
    Worksheets("opl").Select
    Range("A1").PasteSpecial xlPasteValues
    Windows(Filnavn2).Activate
    ActiveWindow.Close
    Windows(Filnavn1).Activate
    Sheets("Indtastning").Select
End Sub
Avatar billede kabbak Professor
29. november 2004 - 14:38 #1
Sub Hent()
    ChDrive "H"
    ChDir "" & Range("Stinavn").Value & ""
    Filnavn1 = "" & Range("FilnavnDV").Value & ""
    ActiveWorkbook.SaveAs Filename:=Filnavn1, FileFormat:=xlNormal
    Filnavn2 = Application.GetOpenFilename
    Workbooks.Open Filnavn2 ' filenavn2 er her med hele stien
    Filnavn2 = ActiveWorkbook.Name  ' filenavn2 er her kun navnet Excel mappen, det er det du skal arbejde videre med
    Sheets("Ark1").Select
    Cells.Sort Key1:=Range("C2"), Order1:=xlAscending, Header:=xlYes, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
    Cells.Copy
    Windows(Filnavn1).Activate
    Worksheets("opl").Select
    Range("A1").PasteSpecial xlPasteValues
    Windows(Filnavn2).Activate
    ActiveWindow.Close
    Windows(Filnavn1).Activate
    Sheets("Indtastning").Select
End Sub
Avatar billede kabbak Professor
29. november 2004 - 14:47 #2
Sub Hent()
    ChDrive "H"
    ChDir "" & Range("Stinavn").Value & ""
    Filnavn1 = "" & Range("FilnavnDV").Value & ""
    ActiveWorkbook.SaveAs Filename:=Filnavn1, FileFormat:=xlNormal

  Filnavn1 = ActiveWorkbook.Name ' kun navnet uden sti
    Filnavn2 = Application.GetOpenFilename
    Workbooks.Open Filnavn2 ' filenavn2 er her med hele stien
    Filnavn2 = ActiveWorkbook.Name  ' filenavn2 er her kun navnet Excel mappen, det er det du skal arbejde videre med


    Sheets("Ark1").Select
    Cells.Sort Key1:=Range("C2"), Order1:=xlAscending, Header:=xlYes, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
    Cells.Copy
    Windows(Filnavn1).Activate
    Worksheets("opl").Select
    Range("A1").PasteSpecial xlPasteValues
    Windows(Filnavn2).Activate
    ActiveWindow.Close
    Windows(Filnavn1).Activate
    Sheets("Indtastning").Select
End Sub
Avatar billede hjald8 Nybegynder
29. november 2004 - 15:40 #3
Det er bare godt. Læg et svar, det fungerer bare.

Jeg lagde mærke til, at i Fil1 var arket, som der var kopieret ind i - markeret. Kan markeringen nulstilles simpelt? Det kunne jeg med Fil2, som havde meget i udklipsholderen, ved 'Application.CutCopyMode = False'.

Ved lukning af Fil2. Kan man undgå dialogboksen omkring overskrivning af fil, når den lukkes?
Avatar billede kabbak Professor
29. november 2004 - 16:39 #4
Sub Hent()
    ChDrive "H"
    ChDir "" & Range("Stinavn").Value & ""
    Filnavn1 = "" & Range("FilnavnDV").Value & ""
    ActiveWorkbook.SaveAs Filename:=Filnavn1, FileFormat:=xlNormal
  Filnavn1 = ActiveWorkbook.Name ' kun navnet uden sti
    Filnavn2 = Application.GetOpenFilename
    Workbooks.Open Filnavn2 ' filenavn2 er her med hele stien
    Filnavn2 = ActiveWorkbook.Name  ' filenavn2 er her kun navnet Excel mappen, det er det du skal arbejde videre med
    Sheets("Ark1").Select
    Cells.Sort Key1:=Range("C2"), Order1:=xlAscending, Header:=xlYes, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
    Cells.Copy
    Windows(Filnavn1).Activate
    Worksheets("opl").Select
    Range("A1").PasteSpecial xlPasteValues
    Windows(Filnavn2).Activate
Application.DisplayAlerts = False
    ActiveWindow.Close
Application.DisplayAlerts = true
    Windows(Filnavn1).Activate
    Sheets("Indtastning").Select
End Sub
Avatar billede kabbak Professor
29. november 2004 - 16:42 #5
efter disse linier

    Worksheets("opl").Select
    Range("A1").PasteSpecial xlPasteValues

sæt

Range("A1").activate

ind, det vælger A1 i stedet for hele arket
Avatar billede hjald8 Nybegynder
29. november 2004 - 16:54 #6
Tak for det hele.
Avatar billede kabbak Professor
29. november 2004 - 18:28 #7
selv tak ;-))
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