Avatar billede ferdinand.k Mester
02. januar 2008 - 11:56 Der er 4 kommentarer og
1 løsning

Samle rækker der indeholder data

Jeg formoder at dette også er VBA-kategorien?

Jeg har 6 faneblade med data som er formet som en prisliste, med fuldstændigt samme layout i alle 6 faneblade. Jeg har partno., beskrivese, antal og pris. Jeg ønsker at oprette et 7'nd faneblad som skal basseres ud fra de eksisternede data, men kun for de rækker hvor der er tastet noget ind i kolonne C (Antal)...

Altså ønsker jeg at ende op med ét faneblad hvor hele rækken bliver kopieret, fra alle de steder hvor der er tastet et eller andet ind i feltet Antal...

How to do?
Avatar billede supertekst Ekspert
02. januar 2008 - 14:05 #1
Rem Koden indsættes i ThisWorkBook
Rem Faneblad 7 forudsættes oprettet med de 4 overskrifter
Rem =====================================================
Dim antalKol, ark7Ræk, prisArk
Sub samlingAfRækker()
    Application.ScreenUpdating = False
   
Rem Række påArk7
    ark7Ræk = 2

Rem gennemløb af de 6 ark
        For ark = 1 To 6
            ActiveWorkbook.Sheets(ark).Activate
            Set prisArk = ActiveWorkbook.Sheets(ark)
            testArket
        Next ark
       
        Application.ScreenUpdating = True
        ActiveWorkbook.Sheets(7).Activate
        MsgBox ("Samling er afsluttet")
End Sub
Private Sub testArket()
        For ræk = 2 To 65000
            prisArk.Activate
            With prisArk
                If .Cells(ræk, 1) = "" Then
                    Exit Sub
                End If
           
Rem kopier til ark7
                If .Cells(ræk, 3) <> "" Or IsEmpty(.Cells(ræk, 3)) = true½ Then
                    Range(.Cells(ræk, 1), .Cells(ræk, 4)).Select
                    Selection.Copy
                   
                    ActiveWorkbook.Sheets(7).Select
                    Cells(ark7Ræk, 1).Select
                    Selection.PasteSpecial (xlPasteAll)
                   
                    Application.CutCopyMode = False
                    ark7Ræk = ark7Ræk + 1
                End If
            End With
        Next ræk
End Sub
Avatar billede ferdinand.k Mester
02. januar 2008 - 15:46 #2
super, det ser godt ud...
Linien med: Range(.Cells(ræk, 1), .Cells(ræk, 2)).Select
Hvordan tager jeg hele rækken med, og ikke kun de to celler med?
Avatar billede supertekst Ekspert
02. januar 2008 - 15:54 #3
Så vidt jeg kan se - bliver alle 4 celler i rækken kopieret:

  Range(.Cells(ræk, 1), .Cells(ræk, 4)).Select

OBS: ½ efter true skal slettes
Avatar billede ferdinand.k Mester
02. januar 2008 - 16:01 #4
Du har ret, jeg havde bare lige en kolonne der var skjult, og derfor blev data ikke vist korrekt :)

Takker, læg lige et svar
Avatar billede supertekst Ekspert
02. januar 2008 - 18:13 #5
Selv tak - du får et svar
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