Hej, Jeg vil lige starte med at sige at jeg på ingen måde er ekspert i Excel, så jeg håber at nogle vil hjælpe mig, og at de vil bære over med mig hvis jeg skulle virke “dum”. Jeg er ved at lave et excelark til vores kunder hvor de kan få leveringspriser fra Vores lager til levering i DK, SE, FI, NO og FO. Jeg kunne godt tænke mig at når kunden vælger levereingsland DK, så kommer der en gruppe “checkboxes” frem, hvor de kan sætte flueben i f.x. Tidsbestemt levering, liftlevering eller andet. Hvert flueben vil så udvikle en omkostning. Når kunden så vælger leveringland SE, så skal der vise sig nogle “andre” checkboxe, som så har en anden værdi. Eksempelvis, fortoldning, ring før levering eller noget helt andet!
Er det muligt at lave gruppen af checkboxe dynamiske ud fra en bestemt celles værdi overhovedet?
Selve det at lave checkboxene har jeg styr på, også værdierne hvis der sættes flueben osv, så det er altså “blot” visningen af dem jeg bøvler med.
En måde kunne være at benytte funktionen: skjul/vis kolonne eller række:
Først skal checkboxen formateres til at skjules, når cellen skjules: 1. Sikre dig at du har valgt Active-X object Checkbox fremfor Kontrolelement for formular checkbox. 2. Makér checkboxen vha. et simpelt højreklik 3. Klik på båndet: "Formatér" 4. Klik på "Se-mere"-pilen nederst til højre I Sektionen: "Størrelse" ude til højre I båndet 5. Udvid afsnittet: "Egenskaber" 6. Vælg: "flyt og juster størrelse sammen med celler"
Nu kan du så indsætte en Checkbox og programmere den til at skjule den kolonne eller den række som du har indsat ovenstående checkbox i. 1. Indsæt et nyt Active-X Object Checkbox, som skal bruges til at skjule/vise den kolonne/række, hvor den anden checkbox er. 2. Højreklik på Active-X Object Checkboxen og vælg "Vis programkode" 3. Indsæt følgende kode på linje 2, dvs mellem de to linjer, som der er i forvejen: [C:C].EntireColumn.Hidden = Not CheckBox1 4. Luk programkoden-editoren (Alt+q)
I koden er den skarpe parentes angivelsen af hvilket kolonne interval, som skal være skjult/vist, når der klikkes. Dvs. i dette tilfælde blot kolonne C. Hvis jeg havde skrevet [C:F], så havde det været kolonne C, D og F, som ville være blevet skjult/vist. Hvis du ønsker at det i stedet skal være række, som skal skjules/vises, så indsæt denne kode i stedet:
[2:2]. EntireRow.Hidden = Not CheckBox1,
Den skjuler/viser, række 2.
Når du så vil prøve det, så husk at klikke på knappen: "Designtilstand", så den slås fra og du kan prøve ActiveX-objectet.
Dette kunne være løsningen, selvfølgelig afhængigt af hvordan dit excel-ark er bygget op.
Hvis du laver en OptionButton for hvert land så kan der kun være prik i en af dem!!
1. Navn giv dem OpDk, OpSe osv. 2. Navn giv dine Checkbox'e CbLevDk osv. 3. Set visible i dine Checkbox'e til False 4. Lav kode for dine OptionButton's, (CbLevDk.Visible=True)
Hej Jan, det lyder som en god løsning! I dag har jeg en Dropdown hvor kunden kan vælge land, så der kan også kun vælges ét land af gangen. Vil det ikke også kunne fungere tror du?
Hej Jan, Jeg bruger VBA ja. Checkboxene ligger “ovenpå”... ikke i celler. Jeg kommer til en computer snart, så vil jeg lege lidt med det igen og prøve løsningerne I er kommet med.
Okay. Jeg skal prøve om jeg kan forklare mig lidt bedre. Jeg har en celle (C16). Den er lavet som en Dropdown fra en liste med ordene “Danmark”, “Finland”, “Sverige” osv. Så har jeg grupper af checkboxe, men jeg starter bare med én. Denne checkbox giver jeg navnet “cblevdk” og planen er, at denne skal blive synlig , og derved “aktiv når man vælger leveringsland “Danmark”. Jeg har indstillet checkboxen til visible “False”. Jeg laver da en “kode” på checkboxen. Denne hedder som følger...
Private sub worksheet_active() If activesheet.range(“c16”).value = “Danmark” Then activesheet.checkbox(“cblevdk”).visible = true End sub
Det virker IKKE som jeg har i hensigt. Kan nogen fortælle mig hvad jeg gør forkert? På forhånd mange tsk
Jeg har aldrig vidst “frames” fandtes!! Det er jo endnu bedre endnu! Meeen hvordan skal koden skrives for at den vises og ikke vises? Det burde jo være den “samme” kode næsten, og den kan jeg jo tydeligvis ikke få til at virke.
Har lige arbejdet lidt med det og det er lidt langhåret 1. man skal oprette Groupbox for hvert land og der efter Checkbokse (alt i en Macro) 2. Når arket aktiveres skal Groupbox'ene læses ind i et array så C16 kan bestemme hvilken Groupbox der er synlig.
hvis du alene vil bruge Checkbox'e skal du ligeledes have dem læst ind i et array så C16 kan bestemme hvilke der skal være synlige
Hvis du vil have hjælp over Teamwiver så skriv en privat besked!!
Private Sub Worksheet_Change(ByVal Target As Range) select case range("C16").Value Case "Danmark" CheckBox1.Visible = True CheckBox2.Visible = False Case "Norge" CheckBox1.Visible = False CheckBox2.Visible = True Else Case CheckBox1.Visible = False CheckBox2.Visible = False End select End Sub
Hej Jan Med din hjælp gav jeg mig i kast med “frames” det har jeg fået til at virke med en enkelt om ikke andet. Nu ville jeg så prøve at tolke et Par flere frames, og så tilføje nogle flere “IF” formler i VBA, men nu virker ikke en gang den FØRSTE mere! Det har virket hele dagen på mit arbejde, men nu da jeg kommer hjem, så virker det pludselig ikke mere! Jeg arbejder i to forskellige Excel udgaver, kan det gøre en forskel? Umiddelbart skal det jo virke i alle udgaver, da jeg jo ikke ved hvor iopdsteret en version mine kunder har!! Jeg bruge nedenstående kode og fik det til at virke.
Code: Private Sub Worksheet_Calculate() If Range(“H29”).Value = 1 Then Me.Shapes(“Frame1”).Visible = True Else Me.Shapes(“Frame1”).Visible = False End If End Sub
Har du en god grund til at den så pludselig ikke virker mere?
Synes godt om
Ny brugerNybegynder
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.