Avatar billede evendorff Juniormester
22. maj 2021 - 11:27 Der er 22 kommentarer og
2 løsninger

VBA i Excel (vis/skjul kolonner)

Jeg ønsker en click box med en tilhørende Makro der
.. viser kol. z,aa,ab (hvis de er skjult)
.. skjuler kol. z,aa,ab (hvis de er vist)

.. du må godt lige kort repetere hvordan og hvor jeg henter click boxen og hvordan jeg hæfter makroen til

mvh
Knud Evendorff
Avatar billede Mads32 Ekspert
22. maj 2021 - 21:08 #1
Hej

Er det sådan du mener med Click box.

https://www.dropbox.com/s/roz2o3r5p9oifmi/vis_skjul_kolonner_mads32.xlsm?dl=0

m v  h Mads32
Avatar billede evendorff Juniormester
22. maj 2021 - 21:49 #2
..Hej

..jeg bruger ikke dropbox, men jeg prøvet nu, men jeg får kun excel formular vist (med navnet : vis_skjul_kolonner_mads32.  Arket er ellers blankt. Jeg vil helst ikke bruge tid på et produkt, jeg ikke bruger. Men hvis du kan anvise, hvad jeg gør forkert, så er det OK.
..tilbage til opgaven.
.. jeg har input data i z,aa og ab. De skal være skjult i arket. Hvis der er behov for at rette data, så skal kol. z,aa,ab vises. Efter rettelsen skal kolonnerne skjules. Begge dele med en makro submit via en clickbox.
.. arket har skjult overskrifter (kol, rækker)
Avatar billede evendorff Juniormester
23. maj 2021 - 04:40 #3
En korrektion:
.. i stedet for clickbox så vil tallet <1> i B4 vise kolonner. Andre værdier skjuler kolonner.

Kolonner er: z:ab

.. jeg foretrækker B4 løsningen
Avatar billede Mads32 Ekspert
23. maj 2021 - 11:23 #4
Jeg prøver igen at vedlægge fil.

Du behøver ikke at oprette dropbox, men dropbox er en af de mest anvendte måder at udveksle filer på her i dette forum. Det er for det meste lettere at få hjælp når man uploader en fil. .
.
Det er et link som vil hente filen.

https://www.dropbox.com/s/roz2o3r5p9oifmi/vis_skjul_kolonner_mads32.xlsm?dl=0

Der skulle gerne være 2 makroknappper du blot skal klikke på.

m v h  mads32
Avatar billede evendorff Juniormester
23. maj 2021 - 12:01 #5
Hej Mads

Tak, jeg fandt ud af det til sidst. Det virker. Men som jeg skrev som supplement, så er nu mere interesseret i en løsning med tallet <1> i B4 : vis kolonner og <blank> : skjul kolonner.

Kan man lave (i din løsning p.t.) det med en knap, som bare skifter mellem vis/skjul.

mvh Knud Evendorff
Avatar billede Mads32 Ekspert
23. maj 2021 - 12:42 #6
Hej

Jeg mener det er muligt, men jeg kender ikke makroknappen og heller ikke programmeringen af en sådan. Der er flere af eksperterne der kan besvare dette..

De 2 knapper jeg har lavet kan selvfølgelig flyttes til B4

m v h mads32
Avatar billede evendorff Juniormester
23. maj 2021 - 13:03 #7
Hej Mads
Tak, du svarer ikke på løsningen med B4, hvor <1> viser kolonner eller skjules.

.. koden skal så være tilhørende arket. Arket hedder <start data>,

mvh Knud Evendorff
Avatar billede evendorff Juniormester
23. maj 2021 - 13:09 #8
rettelse : hvor <1> viser kolonner ellers skjules kolonner.
Avatar billede Mads32 Ekspert
23. maj 2021 - 13:24 #9
Hej

Jeg svarer ikke direkte, men skriver at jeg ikke kender løsningen.

m v h  mads32
Avatar billede evendorff Juniormester
23. maj 2021 - 13:33 #10
Hej Mads

Det helt OK. Jeg bruger så 2 knapper. Men det 100 år siden jeg skulle bruge nogen knapper. Hvor er det jeg finder dem?

Mvh Knud Evendorff
Avatar billede Mads32 Ekspert
23. maj 2021 - 15:00 #11
Hej

Under faneblad Udvikler er der et ikon der hedder "Indsæt" klik på det så år du mulighed for at vælge og tegne en knap.

Efter at have tegnet en knap kan du tilknytte en makro

m v h  mads32
Avatar billede evendorff Juniormester
23. maj 2021 - 15:46 #12
Hej Mads

Det er fa.... nogle følsomme objekter. Til sidst lykkes det. Men det er måske mig, der har for lille kørekort.
Det virker nu. Tak hjælpen.
Skal man ikke kreditere mere her i dette forum?

mvh Knud Evendorff
Avatar billede Mads32 Ekspert
23. maj 2021 - 16:32 #13
Hej

Ne du skal blot  markerer som løsning som du har gjort.

m v h mads32
Avatar billede evendorff Juniormester
23. maj 2021 - 22:33 #14
Ups!  jeg ved ikke om tråden er lukket?

Jeg prøver. Arket hvor VBA koden indgår er beskyttet. Derfor skal makroen frisætte beskyttelse og udfør (kolonne vis/luk) og slut med ark beskyttelse.
Koden:

Sub Makro1()
'
' Makro1 Makro
' skjul kolonne L, M og N
'

    Columns("L:N").Select
    Selection.EntireColumn.Hidden = True
End Sub
Sub Makro2()
'
' Makro2 Makro
' Vis Kolonne L, M og N
'

    Columns("L:N").Select
    Selection.EntireColumn.Hidden = False
   
End Sub

mvh Knud Evendorff
Avatar billede store-morten Ekspert
23. maj 2021 - 23:52 #15
Avatar billede evendorff Juniormester
24. maj 2021 - 10:59 #16
Store-Morten
Det virke, som det skal.
Men det kræver at der tilføres noget 'click' øverst til højre, og det har jeg ikke umiddelbart.
Kan du forklare/guide hvordan jeg indsætter koden.

mvh Knud Evendorff

Ps. der manglede 'ActiveSheet.Protect' før else.
Avatar billede store-morten Ekspert
24. maj 2021 - 11:17 #17
"der manglede 'ActiveSheet.Protect' før else."
Den har jeg udeladt så kolonne kan redigeres når de vises.

" tilføres noget 'click' "
Det forstår jeg ikke?
Mener du knappen: ToggleButton1_Click
Avatar billede evendorff Juniormester
24. maj 2021 - 13:41 #18
Store-Morten
lige en gang til '"der manglede 'ActiveSheet.Protect' før else."'
Arket er beskyttet med undtagelse af kol L,M,N, som er frisat. Hvis ikke ''ActiveSheet.Protect' sat før else, så er hele arket ubeskyttet, og ikke kun L,M,N.

i vis kode har du en kodebox, som i øverste højre vindue står 'click'. I dropdown boxen har du en masse valg, som jeg ikke har. I den nuv. løsning (lukvis) har jeg bare sat koden koden ind i boxen (efter vis programkoden).
mvh Knud Evendorff
Avatar billede store-morten Ekspert
24. maj 2021 - 16:01 #19
Okay, så der er styr på: ActiveSheet.Protect'.

Jeg har oprettet en Til/Fra-knap som ActiveX-objekter.
Og på den, lagt denne kode:
Private Sub ToggleButton1_Click()
ActiveSheet.Unprotect

If Columns("L:N").EntireColumn.Hidden = True Then
    Columns("L:N").EntireColumn.Hidden = False
    ToggleButton1.Caption = "Skjul L, M og N"
   
Else
    Columns("L:N").EntireColumn.Hidden = True
    ToggleButton1.Caption = "Vis L, M og N"
    ActiveSheet.Protect
End If
End Sub


Du kan evt. oprette knappen med denne Makro:
Sub Opret_Til_Fra_knap()
    ActiveSheet.OLEObjects.Add(ClassType:="Forms.ToggleButton.1", Link:=False, _
        DisplayAsIcon:=False, Left:=456, Top:=3, Width:=70, Height:=20). _
        Select
End Sub
Avatar billede evendorff Juniormester
24. maj 2021 - 16:55 #20
Store-Morten
Hold da op hvor det spiller. Jeg mangler blot, at få flyttet knappen hen på den rette plads. Jeg kan ikke få musen til at fange den, og få den flyttet.

mvh Knud Evendorff
Avatar billede store-morten Ekspert
24. maj 2021 - 17:12 #21
Du skal finde fanen: Udvikler og trykke på: Designtilstand
Avatar billede evendorff Juniormester
24. maj 2021 - 17:22 #22
Store-Morten
Jo tak. Det har jeg så prøvet. Der sker ikke noget. Knappen er ikke interesseret i, om musen gerne vil have kontakt.
mvh Knud Evendorff
Avatar billede evendorff Juniormester
24. maj 2021 - 17:49 #23
Store-Morten
Jo, nu er der kontakt, og knappen er på plads.
Tusind tak for assistance.
mvh Knud Evendorff
Avatar billede store-morten Ekspert
24. maj 2021 - 18:01 #24
Puha. Det var dejligt 😃

Velbekomme 👍
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

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