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

Meerdere tabbladen tegelijk selecteren d.m.v. aanvinken

Status
Niet open voor verdere reacties.

bomseler

Gebruiker
Lid geworden
31 aug 2016
Berichten
53
Beste forum gebruikers,

Ik heb in mijn excel sheet de volgende code staan:

Code:
Sub Test_selectie()


If CheckBox1.Value = True Then Worksheets("1").Select
If CheckBox2.Value = True Then Worksheets("2").Select
If CheckBox3.Value = True Then Worksheets("3").Select
If CheckBox4.Value = True Then Worksheets("4").Select
If CheckBox5.Value = True Then Worksheets("5").Select
If CheckBox6.Value = True Then Worksheets("6").Select
If CheckBox7.Value = True Then Worksheets("7").Select
If CheckBox8.Value = True Then Worksheets("8").Select
If CheckBox9.Value = True Then Worksheets("9").Select
If CheckBox10.Value = True Then Worksheets("10").Select
If CheckBox11.Value = True Then Worksheets("11").Select
If CheckBox12.Value = True Then Worksheets("12").Select
If CheckBox13.Value = True Then Worksheets("13").Select
If CheckBox14.Value = True Then Worksheets("14").Select
If CheckBox15.Value = True Then Worksheets("15").Select
If CheckBox16.Value = True Then Worksheets("16").Select
If CheckBox17.Value = True Then Worksheets("17").Select
If CheckBox18.Value = True Then Worksheets("18").Select

End Sub

Ik wil alle sheets die aangevinkt zijn tegelijk selecteren en nu word alleen de laatst aangevinkte sheet geselecteerd. Kan iemand mij daarbij helpen?

Hartelijk dank,

Jeroen
 
Wat is de reden dat je die bladen geselecteerd wilt hebben.
 
Je selecteert er inderdaad maar eentje in die code. Je moet een array van sheets opbouwen die dan ineens wordt geselecteerd.
Wat voor een checkboxes zijn dat? In een Userform, Worksheet objecten of ActiveX?

Voorbeeldje:
Code:
Sub tst()
    Dim temp() As Variant, Aantal As Integer

    For i = 2 To 5
        ReDim Preserve temp(0 To Aantal)
        temp(Aantal) = Sheets(i).Name
        Aantal = Aantal + 1
    Next i
    Sheets(temp).Select
End Sub
 
Ik wil deze bladen selecteren om te kopiëren naar een nieuw workbook.
Ik gebruik de activeX besturingselementen.
 
Ik heb nu deze code toegevoegd:

Code:
Private Sub CommandButton1_Click()

Dim temp() As Variant, Aantal As Integer

For i = 1 To 18
    ReDim Preserve temp(0 To Aantal)
    temp(Aantal) = Sheets(i).Name
    Aantal = Aantal + 1
        If CheckBox & i = True Then ActiveWorkbook.Sheets("i").Select
        End If
Next i
Sheets(temp).Select

End Sub

maar zoals ik al verwacht had werkt dit niet, ik heb al allerlei dingen geprobeerd. Maar het idee is dus dat als Checkbox1 en Checkbox5 aangevinkt worden dat deze bladen gezamelijk geselecteerd worden.

Als ik dan op de CommandButton klik dat dan de aangevinkte bladen (Sheets("1") en Sheets("5")) gekopieerd worden naar een nieuw document.
 
Dat "werkt niet" is een beetje kort door de bocht. De code is goed maar of het doet wat je wilt is van meerdere dingen afhankelijk, daarom was het ook een voorbeeld en geen exacte oplossing. Plaats je document maar eens.

Die hele regel met If CheckBox & i moet de array vullen, niet het blad selecteren.
 
Laatst bewerkt:
Dat "werkt niet" is een beetje kort door de bocht. De code is goed maar of het doet wat je wilt is van meerdere dingen afhankelijk, daarom was het ook een voorbeeld en geen exacte oplossing. Plaats je document maar eens.

Die hele regel met If CheckBox & i moet de array vullen, niet het blad selecteren.
Bekijk bijlage FORMAT kleur en materialen TEST.xlsm Dit is het bestand.

Dat gedeelte begrijp ik dus niet helemaal. Ik heb al wat geprobeerd met de functie Array maar dan wordt er dus maar 1 tabblad geselecteerd.

Hartelijk dank.
 
Code:
Private Sub CommandButton1_Click()
Dim i As Long, c00 As String
    For i = 1 To 18
      If OLEObjects("CheckBox" & i).Object Then c00 = c00 & "," & Sheets(i + 1).Name
    Next i
 Sheets(Split(Mid(c00, 2), ",")).Copy
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan