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

visible Tabbladen tellen

Status
Niet open voor verdere reacties.

serge007

Gebruiker
Lid geworden
30 okt 2006
Berichten
35
Hoi,
Ik zit met een probleempje. Ik heb een bestaand waar er +/- 50 tabbladen inzitten. Er zijn er maar steeds een stuk of 5 zichtbaar(kunnen de keer erop ook 8 zijn). Nu wil ik een macro laten lopen maar enkel op die zichtbare werkbladen . Dan wil ik die zichtbare werkbladen kopieren naar een nieuw bestand.Er is wel 1 werkblad genaamd "overzicht" die steeds zichtbaar is en waar de macro niet mag oplopen.

Wie kan me helpen?

Greats,
Serge
 
Zoiets dan:

ongeteste code

Code:
Sub lusdoortabbladen()

    Dim ws As Worksheet
    Dim sBestandsnaam As String
    
    For Each ws In ThisWorkbook.Worksheets
    
        If ws.Visible = xlSheetVisible Then
        
            If ws.Name <> "overzicht" Then
                
                sBestandsnaam = "C:\" & ws.naam & ".xls"
                
                ws.Copy
                
                With ActiveWorkbook
                
                    .SaveAs sBestandsnaam
                    .Close False
                
                End With
                
            End If
        
        End If
    
    Next

End Sub

Wigi
 
Laatst bewerkt:
Ja maar nu gaat hij alle werkbladen overlopen he, .
Kan het niet anders dat de macro enkle gedraaid wordt op de zichtbare of kan dit niet.

greats
 
Met

Code:
        If ws.Visible = xlSheetVisible Then

wordt er gecheckt of ze zichtbaar zijn of niet. Indien onzichtbaar, dan gebeurt er niets mee.
 
OK ik zal dit even uitproberen.
Alvast bedankt ik laat dan nog iets weten.

greats
 
Maar ik heb dan nog een vraag hoe selecteer ik enkel de zichtbare tabbladen om ze te kopieren in een nieuw werkboek?

greats
 
Maar ik heb dan nog een vraag hoe selecteer ik enkel de zichtbare tabbladen om ze te kopieren in een nieuw werkboek?

greats

dat doet de code !

De code gaat alle bladen af, kijkt of ze zichtbaar zijn of niet.

Indien zichtbaar, en niet met de naam overzicht, dan wordt het gekopieerd naar een nieuw bestand en opgeslagen onder de naam van het tabblad, op de C-schijf.

Wigi
 
Sub lusdoortabbladen()

Dim ws As Worksheet
Dim sBestandsnaam As String

For Each ws In ThisWorkbook.Worksheets

If ws.Visible = xlSheetVisible Then

If ws.Name <> "overzicht" Then

'hier laat ik mijn sub filteren lopen

end if

End If

Next

End Sub

In je code wordt toch iedere tabblad afzonderlijk opgeslagen en dat is de bedoeling niet.
Ik wil alle zichtbare tabbladen kopieren naar één nieuw bestaand., de volgende keer dat ik de macro moet draaien kan het zijn dat er andere tabbladen zichtbaar zijn( dus hun naam verandert steeds)

Greats


greats,
 
Laatst bewerkt:
ws is een variabele die verwijst naar een stukje memory in het RAM waarin de naam van de tabbladen zit. Binnen de lus zal dit telkens anders worden als de code klaar is met een blad en opschuift naar het volgende blad.

Vandaar bvb. ws.Name dat de naam geeft van het "huidige" blad.

En haal aub die afzichtelijke groene kleur van de code af :eek:
 
Dus als ik het goed begrijp zullen alle tabbladen naar 1 nieuw bestand gekopierd worden.

Greats
 
Dus als ik het goed begrijp zullen alle tabbladen naar 1 nieuw bestand gekopierd worden.

Greats

Neen, allemaal naar een verschillend bestand.

Het kan helpen als je de code uitvoert. Dan zie je wat er (al dan niet) gebeurt.

Evt. met F8 om er stap voor stap door te gaan.
 
Hoi,

Ja maar ik zoek code die alle zichtbare tabbladen naar één nieuw bestand kopierde met de naam vb." test". En dit nieuw bestand ook afsluit.

Sorry voor onduidelijke uitleg.

greats
 
Als ik dat met de macro recorder opneem, krijg ik:

Code:
Sub Macro1()
'
' Macro1 Macro
' Macro recorded 20/11/2008 by Wim Gielis
'
'
    Sheets("Sheet1").Select
    Sheets("Sheet1").Copy After:=Workbooks("Book5").Sheets(1)
End Sub

De eerste regel is niet nodig, die kan eruit.

Blijft er nog 1 regel over om aan te passen en te integreren in de code...

Wigi
 
Heb dat ook al gedaan met de recorder. (bij u gaat het over kopieren van 1 tabblad.
Maar het probleem zit zich in dat het meerdere tabbladen zijn en dat lukt dan met 'sheets(array(......)' maar de naam veranderd steeds en dat is mijn probleem. De eerste keer kan het zijn dat het sheet1 en sheet 2 is maar de keer erop kan het sheet4 ensheet6 en sheet8 zijn bijvoorbeeld. Het aantal die zichtbaar is kunnen we tellen maar dan moeten we die kunnen in een array steken ofzo, denk ik.

Greats
 
Serge in testbestand worden de zichtbare bladen in een lijst gezet. Een nieuw bestand wordt aangemaakt en de zichtbare bladen worden aan de hand van de lijst gekopiëerd. Daarna wordt het nieuwe bestand opgeslagen en gesloten.

Mvg

Rudi
 

Bijlagen

Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan