Avatar billede excel_desperado Nybegynder
09. oktober 2008 - 10:36 Der er 7 kommentarer og
1 løsning

Styring af valgfrie checkboxe

Jeg har en række checkboxe som jeg gerne vil tilgå via deres navne, men uden at skulle skrive alle deres navne i vbakoden...
I et andet sheet skal man således kunne skrive checkbox-navnene, trykke på en knap, hvorved de valgte checkboxes sættes til true.

Jeg har testet lidt rundt med følgende:

For i = 1 To 2
var1 = Cells(2 + i, 6).Value
If Cells(2 + i, 1) = "x" Then
ActiveSheet.OLEObjects(var1).Object.Value = true
Else
ActiveSheet.OLEObjects(var1).Object.Value = false
End If
Next i

var1 indeholder altså navnet på cb'en, som skal aktiveres hvis der samtidig står "x" i en anden celle.
Det ser ud til at ActiveSheet.OLEObjects(var1).Object.Value = true godt kan bruges én gang, men så snart det står flere gange får jeg en fejlmelding hvor der blot står tallet 400...

Håber mit spm gav mening :-)
Avatar billede excelent Ekspert
09. oktober 2008 - 16:33 #1
Sub test()

For Each c In Sheets("Ark4").Range("A3:A5")
navn = c.Value
Sheets("Ark3").OLEObjects(navn).Object = False
If c.Offset(0, 5) = "x" Then Worksheets("Ark3").OLEObjects(navn).Object = True
Next

End Sub

Ark3 = hvor checkbokse er - ret evt. til aktuel
Ark4 = hvor x sættes - ret evt til aktuel
For Each c In Sheets("Ark4").Range("A3:A5") = hvor x'er er ret evt.
Avatar billede excelent Ekspert
09. oktober 2008 - 16:34 #2
fejl
For Each c In Sheets("Ark4").Range("A3:A5") = hvor x'er er ret evt.
skulle være
For Each c In Sheets("Ark4").Range("A3:A5") = hvor navne er ret evt.
Avatar billede excel_desperado Nybegynder
10. oktober 2008 - 09:06 #3
Hej excelent
Jeg får stadig en mærkværdig fejlmelding hvor der bare er er et stort rødt kryds og så står der bare tallet 400...
Avatar billede excelent Ekspert
10. oktober 2008 - 16:25 #4
prøv send din fil, eller en eks.fil
pm@madsen.tdcadsl.dk
Avatar billede excel_desperado Nybegynder
15. oktober 2008 - 10:52 #5
Meget mystisk; men efter at have lukket og åbnet det eksempel jeg sendte dig, virker det nu uden fejlmeddelese og det hele... Knapt så betryggende egentlig!
For god ordens skyld er koden her:

For i = 1 To 2

For Each c In Range("D" & i + 3 & ":E" & i + 3)

    If IsEmpty(c) = False Then
        navn = c.Value
   
        If Cells(i + 3, 2).Value = "x" Then
            OLEObjects(navn).Object = True
        End If

    End If
   
Next

Next i
Avatar billede excel_desperado Nybegynder
15. oktober 2008 - 11:13 #6
prøvede så at flytte x-inputtet til et andet sheet. Så er vi tilbage med fejl 400:


For i = 1 To 2

For Each c In Sheets("sheet2").Range("D" & i + 3 & ":E" & i + 3)

    If IsEmpty(c) = False Then
        navn = c.Value
   
        If Sheets("sheet2").Cells(i + 3, 2).Value = "x" Then
            Sheets("sheet1").OLEObjects(navn).Object = 1
        End If

    End If
   
Next

Next i
Avatar billede excelent Ekspert
16. oktober 2008 - 17:02 #7
Der var fejl ved checkbox navne
Avatar billede excel_desperado Nybegynder
16. oktober 2008 - 17:20 #8
takker. Det virker perfekt
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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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