Avatar billede besida Nybegynder
13. april 2012 - 14:03 Der er 3 kommentarer og
1 løsning

Skjule kolonner ud fra valg i listbox

Hej

Jeg har et stort regneark med rigtig mange kolonner, som skal skjules ud fra valgene i min userform1.

Jeg har oprettet 3 listbox's, hvor jeg har indlæst data ind fra mit Control-ark. Listboxene er alle med multiplechoise.
PT. køre jeg det så jeg bare læser valgene ud af listboxene til controlarket, og derefter med en ny makro, der skjuler de kolonner i WCGW arket, som ikke er valgt, ud fra mine rækker jeg har overført til Control-arket. Det er en ret langsom process!!

Er der nogen der har en nemmere måde, så man kører det hele i en proces, altså allerede ud fra selections i listboxene?

Jeg har søgt hele dagen på nettet efter en løsning, men er ikke kommet frem til noget.

Mvh

DJ
Avatar billede supertekst Ekspert
13. april 2012 - 15:00 #1
Det skulle nok være muligt hvis du kunne sende en kopi af filen.
@-adresse under min profil.
Avatar billede besida Nybegynder
13. april 2012 - 21:46 #2
Hej Supertekst

Tak for dit hurtige svar.

ARket indeholder desværre en masse følsomme data, så håber du kan hjælpen uden at få arket :( Alternativt hvis det er, kan jeg slette data mv.

Mit ark fungerer således:

Arket WCGW indeholder 60 kolonner, hvoraf listbox 2 skjuler kolonnerne fra I3 til AH3, hvis de ikke er valgt i listboxen.
I3:AH3 indeholde navne på kolonnerne, og det er disse der er indlæst i Listboxen.

Nuværende løsning skjuler alle kolonnerne fra I3:AH3, og viser de kolonner der er valgt i listbox 2.

På forhånd mange tak for hjælpen..
DJ
Avatar billede supertekst Ekspert
13. april 2012 - 23:15 #3
Hej besida

Var det muligt at skabe en model uden følsomme data - så er det ok..
Avatar billede supertekst Ekspert
15. april 2012 - 11:21 #4
VBA i Userform:

Const nulKolonne = 9                                'kolonne I
Dim ix As Integer
Private Sub CommandButton1_Click()                  'filtrer
Dim p As Byte, kolonne As String
Dim adresse As String, adr As Variant
    Application.ScreenUpdating = False

    For ix = 0 To Me.ListBox2.ListCount - 1
        adresse = Cells(1, ix + nulKolonne).Address
        adr = Split(adresse, "$")
        kolonne = adr(1)
Rem Test om række i Listbox2 er markeret - hvis ikke skjul rækken
        If Me.ListBox2.Selected(ix) = False Then
            Columns(kolonne).EntireColumn.Hidden = True
        Else
Rem Er række markeret - vis kolonne
            Columns(kolonne).EntireColumn.Hidden = False
        End If
    Next ix
    Application.ScreenUpdating = True
End Sub
Private Sub CommandButton2_Click()                  'Vis alle
    For ix = 0 To Me.ListBox2.ListCount - 1
        Me.ListBox2.Selected(ix) = True
    Next ix
    CommandButton1_Click
End Sub
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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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