< návrat zpět

MS Excel


Téma: checkboxy - zarovnání (velikost) v buňce rss

Zaslal/a 8.12.2020 11:16

Dobrý den,

prosím o pomoc. Mám makro, které do vybrané oblasti vloží checkboxy a zároveň je naváže na buňku, ve které je umístěn checkbox. To mi funguje.
Potřeboval bych odstranit automatický název checkboxu, aby se tam ukazoval jen čtvereček a aby byl čtvereček vycentrovaný v dané buňce.
V budoucnu se předpokládá, že se budou vkládat checkboxy do x sloupců a cc do 200-300 řádků. Děkuji za úvahu a pomoc.

Příloha: rar49168_add_checkboxes.rar (18kB, staženo 18x)
Zaslat odpověď >

#049170
avatar
Již jsem nalezl řešení, není třeba řešit. Snad se bude někomu hodit

Sub CreateCheckBoxes()

'Declare variables
Dim c As Range
Dim chkBox As CheckBox
Dim ansBoxDefault as Long
Dim chkBoxRange As Range
Dim chkBoxDefault As Boolean

'Ingore errors if user clicks Cancel or X
On Error Resume Next

'Use Input Box to select cells
Set chkBoxRange = Application.InputBox(Prompt:="Select cell range", _
Title:="Create checkboxes", Type:=8)

'Exit the code if user clicks Cancel or X
If Err.Number <> 0 Then Exit Sub

'Use MessageBox to select checked or unchecked
ansBoxDefault = MsgBox("Should the boxes be checked?", vbYesNoCancel, _
"Create checkboxes")
If ansBoxDefault = vbYes Then chkBoxDefault = True
If ansBoxDefault = vbNo Then chkBoxDefault = False
If ansBoxDefault = vbCancel Then Exit Sub

'Turn error checking back on
On Error Goto 0

'Loop through each cell in the selected cells
For Each c In chkBoxRange

'Create the checkbox
Set chkBox = chkBoxRange.Parent.CheckBoxes.Add(0, 1, 1, 0)

With chkBox

'Set the position of the checkbox based on the cell
.Top = c.Top + c.Height / 2 - chkBox.Height / 2
.Left = c.Left + c.Width / 2 - chkBox.Width / 2

'Set the name of the checkbox based on the cell address
.Name = c.Address

'Set the linked cell to the cell with the checkbox
.LinkedCell = c.Offset(0, 0).Address(external:=True)

'Enable the checkBox to be used when worksheet protection applied
.Locked = False

'Set the caption to blank
.Caption = ""

End With

'Set the cell to the default value
c.Value = chkBoxDefault

'Hide the value in the cell with Number Formatting
c.NumberFormat = ";;;"

Next c

End Subcitovat
#049171
elninoslov
Ja by som tam prirobil ešte kontrolu na existenciu checkboxu pre každú z buniek. Bude to používať človek, tvor omylný, a ľahko môže označiť aj oblasť (trebárs skrytú), kde už checkboxy sú...citovat
#049173
avatar

elninoslov napsal/a:

Ja by som tam prirobil ešte kontrolu na existenciu checkboxu pre každú z buniek. Bude to používať človek, tvor omylný, a ľahko môže označiť aj oblasť (trebárs skrytú), kde už checkboxy sú...


Asi jsem to nepochopil, můžete dát příklad?citovat
#049181
avatar
No, pokud excel nebude stíhat, tak hledej checkboxy.

Narazil jsem na sešit, kde bylo na jednom listu pár desítek tis. graf prvků (nějaké ikony, checkboxy, ...). Uživatelům se podařilo nastavit rozměry na 0, tak nebyly vidět a ctrl-c ctrl-v je geometricky namnožilo. List se zobrazoval docela dlouho. Na druhém listu těch prvků bylo jen necelých 200 tis. List se zobrazoval cca minutu. Ani smazání objektů nebylo snadné, při pokusu vymazat celou collection, excel padal.citovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje