Excel / VBA - Kako ustvariti več potrditvenih polj

Excel / VBA - Kako ustvariti več potrditvenih polj

V tem članku boste izvedeli, kako ustvariti potrditvena polja, ki so samodejno povezana z določenimi celicami. VBA ne dovoljuje ustvarjanja večih potrditvenih polj hkrati. Potrditvena polja lahko ročno povežete s posameznimi celicami (Kopiraj / Prilepi). Za vsako kopijo vašega potrditvenega polja morate izbrati celico. To je precej dolgočasno delo!

Kako začeti

Vrsta nadzora

  • V Excelovih obrazcih in kontrolnikih ActiveX sta dve vrsti potrditvenih polj. V tem članku bomo uporabili vrsto obrazca.

Izogibajte se zapiranju Excelovega lista preveč elementov

  • Excel ne obravnava vedno dobro prenatrpane strani (zaslon), še posebej, če nameravate uporabiti delovni zvezek v več različicah Excela.

Ustvarjanje potrditvenih polj

Za vsako potrditveno polje sta dve pomembni celici:
  • Položajna celica : tista, ki jo bomo narisali.
  • Povezana celica : tista, v kateri bomo vrnili rezultat našega potrditvenega polja.
  • Upoštevajte, da sta v tem primeru pozicijska celica in povezana celica enaka. Če potrdite ali počistite to polje, se bo v povezani celici vrnila TRUE ali FALSE . Na žalost Excel ne omogoča nastavitve večih potrditvenih polj. Dve možni rešitvi za odpravo te omejitve sta:

Rešitev 1

Ta preprosta koda VBA, ko se (ročno) sproži, bo ustvarila potrditvena polja skupaj s povezanimi celicami.

Koda

  • V svojem delovnem zvezku pritisnite ALT + F11 za dostop do urejevalnika VBA.
  • Kliknite Vstavi> Modul .
  • Kopirajte in prilepite spodnjo kodo:

 Možnost Izrecno Sub Inserer_Cases_a_cocher_Liees () Dim rngCel Kot Območje Dim ChkBx Kot CheckBox za vsakega rngCel V Izbira Z rngCel.MergeArea.Cells Če .Resize (1, 1) .Address = rngCel.Address Potem "Pour ne pas afficher ".NumberFormat =" ;;; " Nastavite ChkBx = ActiveSheet.CheckBoxes.Add (.Left, .Top, .Width, .Height) Z ChkBx 'valeur par défaut: .Value = xlOff' pourrait True True ali False 'cellule. Naslov 'Texte de remplacement' .Characters.Text = "TITI" 'texte' .Text = "Toto" 'ou: .Caption = "Toto" "bordure: Z .Border" Style de ligne ".LineStyle = xlLineStyleNo 'ou xlDashDot ali xlDashDotDot ali xlDot' couleur '.ColorIndex = 3' 3 = rouge 'epaisseur du trait' .Weight = 4 End Z 'accessibles aussi les propriétés .Locked, .Name, .Enabled etc ... End With End If Končajte z naslednjo rngCel End Sub 

Če želite uporabiti to kodo:

Iz katerega koli lista vašega delovnega zvezka:
  • Izberite obseg celic, v katere želite vstaviti potrditvena polja,
  • Pritisnite Alt + F8 .
  • Izberite modul in kliknite Zaženi .

Rešitev 2

V tem primeru bomo kot sprožilec uporabili dogodek Worksheet_SelectionChange .

Ta dogodek bo samodejno zagnal kodo vsakič, ko izberete celico (v določenem razponu).

Predlagana koda se bo prekrivala skozi vse celice iz izbranega območja in če bo celica v pisavi "Wingdings", bo vstavila potrditveno polje.

Koda

Če želite vstaviti to kodo:
  • Odprite list po vaši izbiri.
  • Z desno miškino tipko kliknite zavihek lista> Prikaži kodo .
  • Kopirajte in prilepite spodnjo kodo:

 Možnost Eksplicitna zasebna poddelavnica_SectionChange (ByVal Target As Range) 'Omejitev de la plage. Če je Intersect (Unija ([A2: A10], [D2: D10]), Target) Nič, potem zapustite Sub 'plage A2: A10; D2: D10 Če je tarča. Count = 1 Ali Target.MergeCells Potem Če Target.Font.Name = "Wingdings" Potem s Target "cellule" liée .Value = Abs (.Range ("A1"). Vrednost - 1) .NumberFormat = "" " ""; General; "" o ""; @ "Application.EnableEvents = False. Razmerje (" A1 "). Offset (, 1) .Izberite Application.EnableEvents = True End s End, End End, End Sub 

Če želite uporabiti to kodo:

  • Izberite obseg celic.
  • Uporabite pisavo Wingdings.
  • Kliknite kjerkoli na delovnem listu in nato na vsako od predhodno izbranih celic.

Uporaba kode z zaščitenim delovnim zvezkom / listom

 ActiveSheet.Protect "admin" 'admin = glasujte za passe' VKLJUČITE KODO TUKAJ ActiveSheet.Unprotect "admin" 

Če je vaš list zaščiten, morate kodo odstraniti. To je mogoče doseči z uporabo spodnje kode:

Prejšnji Članek Naslednji Članek

Top Nasveti