Avatar billede Henrik_B Novice
24. oktober 2007 - 11:29 Der er 3 kommentarer og
1 løsning

Reduktion af stort regneark

Hejsa.

Jeg har lavet et stort regneark, ved hjælp af en makro.

Nu vil jeg gerne reducere det, men reduktionskriterierne er lidt omfattende. Derfor håber jeg at nogen kan hjælpe mig lidt på vej.

Regnearket omhandler nogle opgaver, der skal løses af forskellige personer. Personernes navne står i forskellige kolonner, alt efter hvilken rolle, den pågældende har på opgaven.

NU er det sådan at jeg kun vil se de opgaver, hvor min afdeling er involveret. Jeg kan godt lave en liste over personerne i et andet ark, men hvordan får jeg reduceret det store ark, så det kun viser de opgaver, jeg har brug for ?

Jeg har tidligere benyttet mig af denne form for løsning :

Selection.AutoFilter Field:=7, Criteria1:="<>Henrik"
Selection.Offset(1, 0).SpecialCells(xlCellTypeVisible).EntireRow.Delete

Den sletter altså de rækker, hvor der ikke står Henrik. Det virker fint nok. Problemet er at jeg har mange navne, mere end de 3, som autofilteret tillader. Og navnet kan stå i forskellige kolonner.

Håber der er nogen, der kan hjælpe.

M.v.h.  Henrik.

P.S. benytter Excel 2003.
Avatar billede kabbak Professor
24. oktober 2007 - 12:46 #1
Prøv at teste denne, den skulle skjule alle rækker hvor kriteriet indgår

Public Sub test()
    Dim I As Long, X As Integer, Col As Integer, RW As Long, A As String
    Dim Navn As String
    Cells.EntireRow.Hidden = False
    Col = ActiveSheet.UsedRange.Columns.Count + 1
    RW = ActiveSheet.UsedRange.Rows.Count + 1

    Navn = InputBox("Indtast filternavn")
    If Navn <> "" Then
        For I = 1 To RW
        A = ""
            For X = 1 To Col
                A = A & Cells(I, X).Text
            Next
            If InStr(1, A, Navn) Then Rows(I).Hidden = True
           
        Next
    End If
End Sub
Avatar billede kabbak Professor
24. oktober 2007 - 12:50 #2
Her er den med sletning af rækker

Public Sub test()
    Dim I As Long, X As Integer, Col As Integer, RW As Long, A As String
    Dim Navn As String
    Cells.EntireRow.Hidden = False
    Col = ActiveSheet.UsedRange.Columns.Count + 1
    RW = ActiveSheet.UsedRange.Rows.Count + 1

    Navn = InputBox("Indtast filternavn")
    If Navn <> "" Then
        For I = 1 To RW
            A = ""
            For X = 1 To Col
                A = A & Cells(I, X).Text
            Next
            If InStr(1, A, Navn) Then Rows(I).Hidden = True
        Next
        Cells.SpecialCells(xlCellTypeVisible).EntireRow.Delete
    End If
    Cells.EntireRow.Hidden = False
End Sub
Avatar billede Henrik_B Novice
24. oktober 2007 - 13:23 #3
Alle tiders, det virker. Nu skal jeg bare have makroen til at tage en liste af navne, men det roder jeg selv med lidt.

Tak for hjælpen, læg et svar, hvis du vil have points.
Avatar billede kabbak Professor
24. oktober 2007 - 13:24 #4
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
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