Excel / VBA - Kuinka luoda useita valintaruutuja

Excel / VBA - Kuinka luoda useita valintaruutuja

Tässä artikkelissa opit luomaan valintaruutuja, jotka liitetään automaattisesti tiettyihin soluihin. VBA ei salli useiden valintaruutujen luomista kerralla. Voit liittää valintaruudut manuaalisesti tiettyihin soluihin (Kopioi / Liitä). Jokaisen valintaruudun kopion on valittava solu. Tämä on melko ikävä tehtävä!

Päästä alkuun

Ohjaustyyppi

  • Excelissä on kahdenlaisia ​​valintaruutuja: lomakkeet ja ActiveX-komponentit. Tässä artikkelissa käytämme lomakkeen tyyppiä.

Vältä Excel-levyn sekoittamista liian moniin kohteisiin

  • Excel ei aina käsittele kunnolla sivua (näyttöä), varsinkin jos aiot käyttää työkirjaa useissa Excel-versioissa.

Valintaruutujen luominen

Jokaisesta valintaruudusta tulee kaksi tärkeää solua:
  • Sijainnin solu : se, jonka me valitsemme.
  • Linkitetty solu : sellainen, jossa palautamme valintaruudun tulokset.
  • Huomaa, että tässä esimerkissä paikkakenno ja linkitetty solu ovat samat. Tämän ruudun tarkistaminen tai poistaminen palauttaa TRUE tai FALSE linkitetyssä solussa. Valitettavasti Excel ei pysty määrittämään useita valintaruutuja. Tämän rajoituksen voittamiseksi on kaksi mahdollista ratkaisua:

Ratkaisu 1

Tämä yksinkertainen VBA-koodi, kun (manuaalisesti) käynnistetään, luo valintaruudut yhdessä linkitettyjen solujen kanssa.

Koodi

  • Paina työkirjasta ALT + F11 päästäksesi VBA-editoriin.
  • Napsauta Lisää> Moduuli .
  • Kopioi ja liitä alla oleva koodi:

 Vaihtoehto Selkeä Sub Inserer_Cases_a_cocher_Liees () Dim rngCel As Range Dim ChkBx Kuten valintaruutu jokaiselle rngCelille valinnassa rngCel.MergeArea.Cells Jos .Resize (1, 1) .Address = rngCel.Address Sitten 'Pour ne pas ahere la valeur de la cellule liée, suurenna l'apostrophe en début de ligne suivante: '.NumberFormat = ";;;" Aseta ChkBx = ActiveSheet.CheckBoxes.Add (.Left, .Top, .Width, .Height) ChkBx 'valeur par défaut: .Value = xlOff' pourrait être True ou 'cellule liée .LinkedCell = rngCel.MergeArea.Cells. Osoite 'Texte de remplacement' .Characters.Text = "TITI" 'texte' .Text = "Toto" 'ou: .Caption = "Toto"' bordure: With .Border 'Style de ligne' .LineStyle = xlLineStyleNone 'ou xlContinuous 'xuDashDot ol xashDotDot ou xlDot' couleur '.ColorIndex = 3' 3 = rouge 'épaisseur du trait' .Weight = 4 End with 'accesssibles aussi les propriétés .Locked, .Name, .Enabled jne. Lopeta Seuraava rngCel End Sub 

Voit käyttää tätä koodia:

Mistä tahansa työkirjan sivusta:
  • Valitse solualue, johon haluat lisätä valintaruudut,
  • Paina Alt + F8 .
  • Valitse moduuli ja napsauta Suorita .

Ratkaisu 2

Tässä esimerkissä käytämme Worksheet_SelectionChange- tapahtumaa liipaisimena.

Tämä tapahtuma käynnistää koodin automaattisesti aina, kun valitset solun (tietyn alueen sisällä).

Ehdotettu koodi silmukoi kaikkien solujen läpi valitulta alueelta ja jos solu on "Wingdings" -kirjasimessa, se lisää valintaruudun.

Koodi

Voit lisätä tämän koodin seuraavasti:
  • Avaa haluamasi arkki.
  • Napsauta hiiren kakkospainikkeella arkin välilehteä> Näytä koodi .
  • Kopioi ja liitä alla oleva koodi:

 Vaihtoehto Selkeä Private Sub Worksheet_SelectionChange (ByVal Target As Range) 'Rajoitus de la plage. Pour une feuille enière mettez une apostrophe en déut de la ligne suivante Jos leikkaa (Unioni ([A2: A10], [D2: D10]), Target) Ei mitään Poistu alivyöhykkeestä A2: A10; D2: D10 Jos kohde. Count = 1 tai Target.MergeCells Sitten Jos Target.Font.Name = "Wingdings" Sitten Target 'cellule "liée" .Value = Abs (.Range ("A1"). Arvo - 1) .NumberFormat = "" "þ ""; Yleistä; "" o ""; @ "Sovellus.EnableEvents = Väärä. Vaihda (" A1 "). Offset (, 1) .Valitse sovellus. 

Voit käyttää tätä koodia:

  • Valitse solualue.
  • Käytä Wingdings-fonttia.
  • Napsauta missä tahansa työarkissa ja sitten jokaisessa aiemmin valitussa solussa.

Koodin käyttäminen suojatulla työkirjalla / arkilla

 ActiveSheet.Protect "admin" 'admin = votre mot de passe' VOI KOODI TÄSTÄ ActiveSheet.Unprotect "admin" 

Jos arkisi on suojattu, sinun on suojattava koodi. Tämä voidaan saavuttaa käyttämällä seuraavaa koodia:

Edellinen Artikkeli Seuraava Artikkeli

Top Vinkkejä