Avatar billede simon_s Nybegynder
06. november 2014 - 20:58 Der er 11 kommentarer og
1 løsning

VBA Hjælp - Kopier flere celler til en celle, med eksakt match

Hej med jer,

Har virkelig fået mange guldkorn her inde, og det skal i have tusind tak for.

Jeg har en udfordring omkring det at kunne hente indhold fra flere celler i (Ark2), til samme celle i kolonne Y (Ark1).

Der skal søges i kolonerne R:Z i Ark2, og hver gang der er et eksakt match mellem en celle i  kolonerne R:Z i Ark2 og en celle i kolonne J i Ark1.

Tages indholdet fra samme række i kolonne A i Ark2, og kopiers over i kolonne Y i Ark1 i samme række hvor der forkom et eksakt match.

Hver gang der tilføjes en værdi til cellen i kolonne Y i Ark1, skal der komma mellem værdierne.

Link til gammel tråd, som muligvis kan hjælpe: http://www.eksperten.dk/spm/998562#reply_8157471

Håber virkelig der er nogen som kan og vil hjælpe, og vil meget gerne prøve og uddybbe, hvis nødvendigt.

Hilsen Simon
Avatar billede lordnelson Seniormester
07. november 2014 - 10:18 #1
Vil der være data uden huller i J i ark1 og R i ark2
for ellers bliver det en laaaaaaaaaaaaangsom en
Avatar billede simon_s Nybegynder
07. november 2014 - 12:38 #2
Hej Nelson,

der er 2 skjulte felter i mellem i kolonne J i ark1.

Kolonerne R:Z i Ark2 er uden huller.

Kan man gøre noget andet da??

Hilsen Simon
Avatar billede lordnelson Seniormester
07. november 2014 - 12:56 #3
Altså 2 skjulte rækker i Ark1?
Avatar billede lordnelson Seniormester
07. november 2014 - 12:59 #4
Så skulle denne virke:
Sub pr()
Worksheets("ark2").Select
Range("r1").End(xlDown).Select
xtaeller = ActiveCell.Row
Worksheets("Ark1").Select
Range("j1").End(xlDown).Select
Ytaeller = ActiveCell.Row
For Each y In Range("j1:j" & Ytaeller)
    For Each x In Worksheets("ark2").Range("r1:z" & xtaeller)
            If x = y Then
                hente = hente & x & ","
            End If
    Next
            If hente <> "" Then
                hente = Left(hente, Len(hente) - 1)
                RR = y.Row
                Range("y" & RR).Value = hente
            End If
hente = ""
Next
End Sub
Avatar billede simon_s Nybegynder
07. november 2014 - 15:16 #5
Fedt prøver den af i aften. Ja der er 2 skjulte rækker i mellem i ark1
Avatar billede simon_s Nybegynder
07. november 2014 - 15:16 #6
Så skriver lige når jeg har prøvet den af :)
Avatar billede simon_s Nybegynder
07. november 2014 - 20:36 #7
Fantastisk den virker næsten : )

Men den skal ikke hente indholdet i r1:z men fra kolonne a i ark2

men har lige 2 spørgsmål:

1. Er det muligt at den kan hente
kolonne a ark2 til kolonne y ark1
kolonne b ark2 til kolonne z ark1
kolonne c ark2 til kolonne aa ark1 og slut

2. hvordan tilføjer man flere ark der hvor Ark1 står i koden?

Tusind tak for hjælpen Nelson :)
Avatar billede lordnelson Seniormester
08. november 2014 - 07:15 #8
Er ikke helt klar over hvad du mener med tilføjer flere ark ?

Sub pr()
Worksheets("ark2").Select
Range("r1").End(xlDown).Select
xtaeller = ActiveCell.Row
Worksheets("Ark1").Select
Range("j1").End(xlDown).Select
Ytaeller = ActiveCell.Row
For Each y In Range("j1:j" & Ytaeller)
    For Each x In Worksheets("ark2").Range("r1:z" & xtaeller)
            If x = y Then
            AR = y.Row
                ahente = ahente & Worksheets("Ark2").Range("a" & AR).Value & ","
                bhente = bhente & Worksheets("Ark2").Range("b" & AR).Value & ","
                chente = chente & Worksheets("Ark2").Range("c" & AR).Value & ","
            End If
    Next
            If ahente <> "" Then
                ahente = Left(ahente, Len(ahente) - 1)
                Range("y" & AR).Value = ahente
            End If
            If bhente <> "" Then
                bhente = Left(bhente, Len(bhente) - 1)
                Range("z" & AR).Value = bhente
            End If
            If chente <> "" Then
                chente = Left(chente, Len(chente) - 1)
                Range("aa" & AR).Value = chente
            End If
ahente = ""
bhente = ""
chente = ""

Next
End Sub
Avatar billede simon_s Nybegynder
08. november 2014 - 10:45 #9
det begynder at ligne noget, men synes ikke rigtig jeg kan få den til at virke som den skal.

Men kan først kigge på det i aften desværre...

Så må lige vende tilbage. Du har næsten løst et kæmpe problem for mig, så tak for det.

Håber det er okay.
Avatar billede lordnelson Seniormester
08. november 2014 - 11:09 #10
Ups der var en smutter
Sub pr()
Worksheets("ark2").Select
Range("r1").End(xlDown).Select
xtaeller = ActiveCell.Row
Worksheets("Ark1").Select
Range("j1").End(xlDown).Select
Ytaeller = ActiveCell.Row
For Each y In Range("j1:j" & Ytaeller)
    For Each x In Worksheets("ark2").Range("r1:z" & xtaeller)
            If x = y Then
            AR = x.Row
                ahente = ahente & Worksheets("Ark2").Range("a" & AR).Value & ","
                bhente = bhente & Worksheets("Ark2").Range("b" & AR).Value & ","
                chente = chente & Worksheets("Ark2").Range("c" & AR).Value & ","
            End If
    Next
    RR = y.Row
   
            If ahente <> "" Then
                ahente = Left(ahente, Len(ahente) - 1)
                Range("y" & RR).Value = ahente
            End If
            If bhente <> "" Then
                bhente = Left(bhente, Len(bhente) - 1)
                Range("z" & RR).Value = bhente
            End If
            If chente <> "" Then
                chente = Left(chente, Len(chente) - 1)
                Range("aa" & RR).Value = chente
            End If
ahente = ""
bhente = ""
chente = ""

Next
End Sub
Avatar billede simon_s Nybegynder
10. november 2014 - 22:38 #11
Ja det var det der skulle  til - Tusind tusind tak

Smid lige et svar, så jeg kan give dig point : )

Hilsen Simon
Avatar billede lordnelson Seniormester
11. november 2014 - 07:18 #12
fint det virkede
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