Avatar billede Nadiavbronx Juniormester
17. juni 2016 - 13:21 Der er 11 kommentarer og
1 løsning

Ved indsætning af værdi skjules nogle celler

Hej
Jeg er ved at lave et skema i excel, hvori man indtaster et tal i en celle fx "C4" = 2 derefter skal alle rækker udover to rækker som går fra "A15:O15" til "A23:O23" skjules, så der ikke er unødvendige celler i skemaet.
Og dette skal kunne gentages helt op til tallet 10.

Derudover vil jeg høre om der ikke findes en kode til at navngive fanerne hvis man taster et navn ind i en celle i Excel arket og så går den ned og ændrer fane navnet?...

Jeg håber der er en dygtig sjæl der kan hjælpe mig!

Vh. Nadia
Avatar billede Jessen Seniormester
17. juni 2016 - 13:37 #1
Hej Nadia,

Her er et forslag. Koden skal indsættes i selve arket, hvor dette skal fungere. Altså ikke i et module.

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("C4")) Is Nothing Then
       
        If Range("C4") <> "" Then
            Application.ScreenUpdating = False
           
            n = Range("C4")
           
            Range("15:26").Rows.Hidden = False
            Range(15 + n & ":26").Rows.Hidden = True
           
            Application.ScreenUpdating = True
        End If
       
    End If
End Sub
Avatar billede Nadiavbronx Juniormester
17. juni 2016 - 13:47 #2
Tak! Koden virker som sådan rigtig fint, men den tager en række for meget med (når jeg skriver 1 i cellen "C4" så kommer der to rækker, hvor der kun skulle komme 1 og total rækken), men min total linje som skal regne de viste værdier sammen forsvinder og denne rækker er i A24:O24.
Avatar billede Jessen Seniormester
17. juni 2016 - 14:01 #3
Hej,

Jeg går ud fra, at de to rækker som vises, når du taster 1 i celle C4 er rækkerne 14 og 15. Er det korrekt?

I så fald kan du ændre koden til nedenstående forslag.
OBS - denne kode tager ikke højde for, at din totallinje i række 24 kun skal summere de viste rækker. Til dette formål, kunne det tyde på at en pivot-tabel måske var en bedre løsning.

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("C4")) Is Nothing Then
       
        If Range("C4") <> "" Then
            Application.ScreenUpdating = False
           
            n = Range("C4")
           
            Range("14:23").Rows.Hidden = False
            Range(14 + n & ":23").Rows.Hidden = True
           
            Application.ScreenUpdating = True
        End If
       
    End If
End Sub
Avatar billede Nadiavbronx Juniormester
17. juni 2016 - 14:38 #4
Hej.

Ja, du havde helt ret.. Det er muligvis nemmere med en pivottabel, men da skemaet sal bruges til beregninger og bliver brugt gentagende gange til beregninger mm. kan jeg ikke opstille det på samme måde i en pivottabel.. Men tak for hjælpen!
Du har ikke et godt foreslag til hvordan jeg kan få den til at udregne summen alt efter hvor mange rækker der skal benyttes??

Derudover har jeg prøvet at referere den celle jeg taster antallet ind i til en anden fane med samme celle alt imens jeg også har tastet din kode ind i den anden fane, for den skal lave gentagende øvelse i fanen derefter, kan dette ikke lade sig gøre?

Ved du evt. hvordan man navngiver fanerne når man skriver noget i en celle??
Avatar billede Jessen Seniormester
17. juni 2016 - 14:52 #5
Mht. en sum-formel, som tager højde for skjulte/viste rækker, så kig lidt på formlen subtotal. Du kan google dig frem til detaljerne. Den kan summere på kun viste rækker.

Mht. navngivning af ark, kan du indsætte følgende og tilpasse til egne behov. Denne formel ændrer navnet på det første ark, når der skrives til cellen A1

