Avatar billede friis5 Novice
03. marts 2008 - 15:12 Der er 2 kommentarer og
1 løsning

Dynamiske togglebuttons

Jeg undres over hvordan man laver dynamiske Togglebuttons - egentligt er det bare nedenstående kode, jeg ønsker ændret! Her er det en checkbox der bliver dynamisk tilført arket - ligeledes ønsker jeg det ske med en togglebox.

Sub chkb()

Dim RngChckBox

    Set RngChckBox = Range("A1")
        ActiveSheet.CheckBoxes.Add(RngChckBox.Left, RngChckBox.Top, RngChckBox.Width, RngChckBox.Height).Select
        With Selection
            .LinkedCell = "'Ark2'!" & RngChckBox.Address
            .Characters.Text = "Test"
            .OnAction = "msg"
        End With

End Sub

Sub msg()

    MsgBox "hej"

End Sub
Avatar billede friis5 Novice
03. marts 2008 - 17:19 #1
Nu har jeg fundet noget, men jeg kan ikke få linked cell til at virke - nogen der kan forklare mig hvorfor? Det fungerer i hvert fald ikke som med checkboxen. Men jeg kan godt manuelt lave linkedcell bagefter (desværre bare ikke optage det i makro) :(

Sub tgbtn()

Dim RngTgnBtn

    Set RngLink = Range("F2")
    Set RngTgnBtn = Range("E8:F9")
        ActiveSheet.OLEObjects.Add("Forms.ToggleButton.1", , , , , , , RngTgnBtn.Left, RngTgnBtn.Top, RngTgnBtn.Width, RngTgnBtn.Height).Select
        'With Selection
            '.LinkedCell = RngLink.Address
            '.Characters.Text = "Test"
            '.OnAction = "msg"
        'End With

End Sub
Avatar billede friis5 Novice
05. marts 2008 - 13:56 #2
Nu har jeg fået lavet linkedcell, men jeg kan stadig ikke få OnAction til at virke - er der nogen der har en idé til hvordan?

Sub test()

Dim i As Integer

For i = 1 To 6
   
    If i Mod 2 = 0 Then
        Range("A1").Cells(i, 1) = Rnd
    Else: Range("A1").Cells(i, 1) = -1 * Rnd
    End If
   
    Call AddToggle(i)
Next i

End Sub

Sub AddToggle(i As Integer)

Dim RngTgBtn As Range
Dim Str As String

    If Left(ActiveSheet.Cells(i, 1), 1) = "-" Then
        Str = Left(ActiveSheet.Cells(i, 1), 5)
    Else: Str = Left(ActiveSheet.Cells(i, 1), 4)
    End If

    Set RngTgBtn = Range("A1").Cells(4, 3 + i)
    RngTgBtn.RowHeight = 16.5

    With ActiveSheet
        .OLEObjects.Add(ClassType:="Forms.ToggleButton.1").Select
            With Selection
                .Left = RngTgBtn.Left
                .Top = RngTgBtn.Top
                .Width = RngTgBtn.Width
                .Height = RngTgBtn.Height
                .Name = "myTglBtn" & i
            End With
            With Selection.Object
                .Caption = Str
                .Font.Size = 7
                .Font.Bold = True
                .Value = True
            End With
        .Shapes("myTglBtn" & i).OLEFormat.Object.LinkedCell = "'" & ActiveSheet.Name & "'!" & Range("A1").Cells(1, 3 + i).Address
        .Shapes("myTglBtn" & i).OLEFormat.Object.OnAction = ThisWorkbook.Name & "!" & "Working.msg1"
    End With
   
End Sub

Sub msg1()

    MsgBox "Working", vbInformation

End Sub
Avatar billede friis5 Novice
12. oktober 2012 - 11:20 #3
Kan ikke huske problemstillingen længere - fik det løst dog.
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
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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