Avatar billede zack Nybegynder
03. februar 2003 - 16:08 Der er 19 kommentarer og
1 løsning

Ændring af modulkæde

Jeg har følgende programkode:

ChDir "C:\Documents and Settings\Jesper Knudsen\Dokumenter\Visual"
    Workbooks.Open FileName:= _
        "C:\Documents and Settings\Jesper Knudsen\Dokumenter\Visual\468.xls"
    Range("A1:E5").Select
    Range("E5").Activate
    Selection.Copy
    ActiveWindow.Close
    Range("B12").Select
    ActiveSheet.Paste
    Range("G16").Select

End Sub

Som det ses, åbner makroen et projektmappe ved navn "468.xls" Det jeg gerne vil have, er at den åbner den værdi der står i arkets celle A1. Eksempelvis hvis det i celle A1 står værdien "901", så skal der åbnes projektmappen "901".

Hvad skal der ændres i koden, for at dette sker.
Avatar billede bak Forsker
03. februar 2003 - 16:33 #1
Filnavn=range("a1").value
ChDir "C:\Documents and Settings\Jesper Knudsen\Dokumenter\Visual"
    Workbooks.Open FileName:= _
        "C:\Documents and Settings\Jesper Knudsen\Dokumenter\Visual\" & Filnavn
Avatar billede bak Forsker
03. februar 2003 - 16:36 #2
Sorry, jeg så ikke lige at du brugte tal.

Filnavn=Cstr(range("a1").value)& ".xls"
ChDir "C:\Documents and Settings\Jesper Knudsen\Dokumenter\Visual"
    Workbooks.Open FileName:= _
        "C:\Documents and Settings\Jesper Knudsen\Dokumenter\Visual\" & Filnavn
Avatar billede zack Nybegynder
03. februar 2003 - 16:38 #3
tak...
Avatar billede bak Forsker
03. februar 2003 - 18:00 #4
selv tak. virker det ??
Avatar billede zack Nybegynder
03. februar 2003 - 18:08 #5
ja... det skal vist lige finjusteres... vender lige hurtigt tilbage...
Avatar billede zack Nybegynder
03. februar 2003 - 18:30 #6
Sådan ser min ud nu:

Sub Makro16()
'
' Makro16 Makro
' Makro indspillet 03-02-03 af Bo Vang Nielsen
'

'
    Application.CutCopyMode = False
    Filnavn = Range("b1").Value
    Workbooks.Open FileName:="\\Fs1\DATA\EM\Kalkulationer\Kalk 2003\" & Filnavn, _
        UpdateLinks:=3
    Rows("3:58").Select
    Selection.Copy
    Windows("Mappe7.xls").Activate
    Rows("3:58").Select
    ActiveSheet.Paste
    Windows("468.xls").Activate
    ActiveWindow.Close
    Range("A4:B4").Select
End Sub

Problemet er nu:

1. At den henviser til "468" længere nede... her skal den henvise til samme sytem som forinden.
2. Når den skal lukke "468" ned, så spørger den om, ændringer skal gemmes, og om der kan frigøres hukommelse. Disse melding skal der svsres automatisk nej til.

Kan dette lade sig gøre?
Avatar billede bak Forsker
03. februar 2003 - 18:42 #7
fjern
Windows("468.xls").Activate
ActiveWindow.Close

og erstat med
Workbooks(Filnavn).Close savechanges:=False
Avatar billede zack Nybegynder
03. februar 2003 - 19:14 #8
Jeg tror den er der nu.. jeg kan dog først rigtigt teste det imorgen...
Avatar billede zack Nybegynder
04. februar 2003 - 12:12 #9
Nu er den ved at være der... den kommer dog med et en fejl:

Kørselsfejl "9"

Indekset er uden for området

Kan man ikke få den til at ignorere denne fejlbesked?

Et lille tillægsspørgsmål (sig til, hvis du vil have flere points).

Kan man få den til at, altid at hente fra det forreste ark i projektmappen?

Dette skyldes, at den i øjeblikket kun tager fra det ark der er aktiveret, når den åbner regnearket.

Sub Makro16()
'
' Makro16 Makro
' Makro indspillet 03-02-03 af Bo Vang Nielsen
'

'
    Application.CutCopyMode = False
    Filnavn = Range("b1").Value
    Workbooks.Open FileName:="\\Fs1\DATA\EM\Kalkulationer\Kalk 2003\" & Filnavn, _
        UpdateLinks:=3
    Rows("3:58").Select
    Selection.Copy
    Windows("Mappe7.xls").Activate
    Rows("3:58").Select
    ActiveSheet.Paste
    Workbooks(Filnavn).Close savechanges:=False
    Range("A4:B4").Select
End Sub
Avatar billede bak Forsker
04. februar 2003 - 13:15 #10
Til dit spm. 2
Indsæt denne linie

Workbooks.Open FileName:="\\Fs1\DATA\EM\Kalkulationer\Kalk 2003\" & Filnavn, _
        UpdateLinks:=3

  Sheets(1).Select

  Rows("3:58").Select
Avatar billede bak Forsker
04. februar 2003 - 13:15 #11
Hvilken linie markerer den kørselsfejl i (debug, gul linie)
Avatar billede zack Nybegynder
04. februar 2003 - 13:24 #12
Hehe.. du skal vist have nogle flere points...

Denne linie er markeret:

Workbooks(Filnavn).Close savechanges:=False

Iøvrigt.... den lukker ikke det ark ned, som den henter data fra... hvis du kan løse det... så er du sgu en gud...;-)
Avatar billede bak Forsker
04. februar 2003 - 15:16 #13
prøv lige at ændre linien med Filnavn
Filnavn = range("B1").value & ".xls"
Avatar billede zack Nybegynder
04. februar 2003 - 15:24 #14
Nu er den vist ved at være der.... det eneste der skal væk nu, er at den ikke skal spørge om, den må frigøre hukommelse...
Avatar billede bak Forsker
04. februar 2003 - 15:41 #15
sæt lige denne linie på til slut
Application.CutCopyMode = False
Avatar billede zack Nybegynder
04. februar 2003 - 15:45 #16
Hmm... den kommer stadigvæk...

Application.CutCopyMode = False
    Filnavn = Range("C4").Value & ".xls"
    Workbooks.Open FileName:="\\Fs1\DATA\EM\Kalkulationer\Kalk 2003\" & Filnavn, _
        UpdateLinks:=3
    Sheets(1).Select
    Rows("3:58").Select
    Selection.Copy
    Windows("TestKalk.xls").Activate
    Rows("12:67").Select
    ActiveSheet.Paste
    Workbooks(Filnavn).Close savechanges:=False
    Range("A4:B4").Select
    Application.CutCopyMode = False
   
End Sub
Avatar billede bak Forsker
04. februar 2003 - 17:45 #17
Du får lige en forkortet version:
Sub nr3()
    Application.CutCopyMode = False
    Filnavn = Range("C4").Value & ".xls"
    Workbooks.Open Filename:="c:\" & Filnavn, UpdateLinks:=3
    Sheets(1).Rows("3:58").Select
    Selection.Copy Destination:=Workbooks("Testkalk.xls").Sheets(1).Range("A12")
    Workbooks(Filnavn).Close savechanges:=False
    Range("A4:B4").Select
    Application.CutCopyMode = False
End Sub
Avatar billede bak Forsker
04. februar 2003 - 17:46 #18
Husk lige at skrive rigtig sti ind
Avatar billede zack Nybegynder
04. februar 2003 - 17:52 #19
okay... tjekker det senere i aften...
Avatar billede zack Nybegynder
04. februar 2003 - 21:19 #20
Så virker det... 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
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