• 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.

knop verbergen aan de hand van selectievakje.

Status
Niet open voor verdere reacties.

skystormer

Gebruiker
Lid geworden
8 mrt 2011
Berichten
194
Dag helpers.

Voor een rapportenoverzicht heb ik momenteel selectievakjes zitten, die in principe niets toevoegen (behalve dat voorheen een X werd aangeslagen.)
Nu wil ik aan dit selectievakje een knop hangen welke verborgen wordt als het selectievakje aangevinkt staat. (Onder deze knop zit namelijk een macro welke een geheel tabblad verwijderd. en terughalen is lastiger dan verwijderen.)


Eventueel een mooiere oplossing zou zijn dat aan de hand van dit selectievakje een tabblad wordt toegevoegd (met de gegevens uit een ander excel bestand), echter voor dergelijk iets weet ik geheel niet hoe te starten.

Bij voorbaat dank voor de genomen moeite.
 

Bijlagen

  • Knopverbergen.xlsx
    18,9 KB · Weergaven: 36
Bijvoorbeeld. Wel gewerkt met activeX checkboxes, het tweede deel van je vraag vergt wat meer toelichting naar mijn mening
 

Bijlagen

  • Knopverbergen.xlsm
    32,9 KB · Weergaven: 58
Laatst bewerkt:
Hier kan ik al zeker iets mee.
Echter ik probeer de structuur te begrijpen. (en voor mijn werkblad staan de keuzes ergens anders)

Stel ik wil de vormen uit kolom D verplaatsen naar kolom E.
Dan struikelt VBA waarschijnlijk over: "Knop"

Als ik de code zo aanpas zoals hieronder aangegeven krijg ik dit niet werkend.
Ik zie iets over het hoofd, maar ik weet niet wat.


Code:
Private Sub CheckBox1_Click()
If CheckBox1.Value = True Then Range("E4") = 1
If CheckBox1.Value = False Then Range("E4") = 0
End Sub


Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect(Target, Range("E4:E7")) Is Nothing Then
   Select Case Target
     Case 1
       ActiveSheet.Shapes("Knop" & Right(Target.Offset(, -1), 1)).Visible = False
     Case 0
        ActiveSheet.Shapes("Knop" & Right(Target.Offset(, -1), 1)).Visible = True
   End Select
 End If
End Sub
 
Je heb de Range("E4").select nodig om de juiste target te krijgen (stond wel in mijn voorbeeld)
 
Range("E4").select zit er in deze toch alleen in om de cel te selecteren als laatste handeling?

Echter als ik alles aanpas zoals hieronder krijg ik ook een foutmelding. (de selectievakjes niets aan verplaatst, de vormen allen 1 kolom naar links verplaatst)


Code:
Private Sub CheckBox1_Click()
If CheckBox1.Value = True Then Range("E4") = 1
If CheckBox1.Value = False Then Range("E4") = 0
Range("E4").Select
End Sub

Private Sub CheckBox2_Click()
If CheckBox2.Value = True Then Range("E5") = 1
If CheckBox2.Value = False Then Range("E5") = 0
Range("E5").Select
End Sub

Private Sub CheckBox3_Click()
If CheckBox3.Value = True Then Range("E6") = 1
If CheckBox3.Value = False Then Range("E6") = 0
Range("E6").Select
End Sub

Private Sub CheckBox4_Click()
If CheckBox4.Value = True Then Range("E7") = 1
If CheckBox4.Value = False Then Range("E7") = 0
Range("E7").Select
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect(Target, Range("E4:E7")) Is Nothing Then
   Select Case Target
     Case 1
       ActiveSheet.Shapes("Knop" & Right(Target.Offset(, -1), 1)).Visible = False
     Case 0
        ActiveSheet.Shapes("Knop" & Right(Target.Offset(, -1), 1)).Visible = True
   End Select
 End If
End Sub



En laatste ingeving:

ActiveSheet.Shapes("Knop" & Right(Target.Offset(, -1), 1)).Visible = False
naar:
ActiveSheet.Shapes("Knop" & Right(Target.Offset(, -2), 1)).Visible = False

fixt wat ik zocht.
 
Laatst bewerkt:
Dat was de andere mogelijkheid, mooi dat het gelukt is, succes!:thumb:
 
Of met form controls, met allemaal dezelfde code eraan.
 

Bijlagen

  • Knopverbergen.xlsm
    24,3 KB · Weergaven: 33
Nog 1 vraag.
Aangezien ik dit geheel in mijn testbestand wil verwerken.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect(Target, Range("D4:D7")) Is Nothing Then
   Select Case Target
     Case 1
       ActiveSheet.Shapes("Knop" & Right(Target.Offset(, -1), 1)).Visible = False
     Case 0
        ActiveSheet.Shapes("Knop" & Right(Target.Offset(, -1), 1)).Visible = True
   End Select
 End If
