Avatar billede fiberflux Praktikant
05. september 2012 - 19:55 Der er 5 kommentarer og
1 løsning

Hent data fra et excel dokument til et andet

Hej med jer,
Jeg har læst et par af indlægene og svarene her på forummet, og fornemmer at der muligvis er en af jer dig kunne bidrage til at forøge min viden om Excel.
Jeg har et master dokument i Excel, som jeg bruger til at sende  ud til mine kunder, når jeg beregner tilbud. Jeg får fra kunden oplyst en masse varenumre, som jeg så skal prissætte efter en tabel med priser som jeg har i et andet Excel dokument.
I mit Master dokument har jeg en række med antal og en med varenr. og efterfølgende tomme rækker med varebeskrivelse og pris. I mit andet Excel dokument har jeg en række med varenumre samt udfyldte rækker med varebeskrivelse og pris.
Jeg kunne godt tænke mig at når jeg har indsat rækker med antal og varenr. i masterdokumentet, så hentes de øvrige informationer fra mit andet excel dokument.
Kan dette lade sig gøre, og i givet fald hvordan.
Jeg takker mange gange for gode råd og evt. guider.
Mvh Allan
Avatar billede finb Ekspert
05. september 2012 - 21:37 #1
Læs syntax til
=Lopslag()
kopiér ikke-tomme celler,
indsæt speciel >> Værdier
mvh
finb
Avatar billede Slettet bruger
07. september 2012 - 18:56 #2
Fik du løst opgaven?
Hvis ikke er du velkommen til at sende filer der viser opgaven til:
hans.knudsensnabelamail.tele.dk
så skal jeg forsøge at hjælpe.

Hans
Avatar billede tjens Nybegynder
09. september 2012 - 13:54 #3
Jeg har lavet et eksempel i Excel 2010, som du kan downloade her:
http://tjens.dk/eksperten/968502/

Hvis du gemmer i folder C:\Prislister skulle de umiddelbart kunne køre hos dig.

Dog skal du efter download, højreklikke på de 2 regneark, og vælge Egenskaber og klikke på knappen Fjern Blokering, inden din Excel vil acceptere de downloadede regneark med VBA kode i.

Dit ønske kan laves via mange forskellige teknikker, og jeg har valgt at tilgå prislisten via ADO og SQL i eksemplet
I Prisliste arket, er der defineret et Navn, under fane Formler.
Navnet "varer" udpeger de kolonner og rækker der udgør prislisten.

Private Sub BeregnKnap_Click()
   
    PricelistSheetname = ActiveSheet.Range("F2").Value
   
    Dim objAdCon As ADODB.Connection
    Dim objAdRs As ADODB.Recordset
    Dim ConnString As String
   
    Set objAdCon = CreateObject("ADODB.Connection")
   
    objAdCon.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & _
    PricelistSheetname & ";Extended Properties=""Excel 12.0;HDR=No;IMEX=0;Readonly=True"""
    objAdCon.Open
    If Err <> 0 Then
          MsgBox "Create Connection" + vbCrLf + "Error has occured. Error : " & Err
          Set obj_UDF_getRecordset = Nothing
      Exit Sub
    End If
   
    Set objAdRs = CreateObject("ADODB.Recordset")
    objAdRs.CursorLocation = 3
   
    currentRow = 3
    While ActiveSheet.Range("A" & CStr(currentRow)).Value > ""
        getItemPrice currentRow, objAdCon, objAdRs
        currentRow = currentRow + 1
    Wend
   
    Set objAdRs.ActiveConnection = Nothing
    Set objAdRs = Nothing
   
    objAdCon.Close
    Set objAdCon = Nothing
End Sub

Private Sub getItemPrice(row, cn, rs)

    Dim strSQLStatement As String
    strSQLStatement = "SELECT * FROM varer WHERE varenr = '" + ActiveSheet.Range("A" & CStr(row)).Value + "'"
   
    rs.Open strSQLStatement, cn, 1, 3
    If Err <> 0 Then
        MsgBox "Resultset Open failed: " + strSQLStatement + vbCrLf + "Error has occured. Error : " & Err
        rs.Close
        Exit Sub
    End If
    If rs.EOF = True Then
        MsgBox "Item not found in pricelist: " + vbCrLf + strSQLStatement
        rs.Close
        Exit Sub
    End If
   
    ActiveSheet.Range("C" & CStr(row)).Value = rs.Fields("varetekst").Value
    ActiveSheet.Range("D" & CStr(row)).Value = rs.Fields("varepris").Value
    ActiveSheet.Range("E" & CStr(row)).Value = ActiveSheet.Range("B" & CStr(row)).Value * ActiveSheet.Range("D" & CStr(row)).Value
   
    rs.Close
End Sub


Håber det kan bruges
Avatar billede fiberflux Praktikant
10. september 2012 - 02:00 #4
Hej Tjens,
Tak for din fine kommentar.
Jeg har dog ikke været i stand til at hente den fil du refererer til, så muligheden for at teste løsningen har jeg ikke lige haft.
Du må meget gerne tjekke om dit link stadig er aktivt, for jeg vil da meget gerne teste løsningsforslaget.
Avatar billede tjens Nybegynder
10. september 2012 - 12:50 #5
Jeg prøver med adressen som tekst i stedet for link:

tjens.dk/eksperten/968502/

da jeg umiddelbart ikke forstår hvorfor du ikke kan se regnearkene på webserveren.

Linket viser en directoryliste, med to regneark:
Prisliste01.xlsx:  http://tjens.dk/eksperten/968502/Prisliste01.xlsx
Tilbudskalkulation.xlsm:  http://tjens.dk/eksperten/968502/Tilbudskalkulation.xlsm
Avatar billede tjens Nybegynder
12. september 2012 - 15:28 #6
Hermed et svar
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

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