• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

VBA checkbox

Status
Niet open voor verdere reacties.

Fastback71

Gebruiker
Lid geworden
19 feb 2020
Berichten
6
Goedendag,

In Excel maak ik gebruik van VBA om checkboxen toe te voegen (aan de hand van gevulde cellen in een bepaalde kolom), checkboxen selecteren/deselecteren en om de gehele checkbox weer te verwijderen.
Mijn VBA kennis is beperkt, maar o.a. dit forum als informatiebron kom ik een heel eind.
Deze betreffende codes werken uitstekend waar ik het voor wil gebruiken. Echter loop ik tegen het probleem aan dat zodra ik het werkblad publiceer naar PDF, de selectievakjes veranderen in een zwart vlak. Dit stoort mij enorm, en heb al van alles geprobeerd.
Het viel mij op dat dit bij ActiveX selectievakjes niet gebeurd in PDF vorm.

Mijn vraag:
1. Zien jullie wellicht nog een mogelijkheid om dat zwarte vlak in de PDF te voorkomen in de huidige situatie. (Ik publiceer een PDF middels VBA).
2. Zo niet, is er iemand die mij zou kunnen helpen om de bestaande codes om te zetten naar ActiveX selectievakjes ipv formulier selectievakjes. Met dezelfde functionaliteiten; Checkbox toevoegen/verwijderen. aanvinken/vinkjes weg.

Bijgaand een voorbeeld bestand.

Ik hoor het graag.

Vriendelijk groet,
Jeffrey
 

Bijlagen

  • checkbox.xlsm
    74,2 KB · Weergaven: 69
Hier ziet het er hier keurig uit.
Zowel aan als uit.

Dit stukje selecteert in ieder geval geen checkbox bij het aanmaken.
Code:
  CheckBoxes.Add(MyLeft, MyTop, MyWidth, MyHeight) .Caption = ""
            '.Value = xlOff  'kan eruit → standaard = xlOff
            '.Display3DShading = False  'standaard = false
            'End With   'kan weg
 
Hier ziet het er hier keurig uit.
Zowel aan als uit.

Dit stukje selecteert in ieder geval geen checkbox bij het aanmaken.
Code:
  CheckBoxes.Add(MyLeft, MyTop, MyWidth, MyHeight) .Caption = ""
            '.Value = xlOff  'kan eruit → standaard = xlOff
            '.Display3DShading = False  'standaard = false
            'End With   'kan weg

Bedankt voor je reactie en aanvulling Harry.
Enig idee hoe ik dezelfde functionaliteiten kan krijgen maar dan met ActiveX checkboxen?
Hier staat veel informatie, maar het lukt mij niet om deze zelf toe te passen helaas.
https://wellsr.com/vba/2015/excel/complete-guide-to-excel-vba-ActiveX-checkboxes/
 
Laatst bewerkt:
Even puzzelen.
Code:
For i = 1 To 5
   Blad1.OLEObjects.Add("Forms.CheckBox.1", , , , , , , Cells(i, 1).Left, Cells(i, 1).Top).Object.Caption = ""
 Next
 
Ik kom er helaas niet uit. Al heel wat uurtjes gepuzzeld.
Onderstaande geeft een vreemd resultaat en zal ongetwijfeld niet juist zijn:

Code:
Private Sub CommandButton2_Click()
Dim cell, LRow As Single
Dim objX As OLEObject
Dim MyLeft, MyTop, MyHeight, MyWidth As Double

Application.ScreenUpdating = False
LRow = ActiveSheet.Range("D" & Rows.Count).End(xlUp).Row

For cell = 2 To LRow
    If Cells(cell, "D").Value > "0" Then
        MyLeft = Cells(cell, "E").Left
        MyTop = Cells(cell, "E").Top
        MyHeight = Cells(cell, "E").Height
        MyWidth = Cells(cell, "E").Width
        For i = 1 To 5
   Blad1.OLEObjects.Add("Forms.CheckBox.1", , , , , , , Cells(i, 1).Left, Cells(i, 1).Top).Object.Caption = ""
 Next
        
    End If
Next cell

Application.ScreenUpdating = True
End Sub