End Sub


Als ik in een nieuw leeg bestand form controls toevoeg.
En de module toevoeg, werkt dit. (waarde 1 of 0 wordt zichtbaar in de aangegeven cel)

Echter ik struikel op:
Code:
 ActiveSheet.Shapes("Knop" & Right(Target.Offset(, -1), 1)).Visible = False


Aangezien waarschijnlijk niet bepaald is wat "knop" is. Of zie ik dit verkeerd?
 
'Structuring precedes coding': zie de bijlage.

de vinkvakken zijn voldoende:
zorg dat er 4 bestanden met de namen Bijlage_1.xlsx, Bijlage_2.xlsx, etc in de directory klaarstaan; pas de directorrynaam aan.

Code:
Sub M_snb()
    If Blad1.CheckBoxes(Application.Caller) = 1 Then
        Sheets.Add(, Sheets(Sheets.Count), , "G:\OF\" & Application.Caller & ".xlsx").Name = Application.Caller
        Application.Goto Blad1.Cells(1)
    Else
        On Error Resume Next
        Application.DisplayAlerts = False
        Sheets(Application.Caller).Delete
    End If
End Sub
 

Bijlagen

  • __bijlagen_snb.xlsb
    18,7 KB · Weergaven: 27
Laatst bewerkt:
Slik.

Die code snap ik dus geheel niet.
Ik vrees dat ik ga kijken om een macro ga opnemen welke ik aan de selectieknop hang
Macro 1:
Knop toevoegen.
Macro 2:
Knop verwijderen.

Als ik naar de voorbeelden kijk zie ik bijvoorbeeld.
Afbeelding verwijst naar: ="CB_4a"
Ik krijg niet eens voor elkaar dergelijke waarde aan een afbeelding te hangen. Of zien waar deze waarde vandaan komt.
 
Ik heb mijn bijdrage gewijzigd zodat die tussenstop met (on)zichtbare knoppen overbodig is.
 
Ik begin te zien wat je gedaan hebt. Begrijpen is een ander niveau.

Code:
Sub M_snb()
    If Blad1.CheckBoxes(Application.Caller) = 1 Then
        Sheets.Add(, Sheets(Sheets.Count), , "C:\OF\Reach.xlsx").Name = Application.Caller
        Application.Goto Blad1.Cells(1)
    Else
        On Error Resume Next
        Application.DisplayAlerts = False
        Sheets(Application.Caller).Delete
    End If
End Sub


Zonder bestand op naar de verwezen locatie crasht excel.
Ik heb een leeg bestand aangemaakt reach.xlsx met 1 tabblad ook genaamd Reach.
Als ik deze zo toevoeg wordt tabblad genaamd bijlage 1 toegevoegd. Waar de waarde Bijlage 1 vervolgens vandaan komt, kan ik niet opmaken.

Echter dit ziet er echt heerlijk uit.
C:\OF\Reach.xlsx moet ik nog even goed kijken hoe dat in elkaar steekt. Aangezien ik dus 4 verschillende bestanden kan hebben met verschillende namen welke ik als tabblad wil toevoegen.
 
De vinkvakken heten Bijlage_1, Bijlage_2, etc.
De bestanden heten Bijlage_1.xlsx, Bijlage_2.xlsx, etc.
De bijlagensheets heten dan ook "Bijlage_1", Bijlage_2", etc.
Sla 4 bijlagebestanden op in directory C:\; "C:\Bijlage_1.xlsx", C:\Bijlage_2.xlsx"), etc.

Gebriuk de code:
Code:
Sub M_snb()
    If Blad1.CheckBoxes(Application.Caller) = 1 Then
        Sheets.Add(, Sheets(Sheets.Count), , "C:\" & Application.Caller & ".xlsx").Name = Application.Caller
        Application.Goto Blad1.Cells(1)
    Else
        On Error Resume Next
        Application.DisplayAlerts = False
        Sheets(Application.Caller).Delete
    End If
End Sub
 
Dank jullie allen.
Snb ik heb jou code geïmplementeerd.
Had even nodig dat je een afbeelding/object een naam kon geven door simpelweg deze in te tikken in het naamvakje. Deze maakte mij gelijk duidelijker voor alle hierboven optionele oplossingen. (aangezien ik te erg aan het zoeken was naar gedefinieerde namen)

Vraag op opgelost gezet.
 
In het tabblad 'Home' vind je onder optie 'zoeken en selecteren' de optie 'selection pane' (de laatste). Daarin worden alle afbeeldingen getoond. Ook daar kun je namen wijzigen.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan