20. februar 2006 - 23:09Der er
27 kommentarer og 1 løsning
Hente udvalgte rækker i ark baseret på bestemte kriterier
Jeg har brug for hjælp til en formel, der skal hente en rækker fra et worksheet hvis denne række opfylder et bestemt kriterie. (Kriteriet er et bestemt bogstav i en bestemt kolonne). Dernæst skal de hentede rækker sorteres efter en anden kolonne.
Public Sub HentData() Dim shData As Worksheet Dim RW As Long, RW1 As Long, C As Range Set shData = Worksheets("Ark1") 'ret til dit data ark RW = shData.Range("A65536").End(xlUp).Row ' Ret A til kolonnen for søgekreteriet For Each C In shData.Range("A1:A" & RW).Cells 'Ret A til kolonnen for søgekreteriet RW1 = ActiveSheet.Range("A65536").End(xlUp).Row + 1 If UCase(C.Text) = "A" Then ' ret til dit søge bogstav
shData.Rows(C.Row).Copy ActiveSheet.Range("A" & RW1) End If Next End Sub
Kabbak du er en haj, tak for det, men jeg er bange for, at du bliver nødt til at tilføje en lille forklaring til en "dumskalle" som jeg!!! Hvor er det lige, jeg skal skrive ovenstående?
OK Højreklik på arkfanen, på det ark som linierne skal over i, vlæg vis programkode.
sæt denne kode ind
Private Sub Worksheet_Activate() Dim shData As Worksheet Dim RW As Long, RW1 As Long, C As Range Range("A2").Select Range(Selection, ActiveCell.SpecialCells(xlLastCell)).ClearContents Set shData = Worksheets("Ark1") 'ret til dit data ark RW = shData.Range("A65536").End(xlUp).Row ' Ret A til kolonnen for søgekreteriet For Each C In shData.Range("A1:A" & RW).Cells 'Ret A til kolonnen for søgekreteriet RW1 = ActiveSheet.Range("A65536").End(xlUp).Row + 1 If UCase(C.Text) = "A" Then ' ret til dit søge bogstav shData.Rows(C.Row).Copy ActiveSheet.Range("A" & RW1) End If Next End Sub
koden opdaterer arket, hver gang det bliver aktiveret, det vil sige at du skal klikke på en anden arkfane, og så gå tilbage igen, så er den opdateret
Jeg skal lige være helt sikker på at jeg forstår dig korrekt. De data jeg skal hente ligger i et ark der hedder Beregning. Jeg erstatter altså Ark1 med beregning og dernæst A65536 til B7 hvis denne celle indeholder mit bogstav der er kriteriet. Er det korrekt forstået?
Det virker fint, dog får jeg for hver række der ikke opfylder kriteriet en 0 række indsat, og det var ikke meningen. Jeg ville jo gerne have en liste at rækker der opfylder kriteriet.
den henter række 1 til 63 selvom jeg har ialt ca 1200 rækker, men som sagt ser det mere ud som om den blot kopierer de første 63 rækker?
Private Sub Worksheet_Activate() Dim shData As Worksheet Dim RW As Long, RW1 As Long, C As Range Range("A2").Select Range(Selection, ActiveCell.SpecialCells(xlLastCell)).ClearContents Set shData = Worksheets("Beregning") 'ret til dit data ark RW = shData.Range("F65536").End(xlUp).Row ' Ret A til kolonnen for søgekreteriet For Each C In shData.Range("F1:F" & RW).Cells 'Ret A til kolonnen for søgekreteriet RW1 = ActiveSheet.Range("F65536").End(xlUp).Row + 1 If UCase(C.Text) = "A" Then ' ret til dit søge bogstav shData.Rows(C.Row).Copy ActiveSheet.Range("A" & RW1) End If Next End Sub
Private Sub Worksheet_Activate() Dim shData As Worksheet Dim RW As Long, RW1 As Long, C As Range Range("A2").Select Range(Selection, ActiveCell.SpecialCells(xlLastCell)).ClearContents Set shData = Worksheets("Beregning") 'ret til dit data ark RW = shData.Range("F65536").End(xlUp).Row ' Ret A til kolonnen for søgekreteriet For Each C In shData.Range("F1:F" & RW).Cells 'Ret A til kolonnen for søgekreteriet RW1 = ActiveSheet.Range("A65536").End(xlUp).Row + 1 If UCase(C.Text) = "A" Then ' ret til dit søge bogstav shData.Rows(C.Row).Copy ActiveSheet.Range("A" & RW1) End If Next End Sub
Er det korrekt at det er bogstavet A du søger efter If UCase(C.Text) = "A" Then
Jeg rettede denne RW1 = ActiveSheet.Range("A65536").End(xlUp).Row + 1
Jeg kopierede dit forslag og nu blev den pænt hentet i korrekt format???? Jeg er ikke blevet klogere på hvad der sker, men det virker så tusind tak for hjælpen. Send et svar så får du dine point...iøvrigt kan du anbefale nogle gode guides til visual basic progammering i excel , så vil jeg være dig endnu mere taknemmelig.
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.