Avatar billede krogsager Nybegynder
20. juli 2005 - 14:57 Der er 5 kommentarer og
1 løsning

"Næsten" automatisk import fra anden excel fil

I et excel sheet vil jeg gerne, ved tryk på en knap, importere (kopiere) f.eks. celle A5 og B7 ind i aktuelt ark celle C9 og D11. Der skal være en input box som spørger efter hvilken fil der skal importeres fra (Kan man lave en win explorer lignende ting?). Når filen er valgt og der trykkes OK skal værdierne kopieres.
Kan det lade sig gøre?? Nogle gode ideer til en makro??
Avatar billede stewen Praktikant
21. juli 2005 - 22:00 #1
Prøv denne her:

Sub OpenExcelCopyFromFile()

Dim ws As Workbook
Dim ws1 As Workbook
 
  Application.ScreenUpdating = False

Set ws = ActiveWorkbook

fileToOpen = Application _
    .GetOpenFilename("xls fil (*.xls), *.xls")
If fileToOpen <> False Then
    Set ws1 = Workbooks.Open(Filename:=fileToOpen)    'ændret
    End If

Range("A5").Copy
ws.Activate
    Range("C9").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
    Application.CutCopyMode = False
   
ws1.Activate
Range("B7").Copy
ws.Activate
    Range("D11").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
    Application.CutCopyMode = False

ws1.Close savechanges:=False

Application.ScreenUpdating = True

End Sub
Avatar billede krogsager Nybegynder
25. juli 2005 - 09:50 #2
> stewen

Det ser rigtigt ud! en enkelt detalje som jeg gerne vil undgå, er at der kommer en "run-time" fejl, hvis der trykkes "cancel" til Open File dialog boksen. hvordan kan jeg undgå det.
Du må også gerne ligge et svar!
Avatar billede stewen Praktikant
25. juli 2005 - 09:56 #3
Perfekt - har tilføjet en linie!

Sub OpenExcelCopyFromFile()

Dim ws As Workbook
Dim ws1 As Workbook
 
  Application.ScreenUpdating = False

Set ws = ActiveWorkbook

fileToOpen = Application _
    .GetOpenFilename("xls fil (*.xls), *.xls")
If fileToOpen <> False Then
    Set ws1 = Workbooks.Open(Filename:=fileToOpen)
Else: Exit Sub 'INDSAT NY LINIE HER
    End If

Range("A5").Copy
ws.Activate
    Range("C9").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
    Application.CutCopyMode = False
   
ws1.Activate
Range("B7").Copy
ws.Activate
    Range("D11").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
    Application.CutCopyMode = False

ws1.Close savechanges:=False

Application.ScreenUpdating = True

End Sub
Avatar billede krogsager Nybegynder
25. juli 2005 - 10:42 #4
Et lille tillægsspørgsmål (håber det er OK) hvis nu data fra det ark jeg henter, IKKE ligger på "ark1" hvad kalder jeg så referencen?
Avatar billede stewen Praktikant
25. juli 2005 - 10:45 #5
Helt ok!

Sub OpenExcelCopyFromFile()

Dim ws As Workbook
Dim ws1 As Workbook
 
  Application.ScreenUpdating = False

Set ws = ActiveWorkbook

fileToOpen = Application _
    .GetOpenFilename("xls fil (*.xls), *.xls")
If fileToOpen <> False Then
    Set ws1 = Workbooks.Open(Filename:=fileToOpen)
Else: Exit Sub 'INDSAT NY LINIE HER
    End If
Sheets("DITARKNAVN").select
Range("A5").Copy
ws.Activate
    Range("C9").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
    Application.CutCopyMode = False
   
ws1.Activate
Range("B7").Copy
ws.Activate
    Range("D11").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
    Application.CutCopyMode = False

ws1.Close savechanges:=False

Application.ScreenUpdating = True

End Sub
Avatar billede krogsager Nybegynder
25. juli 2005 - 11:14 #6
Mange tak for hjælpen!
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