Avatar billede Danny R Juniormester
09. august 2024 - 12:21 Der er 1 løsning

Hent en værdi fra en fil til en anden hvis kriterie er opfyldt

Hej eksperter :)

Jeg vil lige høre om der er nogle herinde der kan hjælpe mig.

Hovedfil:
Jeg har en excel fil hvor der i kolonne b står en masse kundenumre. I kolonne C vil jeg så gerne have overført værdi fra et andet excel ark/fil hvis vel og mærket at kundenummeret findes i den fil og der vel og mærket også er markeret med et X i den efterfølgende kolonne.

Anden fil:
Som skrevet ovenfor så står kundenumre i kolonne H og i kolonne I, er der for nogle kunder angivet et X. Hvis der så er markeret med et X udfra den kunde som forefindes i Hovedfilen, skal X'et kopieres over i hovedfilen i kolonne c.

Kan man lave en makro til dette? :)

På forhånd mange tak

Mvh Danny :)
Avatar billede Danny R Juniormester
09. august 2024 - 12:50 #1
Har fundet en løsning :)
Til dem som kunne være interesseret er koden dette :)

Sub KopierXVedMatchendeKundenummer()
    Dim wsHoved As Worksheet, wsAnden As Worksheet
    Dim wbHoved As Workbook, wbAnden As Workbook
    Dim kundeNummer As Range, matchKunde As Range
    Dim lastRowHoved As Long, lastRowAnden As Long
    Dim i As Long, j As Long

    ' Åbn begge arbejdsbøger
    Set wbHoved = Workbooks.Open("C:\sti\til\hovedfil.xlsx")
    Set wbAnden = Workbooks.Open("C:\sti\til\andenfil.xlsx")

    ' Sæt referencer til de relevante ark
    Set wsHoved = wbHoved.Sheets("Navn på dit ark i hovedfilen")
    Set wsAnden = wbAnden.Sheets("Navn på dit ark i anden filen")

    ' Find sidste række i begge ark
    lastRowHoved = wsHoved.Cells(wsHoved.Rows.Count, "B").End(xlUp).Row
    lastRowAnden = wsAnden.Cells(wsAnden.Rows.Count, "H").End(xlUp).Row

    ' Loop igennem alle kundenumre i hovedfilen
    For i = 2 To lastRowHoved
        Set kundeNummer = wsHoved.Cells(i, 2)
       
        ' Søg efter kundenummeret i anden fil
        For j = 2 To lastRowAnden
            If wsAnden.Cells(j, 8).Value = kundeNummer.Value Then
                If wsAnden.Cells(j, 9).Value = "X" Then
                    ' Kopier "X" til hovedfilen, hvis fundet
                    wsHoved.Cells(i, 3).Value = "X"
                End If
                Exit For
            End If
        Next j
    Next i

    ' Gem og luk arbejdsbøgerne
    wbHoved.Save
    wbAnden.Close False
    wbHoved.Close False

    MsgBox "Processen er fuldført!"
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