Excel / VBA - Több jelölőnégyzet létrehozása

Excel / VBA - Több jelölőnégyzet létrehozása

Ebben a cikkben megtudhatja, hogyan hozhat létre jelölőnégyzeteket, amelyek automatikusan kapcsolódnak bizonyos cellákhoz. A VBA nem engedélyezi több jelölőnégyzet létrehozását egyszerre. A jelölőnégyzeteket manuálisan linkelheti egyes cellákba (Másolás / Beillesztés). A jelölőnégyzet minden egyes példányához ki kell választania egy cellát. Ez elég unalmas feladat!

Elkezdeni

A vezérlő típusa

  • Kétféle jelölőnégyzet van az Excelben: űrlapok és ActiveX-vezérlők. Ebben a cikkben az űrlaptípust fogjuk használni.

Kerülje el, hogy az Excel lapot túl sok elemzel tegyük meg

  • Az Excel nem mindig jól kezeli a zsúfolt oldalt (megjelenítést), különösen akkor, ha egy munkafüzetet szeretne használni az Excel több változatán.

A jelölőnégyzetek létrehozása

Mindegyik jelölőnégyzetnél két fontos cellája lesz:
  • A pozíciócella : az, amelyre jelöljük a jelölőnégyzetet.
  • A kapcsolt cella : az egyik, amelyben visszajuttatjuk a jelölőnégyzet eredményét.
  • Megjegyezzük, hogy ebben a példában a helyzetcella és a kapcsolt cellák azonosak. Ennek a négyzetnek az ellenőrzése vagy törlése a TRUE vagy FALSE értéket adja vissza a kapcsolt cellában. Sajnos az Excel nem ad lehetőséget arra, hogy több jelölőnégyzetet állítson be. A korlátozás leküzdésére két lehetséges megoldás létezik:

1. megoldás

Ez az egyszerű VBA-kód, amikor (manuálisan) aktiválódik, a csatolt cellákkal együtt létrehozza a jelölőnégyzeteket.

A kód

  • A munkafüzetből nyomja meg az ALT + F11 billentyűt a VBA szerkesztő eléréséhez.
  • Kattintson a Beszúrás> Modul elemre.
  • Másolja és illessze be az alábbi kódot:

 Opció Kifejezett Sub Inserer_Cases_a_cocher_Liees () Dim rngCel as Range A ChkBx mint CheckBox minden rngCel számára Az rngCel.MergeArea.Cells kiválasztása esetén Ha .Resize (1, 1) .Address = rngCel.Address Ezután 'Pour ne pas affic the la celle liée, suurenevez l'apostrophe en début de ligne suivante: '.NumberFormat = ";;;" ChkBx = ActiveSheet.CheckBoxes.Add (.Left, .Top, .Width, .Height) beállítása ChkBx 'valeur par défaut: .Value = xlOff' pourrait être True ou 'cellule liée .LinkedCell = rngCel.MergeArea.Cells. 'Texte de remplacement' cím .Characters.Text = "TITI" 'texte' .Text = "Toto" 'ou: .Caption = "Toto"' határ:: .Border 'Style de ligne' .LineStyle = xlLineStyleNone 'ou xlContinuous 'xuDashDot ou xlDashDotDuOl xlDot' couleur '.ColorIndex = 3' 3 = rouge 'épaisseur du trait' .Weight = 4 End with 'accesssibles aussi les propriétés .Locked, .Name, .Enabled stb. Vége a következő rngCel befejezéssel 

A kód használatához:

A munkafüzet bármely lapjáról:
  • Válassza ki azt a cellatartományt, amelybe be kívánja helyezni a jelölőnégyzeteket.
  • Nyomja meg az Alt + F8 billentyűt .
  • Válassza ki a modult és kattintson a Futtatás gombra.

2. megoldás

Ebben a példában a Worksheet_SelectionChange eseményt triggerként fogjuk használni.

Ez az esemény automatikusan elindítja a kódot, amikor kiválaszt egy cellát (egy bizonyos tartományon belül).

A javasolt kód a kiválasztott tartomány összes celláján keresztül hurok, és ha a cella "Wingdings" betűtípusban van, akkor bejelöl egy jelölőnégyzetet.

A kód

A kód beillesztése:
  • Nyissa meg a kívánt lapot.
  • Kattintson a jobb egérgombbal a lap lapjára> Nézet kód .
  • Másolja és illessze be az alábbi kódot:

 Opció Kifejezetten privát részmunkafüzet_választásKapcsolás (ByVal Target As Range) „Korlátozás de la plage. Ha nem keresztezi a láncot, ha nem keresztezi egymást (Unió ([A2: A10], [D2: D10]), cél) Nincs kilépés az A2 aloldalról: A10; D2: D10 Ha a cél. Count = 1 vagy Target.MergeCells Ezután ha Target.Font.Name = "Wingdings" Ezután a Target 'cellule "liée" .Value = Abs (.Range ("A1"). Érték - 1) .NumberFormat = "" "þ ""; Általános; "" o ""; @ "Alkalmazás.EnableEvents = Hamis. Változás (" A1 "). Eltolás (, 1). Alkalmazás kiválasztása. 

A kód használatához:

  • Válassza ki a cellatartományt.
  • Alkalmazza a Wingdings betűtípust.
  • Kattintson a munkalapon bárhol, majd minden korábban kiválasztott cellára.

A kód használata védett munkafüzet / lap segítségével

 ActiveSheet.Protect "admin" 'admin = votre mot de passe' TESZT KÓDJÁT HERE ActiveSheet.Unprotect "admin" 

Ha a lapja védett, meg kell védenie a kódot. Ezt az alábbi kód segítségével lehet elérni:

Előző Cikk Következő Cikk

Top Tippek