Wanneer er een cel in kolom D een waarde heeft groter dan '0' moet de checkbox in kolom E geplaatst worden op dezelfde regels.
 
zo?
Code:
If Cells(cell, "D").Value >[COLOR="#FF0000"]0[/COLOR] Then
 
Laatst bewerkt:
zo?
Code:
If Cells(cell, "D").Value >[COLOR="#FF0000"]0[/COLOR] Then

Beste Albert,

Bedankt voor je reactie.
Dit maakt echter geen verschil. Zodra ik de code uitvoer zoals geschetst hierboven duurt de uitvoer ervan behoorlijk wat tijd, en worden er uiteindelijk 5 checkboxen geplaatst in cellen A1 t/m A5.
Ik kan dit stukje van de code dan ook niet plaatsen ; For i = 1 To 5
 
Ik heb eerlijk gezegd geen idee wat je met de code wilt bereiken.
Code:
For i = 1 To 5
        Blad1.OLEObjects.Add("Forms.CheckBox.1", , , , , , , Cells(i, 1).Left, Cells(i, 1).Top).Object.Caption = ""
    Next
deze code plaatst de checkboxen in kolom A rij 1 t/m 5
maar die staat ook nog eens tussen for cell en next cell
 
Laatst bewerkt:
Ik heb eerlijk gezegd geen idee wat je met de code wilt bereiken.
Code:
For i = 1 To 5
        Blad1.OLEObjects.Add("Forms.CheckBox.1", , , , , , , Cells(i, 1).Left, Cells(i, 1).Top).Object.Caption = ""
    Next
deze code plaatst de checkboxen in kolom A rij 1 t/m 5
maar die staat ook nog eens tussen for cell en next cell

Ik begrijp nu wat je bedoelt.
Ik heb de code als hieronder aangepast, maar krijg de dan de volgende foutmelding: Fout 1004 tijdens uitvoering: Door de toepassing of door object gedefinieerde fout.

Code:
Private Sub CommandButton2_Click()
Dim cell, LRow As Single
Dim objX As OLEObject
Dim MyLeft, MyTop, MyHeight, MyWidth As Double

Application.ScreenUpdating = False
LRow = ActiveSheet.Range("D" & Rows.Count).End(xlUp).Row

For cell = 2 To LRow
    If Cells(cell, "D").Value > 0 Then
        MyLeft = Cells(cell, "E").Left
        MyTop = Cells(cell, "E").Top
        MyHeight = Cells(cell, "E").Height
        MyWidth = Cells(cell, "E").Width
   Blad1.OLEObjects.Add("Forms.CheckBox.1", MyLeft, MyTop, MyWidth, MyHeight).Select
   With Selection
        .Object.Caption = ""
        End With
    End If
Next cell

Application.ScreenUpdating = True
End Sub
 
Gewoon in jouw oorspronkelijke bestand:

Ga naar
File
Save As
Save as Type PDF

Nu staat er een knop met Options, klik daar op (zie printscreen)

Zorg dat de onderste CheckBox [PDF/A compliant] NIET is aangevinkt

(aangevinkt geeft bij mij ook zwarte besturingselemneten)
 

Bijlagen

  • Capture.PNG
    Capture.PNG
    59,6 KB · Weergaven: 68
Gewoon in jouw oorspronkelijke bestand:

Ga naar
File
Save As
Save as Type PDF

Nu staat er een knop met Options, klik daar op (zie printscreen)

Zorg dat de onderste CheckBox [PDF/A compliant] NIET is aangevinkt

(aangevinkt geeft bij mij ook zwarte besturingselemneten)

Beste Eric,

Zeer gewaardeerd dit bericht. Super bedankt voor je hulp.
Het weghalen van dit vinkje wordt blijkbaar opgeslagen in je profiel. Want ook als ik mijn PDF nu via VBA genereer zijn de zwarte balken ook weg. Super oplossing voor het probleem wat ik had.

Gr,
Jeffrey
 
Eentje om te onthouden Eric, geen idee dat een vinkje daar de oorzaak van kon zijn en het derhalve niet te reproduceren was bij mij.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan