Avatar billede swamboo Seniormester
12. november 2019 - 15:49 Der er 7 kommentarer og
1 løsning

Checkbox font og navn

Hej kloge gutter og gutinder :-)

Jeg har brug for at tilføje et par checkbokse til mit ark, lige omkring 900 stk.
Derfor vil jeg meget gerne navngive dem, så jeg kan lave evt. fremtidige ændringer.
MEN HVORDAN?
Det er IKKE en form, men direkte, nærmest oven på, et ark.

Jeg bruger følgende til at oprette dem:
    ActiveSheet.CheckBoxes.Add(226.2, 55.2, 72, 72).Select
    ActiveSheet.Shapes("Check Box 13").IncrementLeft -17.4
    ActiveSheet.Shapes("Check Box 13").IncrementTop -6.6
    Selection.Characters.Text = "MT-er"

2 spørgsmål:
Hvordan giver jeg den et navn så den ikke hedder check box 13?
Hvordan ændrer jeg font til Times New Roman (størrelse 8)

PÅ forhånd tak!!! :-)
Avatar billede Jan Hansen Ekspert
12. november 2019 - 17:48 #1
prøv at lege videre med følgende kode

Option Explicit
Dim ws As Worksheet
Dim ChBox As CheckBox
Dim Count As Integer, BoxName As String

Sub LavCheckBox()
    Set ws = ActiveSheet
    For Count = 1 To 2
        BoxName = "ChBox" & Count
        Set ChBox = ws.CheckBoxes.Add(10, 20 * Count, 10, 10)
        With ChBox
            .Name = BoxName
            .Text = "Mt-er"
        End With
    Next Count
End Sub
Avatar billede store-morten Ekspert
12. november 2019 - 20:41 #2
"2 spørgsmål:"
"Hvordan giver jeg den et navn så den ikke hedder check box 13?"

Se kode:
Der navn giver: cbx_B2..... (cbx + celle)
Og linker til celle og formatere til hvid tekst (så SAND/FALSK ikke ses)

"Hvordan ændrer jeg font til Times New Roman (størrelse 8)?"
Det tror jeg ikke man kan med Kontrolelementer.

Sub Opret_CheckBoxes_i_Område()
Dim c As Range
Dim myCBX As CheckBox
Dim wks As Worksheet
Dim rngCB As Range
Dim strCap As String

Set wks = ActiveSheet
Set rngCB = wks.Range("B2:C10")
'Set rngCB = Selection

    With rngCB.Font
        .ThemeColor = xlThemeColorDark1
        .TintAndShade = 0
    End With

strCap = "Mt-er"

For Each c In rngCB
  With c
    Set myCBX = wks.CheckBoxes.Add _
      (Top:=.Top, Width:=.Width, _
      Height:=.Height, Left:=.Left)
  End With
  With myCBX
    .Name = "cbx_" & c.Address(0, 0)
    .LinkedCell = c.Offset(0, 0) _
        .Address(external:=True)
    .Caption = strCap
'    .OnAction = ThisWorkbook.Name _
'        & "!mycbxMacro"
  End With
Next c

End Sub
Avatar billede Jan Hansen Ekspert
13. november 2019 - 09:17 #3

Option Explicit

Dim ws As Worksheet
Dim ObChBox As OLEObject
Dim Area As Range, Cell As Range
Dim Count As Integer
Dim Sha As Shape

Sub SletCheckboxe()
    Set ws = ActiveSheet
    For Each Sha In ws.Shapes
        Sha.Delete
    Next
End Sub
Sub LavCheckbox()
    Set ws = ActiveSheet
    Set Area = ws.Range("B2:B9")
    Count = 0
    For Each Sha In ws.Shapes
        Sha.Delete
    Next
    For Each Cell In Area
        Count = Count + 1
        Set ObChBox = ws.OLEObjects.Add(ClassType:="Forms.CheckBox.1", Link:=False, _
            DisplayAsIcon:=False, Left:=10, Top:=10, Width:=10, Height:=10)
        With ObChBox
            .Name = "NyCheckBox" & Count
            .Object.Caption = "Mt-er"
            .Top = Cell.Top + 1
            .Left = Cell.Left + 1
            .Width = Cell.Width - 2
            .Height = Cell.Height - 2
            .LinkedCell = Cell.Address
            With .Object.Font
                .Name = "Times New Roman"
                .Size = 8
            End With
        End With
    Next
End Sub
Avatar billede swamboo Seniormester
14. november 2019 - 18:31 #4
Hej Jan,

Super sejt lavet.
Er det muligt at lave koden så man kan kopiere det med check boksene, eller er det ikke muligt når man også kræver speciel skrifttype?

Mvh.
Frank :-)
Avatar billede Jan Hansen Ekspert
14. november 2019 - 18:55 #5
Denne linie bestemmer hvilke celler der skal ligge en checkbox over

Set Area = ws.Range("B2:B9")
Avatar billede swamboo Seniormester
14. november 2019 - 21:22 #6
Tak! :-)
Jeg tænker nærmere hvis man får behov for at kopiere en del af arket over i et andet ark, om man så kan lave det så de bokse kommer med, for det ser ikke ud som om de vil lade sig kopiere :-)
Avatar billede swamboo Seniormester
14. november 2019 - 22:39 #7
Jeg har et problem med at teksten til check boksen står meget lavt, så halvdelen af teksten bliver skåret af. Kan man ændre det?
Avatar billede Jan Hansen Ekspert
14. november 2019 - 23:25 #8
#6 kør macroen i det nye ark og  checkboxsene kommer der ( husk ret area)
    da Sand/Falsk kommer over ved kopi vil checkboxen stå rigtig da den er kædet til
    cellen under.
#7 Gør række højden større checkboxen fylder har en margin på 1 pix til cellen så det
    ligner den er en del af cellen.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester