Avatar billede spoi Nybegynder
10. april 2007 - 13:05 Der er 9 kommentarer og
1 løsning

hente data fra anden excelfil

Hej. Jeg har følgende stump kode jeg gerne vil have hjælp til at tilrette. Og jeg er ret grøn

I versions - filen er der en masse rækker med data. I kolonne B står kundenummeret feks 2000

Hver fil jeg henter data fra hedder kundenr+v.cls feks 2000v.xls

Jeg skal nu sikre at jeg henter data fra den rette række dvs den række med rette kundenummer i kolonne B

I kodekesmlet er det fra række 5 der hentes data fra. Det tal skulle jeg så gerne kunne finde autoamtisk.
Alle filer data skal over i er ens bortset fra navnet på filerne.

Nogen der har et forslag????

Sub TestGetValue()
    p = "\\sti\Versionsstyring"
    f = "version.xls"
    s = "Ark1"
    a = "A1"
    Application.ScreenUpdating = False
       
            a = Cells(5, 2).Address
            Cells(3, 3) = GetValue(p, f, s, a)
            a = Cells(5, 3).Address
            Cells(11, 3) = GetValue(p, f, s, a)
            a = Cells(5, 4).Address
            Cells(15, 3) = GetValue(p, f, s, a)
   
     
      Application.ScreenUpdating = True
End Sub

Private Function GetValue(path, file, sheet, ref)
'  Retrieves a value from a closed workbook
    Dim arg As String

'  Make sure the file exists
    If Right(path, 1) <> "\" Then path = path & "\"
    If Dir(path & file) = "" Then
        GetValue = "Filen findes ikke"
        Exit Function
    End If

'  Create the argument
    arg = "'" & path & "[" & file & "]" & sheet & "'!" & _
      Range(ref).Range("A1").Address(, , xlR1C1)

'  Execute an XLM macro
    GetValue = ExecuteExcel4Macro(arg)
End Function


LN
Avatar billede koppelgaard Praktikant
11. april 2007 - 08:01 #1
Sub LæsKundeData()

    kundenr = ActiveCell.Value
    MyPath = "c:\kunder\Versionsstyring\"
    Filename = kundenr & "v.xls"
    Workbooks.Open Filename:=MyPath & Filename
   
   
    kunderow = Columns("B").Find(What:="2000", After:=ActiveCell, LookIn:=xlValues, LookAt:= _
    xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext).Row ' række som kunden findes i
   
    'Hent data:
    Navn = Cells(kunderow, 3)
    adresse = Cells(kunderow, 3)
    kontoNr = Cells(kunderow, 4)
    saldo = Cells(kunderow, 5)
   
    Kundestreng = Navn & ", " & adresse & ", " & kontoNr & ", " & saldo
   
    MsgBox "Kundedata: " & Kundestreng
   
    Workbooks(Filename).Close

End Sub
Avatar billede koppelgaard Praktikant
11. april 2007 - 08:06 #2
Forklaring til ovenståede
Jeg er ikke helt sikker på at jeg forstår dig.

Men jeg har lavet en kode, som skal have kundenr som input.
Kundenr står i den aktive celle
Makroen åbner filen, som er konstrueret ud fra kundenr.
Derefter findes den række, hvor kundenummeret står.
Makroen hente derefter data fra cellerne til højre for kundenr.
Makron lukke kundefilen.

Se på om du kan bruge det og meld tilbage !
Avatar billede spoi Nybegynder
11. april 2007 - 08:13 #3
Nej kundenummer er filnavnet på den fil jeg står i og skal hente data til

Prøver lige med dit forslag med lidt tilrettelse og melder så tilbage

LN
Avatar billede spoi Nybegynder
11. april 2007 - 13:29 #4
hmm kom ikke til at bruge dette overhovedet - nok nærmere den modsatte vej dvd i stedet for at hente data fra en stor fil - står ma i den store fil og overfører til de enkelte filer afhængigt af kundenummer

Men vil da godt giev nogle af pointene alligevel feks halvdelen - hvad siger du til det?

Jeg er sikker på jeg kan bruge det du har lavet en anden gang - så helt spildt er det ikke

LN
Avatar billede koppelgaard Praktikant
12. april 2007 - 12:51 #5
Jamen det er fint, med pointene.
Ked at at jeg ikke kunne hjælpe dig.
Måske kan du hente data fra filen uden at åbne det. Det mener jeg man kan.
Det kan jeg undersøge hvis du er interesseret ?
Avatar billede spoi Nybegynder
18. april 2007 - 07:00 #6
ja det må du da gerne ;O)

LN
Avatar billede koppelgaard Praktikant
13. maj 2007 - 11:53 #7
Undskyld jeg havde helt glemt dig.
Jeg har endnu ikke fundet et svar. Jeg har travlt med en eksamesopgave.
Vender tilbage
Avatar billede koppelgaard Praktikant
25. maj 2007 - 11:06 #8
Du kan ikke skrive eller laase i en lukket Excel fil, har jeg endelig fundet ud af ved at sporge Kabbak.

Michael
Avatar billede bak Forsker
25. maj 2007 - 13:30 #9
Man kan sagtens læse fra en lukket excel fil. Det er straks lidt sværere at skrive til en (men ikke umuligt)

Et almindelig LOPSLAG / VLOOKUP kan godt læse i en lukket fil.
Makroen fra spørgsmålet læser også i en lukket fil.
Avatar billede spoi Nybegynder
10. oktober 2007 - 06:11 #10
mange tak for jeres hjælp
Jeg er lige på point runde - noget bagefter - har haft travlt - er der ingen der vil have point???

LN
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