Avatar billede bennyn Nybegynder
07. august 2012 - 22:00 Der er 3 kommentarer og
1 løsning

Hente data fra fil2 ind i fil1

Jeg har to excel filer

Den ene indeholder medlemsdata, med medlemsnummeret som id
Den anden indeholder data på kontaktpersoner for medlemmet, men med medlemsnummeret som id

Kan man flette data fra kontaktperson arket ind i medlemsarket.

kontaktperson arket indeholder 2 kontaktpersoner for samme medlem (far & mor) så der skal altså indsættes ekstra kolonner i ark 1 der svarer til fars navn, fars adresse, fars email osv)
Jeg kan ligge arkene online hvis nogen har mod på det
Avatar billede supertekst Ekspert
07. august 2012 - 23:03 #1
Via VBA skulle det nok kunne lade sig gøre.
Avatar billede bennyn Nybegynder
07. august 2012 - 23:05 #2
Ja, men kan du hjælpe ?
Avatar billede supertekst Ekspert
07. august 2012 - 23:21 #3
Ja - vil godt gøre et forsøg.

Filer kan evt. sendes direkte - @-adresse under min profil.
Avatar billede supertekst Ekspert
09. august 2012 - 08:57 #4
Rem Fælles
Const startRække = 2
Dim aktuelleSti As String

Rem MedlemsData
Const startKolonneKontaktPersoner = 25
Dim sidsterække As Long, ræk As Long
Dim medlemsNr As Long
Dim arkM As Worksheet, rM As Range

Rem KontaktPersoner
Const kontaktPersonerFilNavn = "kontaktPersoner.xlsx"
Dim kontaktXLS As Object
Dim arkK As Worksheet
Dim antalKrækker As Long, antalKkolonner As Long, rK As Range
Public Sub hentKontaktPersoner()
On Error GoTo lukKontaktPersoner

    Application.ScreenUpdating = False
   
    aktuelleSti = opbygAktuelleSti
   
    aktiverKontaktPersoner
    aktiverMedlemsArk
   
    sidsterække = ActiveCell.SpecialCells(xlLastCell).Row
   
    For ræk = startRække To sidsterække
        medlemsNr = Range("S" & ræk)
        findKontaktPersoner medlemsNr, ræk
   
    Next ræk
     
    Application.ScreenUpdating = True
    MsgBox "Kørsel afsluttet"
   
lukKontaktPersoner:
    kontaktXLS.Application.Quit
    Set kontaktXLS = Nothing
   
    Set arkM = Nothing
End Sub
Private Function opbygAktuelleSti()
Dim sti As String
    sti = ThisWorkbook.Path
   
    If Right(sti, 1) <> "\" Then
        sti = sti & "\"
    End If
   
    opbygAktuelleSti = sti
End Function
Private Sub aktiverKontaktPersoner()
    Set kontaktXLS = CreateObject("Excel.Application")
    kontaktXLS.Workbooks.Open aktuelleSti & kontaktPersonerFilNavn

Rem Test
Rem    kontaktXLS.Visible = True

    Set arkK = kontaktXLS.Sheets(1)
    antalKrækker = kontaktXLS.ActiveCell.SpecialCells(xlLastCell).Row
    antalKkolonner = kontaktXLS.ActiveCell.SpecialCells(xlLastCell).Column
   
End Sub
Private Sub aktiverMedlemsArk()
    Set arkM = ActiveWorkbook.Sheets(1)
End Sub
Private Sub findKontaktPersoner(medlemsNr, ræk)
Dim Kræk As Long, antalMatch As Integer
    antalMatch = 0
    For Kræk = startRække To antalKrækker
        If arkK.Range("A" & Kræk) = medlemsNr Then
            antalMatch = antalMatch + 1
            Set rK = arkK.Range(arkK.Cells(Kræk, 1), arkK.Cells(Kræk, antalKkolonner))
            Set rM = arkM.Cells(ræk, 1).Offset(0, ((antalMatch - 1) * antalKkolonner) + startKolonneKontaktPersoner)
                       
            indsætkontaktpersoner rK, rM
        End If
    Next Kræk
End Sub
Private Sub indsætkontaktpersoner(rK As Range, rM As Range)
    rK.Select
    rK.Copy
   
    ActiveWorkbook.Activate
    rM.Select
    ActiveSheet.Paste
   
    Application.CutCopyMode = False
End Sub
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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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