Avatar billede spoi Nybegynder
02. april 2007 - 12:01 Der er 8 kommentarer og
1 løsning

hente data fra en fil

Hej jeg har en masse filer.

Jeg har en kanp på hver fil. Når jeg trykker op denne knap vil jeg gerne hente data fra en datafil og overføre til det på gældende ark.

Eks datafil.
1  B        C        D
2  Kundenr  komcept  mønster
3  2000    AAA      2

Filen jeg står i - hvor knappen er hedder feks 2000v.xls

Jeg vil så gerne hente data for kunde 2000 over i denne fil. feks AAA skal stå i D5 og 2 skal stå i K3

Der er mange kunder i datafilen

Nogen der kan og vil hjælpe?

LN
Avatar billede spoi Nybegynder
02. april 2007 - 14:13 #1
Nu har jeg fundet ud af lidt af det men mangler stadig en del

Sub TestGetValue()
    p = "\\xxxx\xxxx\xxxxx\xxxx\Versionsstyring"
    f = "vedligeholdelsesark.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(5, 3) = GetValue(p, f, s, a)
            a = Cells(5, 4).Address
            Cells(8, 6) = 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

Jeg står i den fil data skal overføres til. Filens navn dvs xxxxv.xls skal benyttes til at slå op efter i vedligeholdelsesarket. Dvs xxxx skal slås op i kolonne B og det er så den række der hendes data fra

LN
Avatar billede supertekst Ekspert
02. april 2007 - 14:42 #2
Ellers er der her et bud:

Const dataSti = "C:\Documents and Settings\pb\Skrivebord\"      'tilpasses
Const dataFilNavn = "dataFil"                                  'tilpasses
Dim kNrRæk, knr
Sub knap()
Rem kundenr fra aktuellefil-navn
    knr = Left(ActiveWorkbook.Name, 4)
   
    hentFraDatafil Val(knr)
End Sub
Private Sub hentFraDatafil(knr)
Dim xls
    Set xls = CreateObject("Excel.application")
    With xls
        .Workbooks.Open Filename:=dataSti + dataFilNavn
        kNrRæk = .ActiveCell.SpecialCells(xlLastCell).Row
       
        For ræk = 3 To kNrRæk
            If knr = .Cells(ræk, 2) Then
                ActiveWorkbook.Sheets(1).Cells(5, 4) = .Cells(ræk, 3)
                ActiveWorkbook.Sheets(1).Cells(3, 11) = .Cells(ræk, 4)
                Set xls = Nothing
                Exit Sub
            End If
        Next ræk
    End With
    Set xls = Nothing
    MsgBox ("Kundenr. " + knr + " ikke fundet")
End Sub
Avatar billede spoi Nybegynder
02. april 2007 - 20:10 #3
du er supersej Supertekst ;O)
Det prøver jeg straks i morgen tidlig.

LN
Avatar billede spoi Nybegynder
03. april 2007 - 14:51 #4
Det fungerer perfekt

Men jeg kan kun finde ud af at lægge koden på en knap.

Kan den ikke lægges på en kommandoknap

Har en masse andre kommandoknapper og det ser jo pænere ud med ens knapper

LN
Avatar billede supertekst Ekspert
03. april 2007 - 15:37 #5
Den knap, som du opretter skal forbindes med
Sub Knap()

Er det i en værktøjslinie, som knappen oprettes på?
Avatar billede spoi Nybegynder
04. april 2007 - 06:25 #6
Nej bare i excelfilen - men vil gerne have en kommandoknap i stedet for en alm knap

LN
Avatar billede spoi Nybegynder
04. april 2007 - 06:27 #7
ja jeg får koden til at virke med en alm kanp. Lige bortset fra at datfilen ligesom hænger bagefter - først hvis jeg genstarter maskinen kan jeg komme ind i min datafil igen og skrive.
LN
Avatar billede spoi Nybegynder
10. oktober 2007 - 06:49 #8
Det viste sig at jeg kunne undgå alt det her.
Men jeg synes der skal point til - absolut.
Så læg et svar;O)
LN
Avatar billede supertekst Ekspert
10. oktober 2007 - 08:25 #9
Det får du så...
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