Avatar billede Ditte_L Nybegynder
23. november 2009 - 13:49 Der er 6 kommentarer

markering af et ukendt antal rækker ud fra specifik celleværdi

Hej!

Jeg forsøger at lave en VBA kode som kan kopiere et ukendt antal rækker til et andet ark. Men jeg kan ikke finde ud af hvordan jeg markerer flere rækker på baggrund af værdien i kolonne A

Jeg vil altså gerne markere alle de rækker hvor celleværdien i kolonne Aer 1. Der vil være et variabelt antal celler med værdien 1, men de vil altid være samlet efter hinanden.

Jeg tænker at det skal være noget med at koden først finder det range i kolonne A med vædien 1 og derefter udvide markeringen til at gælde rækkerne.

Er der nogen der kan hjælpe mig?
Avatar billede excelent Ekspert
23. november 2009 - 16:45 #1
Kopierer til Arket til højre for det aktive i A2....

Sub xCopy()
rk = Cells(5000, 1).End(xlUp).Row
If Range("A1") = "" Then Range("A1") = "temp"
Range("A1:A" & rk).Select
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:="1"
Range("A2:IV" & rk).SpecialCells(xlCellTypeVisible).Select
Selection.Copy Sheets(ActiveSheet.Index + 1).Range("A2")
Range("A1").AutoFilter
Range("A1").Select
End Sub
Avatar billede Ditte_L Nybegynder
24. november 2009 - 08:50 #2
Hej

Tak for svaret.

Jeg er forholdsvis ny i det her VBA, så jeg tænkte om du evt. kan forklare lidt nærmere hvad det er de forskellige kommandoer i koden gør?

Derudover vil jeg gerne, istedet for at kopiere til arket ved siden af, kopiere rækkerne til et bestemt ark der hedder "PrintOutput", og indsætte det kopierede under den række hvor celleværdien er "Gruppe 1". Placeringen af denne vil variere.
Avatar billede excelent Ekspert
24. november 2009 - 18:11 #3
Prøv

Sub xCopy()
rk = Cells(10000, 1).End(xlUp).Row
If Range("A1") = "" Then Range("A1") = "temp"
rk2 = Sheets("PrintOutput").Range("A1:A10000").Find("Gruppe 1", LookIn:=xlValues).Row
Range("A1:A" & rk).Select
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:="1"
Range("A2:IV" & rk).SpecialCells(xlCellTypeVisible).Select
Selection.Copy Sheets("PrintOutput").Range("A" & rk2 + 1)
Range("A1").AutoFilter
Range("A1").Select
End Sub
Avatar billede Ditte_L Nybegynder
25. november 2009 - 09:44 #4
Den melder runtime error 1004 på følgende linie

Range("A2:IV" & rk).SpecialCells(xlCellTypeVisible).Select

Kan du evt. forklare lidt nærmere hvad de forskellige linier i koden gør?
Avatar billede excelent Ekspert
25. november 2009 - 19:47 #5
Du skal stå i det ark hvor data er når du kører makro,- ikke i PrintOutput
Avatar billede excelent Ekspert
25. november 2009 - 19:58 #6
Check lige inden du prøver igen, om der er filter i arket PrintOutput, for så skal det først fjernes via Data/Filter/Autofilter
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
Kurser inden for grundlæggende programmering

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