Avatar billede Mathias- Nybegynder
28. december 2011 - 02:04 Der er 15 kommentarer og
1 løsning

195

Hej,

Jeg har et regneark med 105 comboboxe

Når jeg skuler en række, hvori der er en combobox skjules den. Når jeg så viser rækken umiddelbart efter, kommer comboboxen frem igen.

Hvis jeg skjuler rækken, gemmer excel, lukker excel, åbner excel. Klikker på vis, så ses comboboxende ikke. Ved at søge efter den, kan jeg se, at den er hoppet helt op i toppen af skærmen - faktisk ud af skærmen.

Hvordan fixer jeg dette?
Jeg har lidt tænkt på, om man kan binde højde og bredde, samt position på tænkeboksen.
Avatar billede Mathias- Nybegynder
28. december 2011 - 02:42 #1
Beklager overskriften, der er tilsyneladende gået noget galt..

Som nødløsning, kan man så skrive en makro som husker hvilke celler, der er skjulte. Når man så lukker excel viser den alle rækker og lukker. Når man åbner igen, så skjuler den dem, som var skjult fra forrige gang excel var åben?
Avatar billede store-morten Ekspert
28. december 2011 - 12:29 #2
Du kan ikke bruge Datavalidering --> liste i stedet for 105 comboboxe?
Avatar billede Mathias- Nybegynder
28. december 2011 - 16:00 #3
Hej Morten,

Det vil jeg helst undgå, har et større spil imellem mine comboboxe.

Når jeg højreklikker på en celle popper der en userform op, hvor jeg vælger kategori, her efter vil den tilhørende celles comboboxe kun vise de værdier, der hører ind under den kategori.
Hvis jeg da skulle lave en datavalideringsliste, så skulle de vise tilsvarende værdier som mine comboboxe.

Min kode for beregning af comboboxe nr. ser således ud:

Rem BEREGNING AF COMBOBOX-NR P.G.A. RÆKKE-NR
Public Function beregnCboxNr(rækNr)
Dim rækMax As Variant, modifik As Variant, f As Byte
    rækMax = Array(0, 17, 34, 51, 68, 85, 102, 119)
    modifik = Array(0, 108, 110, 112, 114, 116, 118, 120)
    For f = 1 To UBound(rækMax)
        If rækNr <= rækMax(f) Then
            beregnCboxNr = modifik(f) - rækNr
            Exit Function
        End If
    Next f
    beregnCboxNr = 0
End Function
Avatar billede Mathias- Nybegynder
28. december 2011 - 16:00 #4
Men hvis du har et forslag med den løsning må du endelig skrive! :)
Avatar billede store-morten Ekspert
28. december 2011 - 20:13 #5
Det kan jeg ikke gennemskue ;-(
Kan du evt. sende et eksemplar på mail?
adresse under profil.
Avatar billede Mathias- Nybegynder
28. december 2011 - 21:51 #6
Det er sendt - tak :)
Avatar billede store-morten Ekspert
28. december 2011 - 22:38 #7
Tak.
Men der er jo kode på?
Avatar billede Mathias- Nybegynder
28. december 2011 - 22:45 #8
Det tænkte jeg ikke lige på :-( - koden er sendt pr. email.
Avatar billede store-morten Ekspert
28. december 2011 - 23:27 #9
Slutter for i dag
Har ikke gennem skuet en løsning
Avatar billede Mathias- Nybegynder
29. december 2011 - 00:03 #10
okay.
Glæder mig til at høre fra dig, hvis du finder en løsning :)
Avatar billede store-morten Ekspert
29. december 2011 - 20:06 #11
Lidt at lege/arbejde med:
Sub LineUpMyShapes()
Dim MyWidth As Single, MyHeight As Single
Dim MyLeft As Single, MyTop As Single
Dim NumWide As Long
Dim MyShapes As Long, LastShapes As Long

MyWidth = 12.75
MyHeight = 12.75
MyLeft = 116
MyTop = 52.5

LastShapes = ActiveSheet.Shapes.Count

    For MyShapes = 1 To LastShapes
    With ActiveSheet.Shapes(MyShapes)
        .Width = MyWidth
        .Height = MyHeight
        .Left = MyLeft
        .Top = Int(MyShapes - 1) * MyHeight
    End With
    Next
   
End Sub

Tager alle dine comboboxe, desværre også +/- og andre knapper, og sætter dem op under hinanden. Så den skal finpudses ;-)
Avatar billede Mathias- Nybegynder
29. december 2011 - 21:05 #12
Jeg har lige prøvet den, og ja der sker noget i den rigtige retning, men ang. finpudsningen, så overgår min forstand :)

En anden løsning, hvis det er mere simpelet:
Når Excelarket lukkes, så køres der en macro, som finder ud af hvilke rækker, der er skjulte -> Herefter viser den alle rækker -> Hvorefter den lukker.
Når Excelarket åbnes igen, så køres der en macro, som skjuler de celler, der var skjulte før lukningen.
Det skal virke, men spørgsmålet er, om det er muligt at skrive sådanne macroer?
Avatar billede store-morten Ekspert
29. december 2011 - 22:20 #13
Ny mail sendt
Avatar billede store-morten Ekspert
30. december 2011 - 13:08 #14
Hej Mathias
Prøv at teste om disse kan bruges.

Når Excelarket lukkes, så køres der en macro, som finder ud af hvilke rækker, der er skjulte -> Herefter viser den alle rækker -> Hvorefter den lukker.
Sub visFørGem()
home = ActiveCell.Address
homeArk = ActiveSheet.Name

Application.ScreenUpdating = False
    'fjerner gamle mærke i AI ved skjulte rækker
    Columns("AI:AI").ClearContents
    'Sætter mærke i AI ved skjulte rækker
    For Række = 1 To 125
    If Rows(Række).EntireRow.Hidden = True Then
    Range("AI" & Række).Value = "x"
    Else
    Range("AI" & Række).Value = ""
    End If
    Next
        'Viser alle rækker
        Cells.EntireRow.Hidden = False
       
Application.ScreenUpdating = True
Sheets(homeArk).Select
Range(home).Select
End Sub

Når Excelarket åbnes igen, så køres der en macro, som skjuler de celler, der var skjulte før lukningen.
Sub skjulVedÅben()
home = ActiveCell.Address
homeArk = ActiveSheet.Name

Application.ScreenUpdating = False
    'Skjuler rækker ved mærke i AI
    For Række = 1 To 125
    If Range("AI" & Række) = "x" Then
    Rows(Række).Select
    Selection.EntireRow.Hidden = True
    End If
    Next
Application.ScreenUpdating = True

Sheets(homeArk).Select
Range(home).Select
End Sub
Avatar billede Mathias- Nybegynder
02. januar 2012 - 21:58 #15
Mange tak for hjælpen!!

Jar har faktisk både brugt Storemortens løsning, men også en løsning jeg fik af supertekst.

StoreMorten, smid et svar. Så giver jeg også supertekst 200 point i en anden tråd for hans svar.
Avatar billede store-morten Ekspert
02. januar 2012 - 22:06 #16
Velbekomme.
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
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