Avatar billede mrkr Juniormester
04. juli 2010 - 09:16 Der er 7 kommentarer og
1 løsning

Indsætte checkboxe via makro

Jeg har et ark med data i kolonne A-H, der hele tiden varierer i antal linjer. Dvs. at nogle gange er der 10 linjer. andre gange er der 150 linjer med data.

Jeg vil meget gerne have indsat nogle checkboxe ud for hver linje der indeholder data fra gang til gang.

Jeg håber på at det kan lade sig gøre at checkboxene kan indsættes ca i kollone I.
Hver enkelt checkbox skal "linkes" sammen med kolonne H som udgangspunkt altid er SAND fra start.

Kan det lade sig gøre at lave en sådan makro, eller er det noget man skal gøre manuelt?
Avatar billede newbieatphp Nybegynder
04. juli 2010 - 10:02 #1
hvad med noget i denne retning:

Sub CheckBoxes()
    Dim height As Double
    Dim name As String
    For i = 0 To 3
        name = "CheckBox" & i + 2
        height = 9.75 + (i * 12.75)
        ActiveSheet.CheckBoxes.Add(405, height, 24, 17.25).Select
        Selection.name = name
    Next
End Sub

CheckBoxene bliver tildelt navn efter hvilken række de er indsat i.
Hvis du har anden højde på cellerne end 12,75, så skal det tilpasse, detsamme skal hvor det skal stå - hos mig er det i kolonne i.
Avatar billede mrkr Juniormester
04. juli 2010 - 10:59 #2
ja, du har fat i noget af det rigtige. :-)
Men der er lige lidt tilrettelser.

1. Der skal ikke være nogen "label" i de enkelte chekcboxe. Det skal kun være checkboxene som skal være synlige.

2. Den skal teste i hvilke linjer den skal lave checkboxene. Den skal "kun" lave i de linjer der står noget i kolonne A (varierer fra 2-150 linjer)

3. De enkelte checkboxe skal linkes sammen med cellen i kolonne H i samme linje som checkboxen. Kolnne H er SAND/ FALSK og som udgangs punkt står de til SAND alle sammen når checkboxene bliver dannet.
Avatar billede newbieatphp Nybegynder
04. juli 2010 - 11:08 #3
Hvad præcis mener du med, at de skal være linket til cellen i H?

Hvis H er sand, så skal der være flueben, og ellers ikke?
Eller?
Avatar billede mrkr Juniormester
04. juli 2010 - 11:15 #4
jep, det er korrekt.
Men den skal også have en kæde/link til cellen i kolonne H

Når man indsætter en checkbox som et kontrolelement manuelt kan man vælge en "cellekæde"
Når man indsætter en checkbox som et activeXobjekt manuelt kan man vælge en "linkedCell"

Ved begge løsninger hænger celler og checkboxe sammen.
Kan det lade sig gøre?

Jeg har forsøgt at optage med en makrooptager og der står der f.eks. :
        .LinkedCell = "a5"

Men jeg kan ikke finde ud af få det ind i koden.
Avatar billede newbieatphp Nybegynder
04. juli 2010 - 12:18 #5
Det kan sagtens lade sig gøre, jeg skal bare lige vide en ting.

Jeg har lavet noget, som indsætter checkbox, og linker til H cellen. Ligenu bliver værdien i H ændret til FALSK hvis der står noget deri.

Er det meningen, at checkboxen skal have flueben, hvis der står SAND, eller skal de være uden?
Avatar billede newbieatphp Nybegynder
04. juli 2010 - 12:31 #6
Sub CheckBoxes()
    Dim height As Double
    Dim name As String
    Dim h As Boolean
    For i = 2 To 4
        h = Cells(i, 8).Value
        If ActiveSheet.Cells(i, 1) <> "" Then
            name = "CheckBox" & i
            height = 9.75 + ((i - 2) * 12.75)
            ActiveSheet.CheckBoxes.Add(405, height, 24, 17.25).Select
            With Selection
                .name = name
                .Characters.Text = ""
                .LinkedCell = "H" & i
            End With
            If h Then
                Cells(i, 8).Value = True
            End If
        End If
    Next
End Sub

Hvis det ikke er meningen, at H skal være sand, hvis den var det, så kan du bare fjerne den sidste IF løkke
Avatar billede mrkr Juniormester
04. juli 2010 - 12:42 #7
Yes, det var fuldstændig sådan jeg havde tænkt mig at den skulle løses. :-)

Mange tak for hjælpen.

Har du et svar så jeg kan afgive points
Avatar billede newbieatphp Nybegynder
04. juli 2010 - 13:09 #8
super
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