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

Steeds wisselende tabbladen selecteren en kopieren

Status
Niet open voor verdere reacties.

ronald1986

Gebruiker
Lid geworden
2 apr 2010
Berichten
296
Goedemorgen,

Ik heb een vraag over het selecteren en kopieëren van meerdere tabbladen tegelijk via VBA. Via onderstaande code kan ik bepaalde tabbladen selecteren en kopieëren:

Code:
Sheets(Array("Woensdag", "Donderdag", "Vrijdag")).Select
Sheets(Array("Woensdag", "Donderdag", "Vrijdag")).Copy

Het problem hier is dat de te kopieëren tabbladen niet variabel zijn. Oftewel de ene keer moeten tabbladen "maandag", "dinsdag" en "woensdag" gekopieerd worden en de andere keer bijvoorbeeld "woensdag", "donderdag", "vrijdag" en "zaterdag".

De tabbladen hebben allemaal de naam van een dag. Op Blad1 heb ik in cel A1:A7 onder elkaar alle dagen van de week staan. Achter deze cellen in B1:B7 staat een 1 als deze meegekopieerd moet worden en een 2 als deze niet meegekopieerd moet worden.

Weet iemand hoe ik bovenstaande code kan aanpassen zodat de tabbladen die gekopieerd worden variable worden?

Bvd!
 
Ronald, probeer deze eens...
Code:
=ALS(B1=1;A1&", ";"")&ALS(B2=1;A2&", ";"")&ALS(B3=1;A3&", ";"")&ALS(B4=1;A4&", ";"")&ALS(B5=1;A5&", ";"")&ALS(B6=1;A6&", ";"")&ALS(B7=1;A7;"")
 
Ok, op deze manier krijg ik inderdaad in een cel de dagen met een 1 er achter opgesomd en gescheiden door een komma, maar nu moet ik VBA nog zover zien te krijgen dat deze tabbladen geselecteerd worden en gekopieerd worden in een nieuw werkblad. weet iemand hoe ik dit kan doen?

Bvd!
 
Als je slim bent gebruik je alleen een 1 als iets gekopieerd moet worden; een lege cel betekent dan automatisch dat die niet meegenomen moet worden.

Code:
Sub M_snb()
   for each it in columns(2).specialcells(2)
      c00=c00 & "|" & it.offset(,-1)
   next
   sheets(split(mid(c00,2),"|")).copy
end sub
 
Probeer het met deze

Code:
Sub VenA()
ar = Sheets(1).Cells(1).CurrentRegion
For j = 1 To UBound(ar)
    If ar(j, 2) = 1 Then c00 = c00 & "|" & ar(j, 1)
Next j
Sheets(Split(Mid(c00, 2), "|")).Copy
End Sub

Edit snb was mij voor.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan