Avatar billede hubertus Seniormester
23. oktober 2016 - 19:05 Der er 10 kommentarer og
1 løsning

find tekst og kopier rækken hvor teksten står over i et nyt ark.

Jeg har et basisark, hvor en række medlemmer er listet med oplysning om alder, telefon, adresse, sportsgren osv.

I et andet ark  kaldet: temp, har jeg et udtræk af navne. Jeg har så brug for at finde navnet i basisarket, og så kopiere de data, som er oplyst om medlemmet over i temp arket.
Navnene stå i kolonne G i basisarket og i kolonne B i temparket.
Avatar billede excelent Ekspert
23. oktober 2016 - 19:45 #1
=LOPSLAG(G2;'Ark1'!B2:F30;2;FALSK)
Avatar billede excelent Ekspert
23. oktober 2016 - 19:46 #2
=LOPSLAG(G2;'temp'!B2:F30;2;FALSK)
Avatar billede excelent Ekspert
23. oktober 2016 - 19:49 #3
alle gode gange 3 :-)

=LOPSLAG(G2;'basisark'!B2:F30;2;FALSK)
Avatar billede hubertus Seniormester
23. oktober 2016 - 19:56 #4
Hej excelent
jeg skal bruge det, som del af en makro, hvor jeg får kopieret hele række hvor navnet står i basisarket. mit problem er at lave en elegant løsning, hvor jeg får flyttet rækken over på temp arket.
Avatar billede excelent Ekspert
23. oktober 2016 - 21:02 #5
Sub opslag()

Set sh1 = Sheets("basisark") ' ret evt arknavn
Sheets("temp").Select ' ret evt arknavn

For Each c In Range("B2:B100") ' ret til aktuel range
rk = sh1.Range("G2:G1000").Find(c, LookIn:=xlValues).Row ' ret til aktuel range
rk2 = Cells(65536, "C").End(xlUp).Row + 1

sh1.Cells(rk, "H").Copy Cells(rk2, "C")
sh1.Cells(rk, "I").Copy Cells(rk2, "D")
sh1.Cells(rk, "J").Copy Cells(rk2, "E")
sh1.Cells(rk, "K").Copy Cells(rk2, "F")
sh1.Cells(rk, "L").Copy Cells(rk2, "G")
'osv. osv
Next

End Sub
Avatar billede hubertus Seniormester
23. oktober 2016 - 21:16 #6
Det ser rigtigt godt ud - kan du lave en tilføjelse, hvor der tages højde for at opslags navnet ikke findes i basisarket?
Avatar billede excelent Ekspert
23. oktober 2016 - 22:08 #7
Sub opslag()

Set sh1 = Sheets("basisark") ' ret evt arknavn
Sheets("temp").Select ' ret evt arknavn

For Each c In Range("B2:B10") ' ret til aktuel range
rk2 = Cells(65536, "C").End(xlUp).Row + 1
On Error GoTo om
rk = sh1.Range("G2:G1000").Find(c, LookIn:=xlValues).Row ' ret til aktuel range

sh1.Cells(rk, "H").Copy c.Offset(0, 1)
sh1.Cells(rk, "I").Copy c.Offset(0, 2)
sh1.Cells(rk, "J").Copy c.Offset(0, 3)
sh1.Cells(rk, "K").Copy c.Offset(0, 4)
sh1.Cells(rk, "L").Copy c.Offset(0, 5)
'osv. osv
om:
Next

End Sub
Avatar billede hubertus Seniormester
23. oktober 2016 - 22:36 #8
så langt var jeg også komment, men den skal samtidig rykke en linje ned, ellers vil oplysningerne ikke komme ud for det korrekte navn. Dvs. hvis der er et navn i temp arket, som ikke findes i basisarket, så skal den rykkes en linje ned til det næste navn.
når der så søges på sidste linjen:  rk2 = Cells(65536, "C").End(xlUp).Row + 1 vil jo
så vil den tomme linje jo stå ud for det navn, som ikke var i basisarket. derfor skal der skrives en tekst i C kolonnen, således at rk2 for det rigtige inhold
Avatar billede excelent Ekspert
23. oktober 2016 - 22:56 #9
Jo men rk2 anvendes ikke i koden
Har du ikke anvendt den sidste kode fra #7 ?
Avatar billede excelent Ekspert
23. oktober 2016 - 23:09 #10
Prøv:

Sub opslag()

Set sh1 = Sheets("basisark") ' ret evt arknavn
Sheets("temp").Select ' ret evt arknavn

For Each c In Range("B2:B100") ' ret til aktuel range

If Application.CountIf(sh1.Range("G2:G1000"), c) < 1 Then GoTo om
rk = sh1.Range("G2:G1000").Find(c, LookIn:=xlValues).Row ' ret til aktuel range

sh1.Cells(rk, "H").Copy c.Offset(0, 1)
sh1.Cells(rk, "I").Copy c.Offset(0, 2)
sh1.Cells(rk, "J").Copy c.Offset(0, 3)
sh1.Cells(rk, "K").Copy c.Offset(0, 4)
sh1.Cells(rk, "L").Copy c.Offset(0, 5)
'osv. osv
om:

Next

End Sub
Avatar billede hubertus Seniormester
24. oktober 2016 - 09:38 #11
Så er den helt på plads - en smart løsning. Mange tak for hjælpen.
God dag :0))
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