Koden herunder sættes ind i det ark, hvor det skal gælde, og kan placeres mellem den sidste 'End if' og 'End sub' i eksemplet fra tidligere.

    If Not Intersect(Target, Range("A1")) Is Nothing Then
        If Target.Value <> "" Then
            Sheets(1).Name = Target.Value
        End If
    End If
Avatar billede Nadiavbronx Juniormester
28. juni 2016 - 09:40 #6
Koden til at navngive fanerne virker ikke, den siger at der er et problem med target i første linje??
Derudover kan jeg ikke sætte koden ind mellem 'End if' og 'End sub' for eksemplet tidligere, idet det koden skal indsættes under den fane hvor til det skal gøres gældende for??
Avatar billede Jessen Seniormester
28. juni 2016 - 11:30 #7
Hvis du skal have den første del, med skjulte rækker til at fungere sammen med at omdøbe ark, så skal du bruge følgende kode, indsat i det pågældende ark i VBA.

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("C4")) Is Nothing Then
       
        If Range("C4") <> "" Then
            Application.ScreenUpdating = False
           
            n = Range("C4")
           
            Range("14:23").Rows.Hidden = False
            Range(14 + n & ":23").Rows.Hidden = True
           
            Application.ScreenUpdating = True
        End If
       
    End If
   
    If Not Intersect(Target, Range("A1")) Is Nothing Then
        If Target.Value <> "" Then
            Sheets(1).Name = Target.Value
        End If
    End If
   
End Sub

Hvis du kun skal kunne omdøbe ark, så kan du indsætte følgende i de ark, hvor funktionaliteten skal gælde.

Private Sub Worksheet_Change(ByVal Target As Range)

    If Not Intersect(Target, Range("A1")) Is Nothing Then
        If Target.Value <> "" Then
            Sheets(1).Name = Target.Value
        End If
    End If
   
End Sub
Avatar billede Nadiavbronx Juniormester
28. juni 2016 - 12:01 #8
Med denne kode begynder den at fjerne min sum række, som ligger i række 25, og hvis jeg kun vælger at tage række 24 med, så tager den ikke den sidste værdi med som jeg ønsker den skal, er der en god forklaring til dette?

Desuden kan jeg ikke få fane navne til at fungere.. Jeg skriver fx et navn ind i cellen F14 og dette navn skal så ned og stå på fane (ark 6), men når jeg bruger ovenstående kode så virker det ikke helt - desværre
Avatar billede Nadiavbronx Juniormester
28. juni 2016 - 12:08 #9
Derudover ønsker jeg også at fjerne nogle kolonner på præcis samme måde som med rækkerne, som beskrevet øverst, benytter jeg bare samme kode som du tidligere har tilsendt mig, hvor jeg så bare retter til de rigtige værdier og istedet for Rows så columns???
Avatar billede Jessen Seniormester
28. juni 2016 - 12:43 #10
Hej igen,

1) Hvis de rigtige rækkenumre ikke fjernes og vises korrekt, så skal du ændre tallene i koden. Det er tallene 14 og 23 der er afgørende. Prøv dig frem.

2) Koden til navngivning af ark skulle virke, hvis du retter i cellen A1. Hvis det skal være en anden celle, som styrer navngivning, skal du ændre 'A1' i koden til fx 'F14'.

3) Mht. rækker og kolonner, så burde tilsvarende kunne fungere for kolonner. Du skal ændre 'rows' til 'columns', og så naturligvis også de steder der står 'C4' skal ændres til den celle som skal styre antal kolonner.

Held og lykke med det.
Avatar billede Nadiavbronx Juniormester
28. juni 2016 - 13:37 #11
Mange tak! Det ser ud til at lykkedes - hvis fanerne skal være navngivet det samme til at starte med og hvis de skal kunne inde holde samme værdi, ved du så hvad man skal indsætte??
For lige nu vil koden ikke godtage at nogle af cellerne/fanerne få samme værdi.
Avatar billede Jessen Seniormester
28. juni 2016 - 13:47 #12
Faner i excel kan ikke have samme navn
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