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

overzicht tabbladen verschillende werkboeken

Status
Niet open voor verdere reacties.

vectorc

Gebruiker
Lid geworden
18 mrt 2011
Berichten
5
goeiemiddag,

voor een inventaris van verschillende schadegevallen, wordt er gebruik gemaakt van excel-documenten.
Nu zitten die dus samen in een slordige 50 files, verspreid over meer dan 500 tabbladen.

Ik slaag er in om per file de tabs in een overzicht te steken, ook slaag ik er in om alle files in een overzicht te krijgen in 1 bestandenlijst.

Wat is nu het doel:
een werkboek met:
-tabblad 1 met daarin een overzicht van alle files (gelukt)
-tabblad 2 met daarin een overzicht van alle tabbladen in die files

wat ik al heb:
op tabblad 1:
FileList is gedefinieerd en verwijst naar: =BESTANDEN($B$1)
In B1 voer ik dus de mappad in
in rij A:
Code:
=ALS.FOUT(INDEX(FilelIst;RIJ());"")
in rij D:
Code:
=HYPERLINK(ALS(A1="";"";LINKS(B$1;LENGTE(B$1)-6)&A1))
in vb:
Code:
Option Explicit

Sub PrintTabs()
Dim i As Integer
Do Until IsEmpty(Range("d1").Value)
    Dim externalWorkbook As New Workbook
     externalWorkbook = Workbooks.Open(Range("d1").Value)
        
    Range("D1").Select
        For i = 1 To externalWorkbook.Sheets.Count
        Cells(i, 1).Value = externalWorkbook.Sheets(i).Name
    Next i
    
Loop

End Sub

Waar ik nog aan dacht om toe voegen:
Code:
Sub worksheet_names()
Dim WS As Worksheet
Sheets.Add.Name = "Worksheet_Names"
For Each WS In Worksheets
Cells(WS.Index, 1).Value = WS.Name
Next WS
End Sub

Maar ik geraak er niet uit wijs hoe :s

Alvast bedankt!
 
Stel in A1 het pad naar de directory met al je bestanden.
Vanaf A2 de lijst met bestanden in die dir.
Code:
Sub tst()
    Application.ScreenUpdating = False
    For Each cl In Range("A2:A" & Cells(Rows.Count, 1).End(xlUp).Row)
        Workbooks.Open [A1] & cl '& ".xls" 'als je lijst geen extensies heeft deze toevoegen
            For i = 1 To Sheets.Count
                sq = sq & Sheets(i).Name & "|"
            Next
            ActiveWorkbook.Close False
            Sheets("Blad2").Range("A65536").End(xlUp).Offset(1).Resize(UBound(Split(sq, "|"))) = Application.Transpose(Split(sq, "|"))
    sq = ""
    Next
    Application.ScreenUpdating = True
End Sub
 
cl as variant, sq as variant
 
Hey Rudy,

je bent al een enorme hulp geweest, enkel zet hij op blad 2 niet de namen van de tabbladen van de geopende bestanden, maar van de bestandenlijst.

Ik vermoed dus dat het ergens hier zit

sq = sq & Sheets(i).Name & "|"


Ik ben zelf ook nog aan het zoeken, maar weer vind ik de oplossing niet.


Zou je nog even kunnen helpen?


thx!
 
Als jij karig bent met informatie, kan ik je ook maar een karige macro voorschotelen.
Tot hiertoe heb je nog steeds niet duidelijk gemaakt wat je eigenlijk wil, en heb ik maar iets gemaakt gebaseerd op mijn vermoeden van wat je eigenlijk wil
 
Hey Rudy, het was geen aanval op jou hoor :-)

Hetgeen je hebt opgesteld is exact hetgeen ik wil (spijtig genoeg kan ik geen xlsm uploaden en zijn de andere uploadsites hier geblokkeerd).

Het enige dat nu nog misloopt in het totale overzicht is dat hij niet de tabbladen van de verschillende files oplijst, maar enkel de bladen van het overzicht zelf.

Zou het kunnen dat dit misloopt omdat de targetfiles geen macro's hebben ingesteld staan?
 
Xlsm moet je eerst inpakken met Winzip of Winrar en dan posten.
Je uitleg volg ik niet helemaal (ligt waarschijnlijk wel aan mij) , maar wat ik er van begrijp is dat je op Blad1 een lijst hebt met al je bestanden met schadegevallen en dat je op Blad2 een lijst krijgt met alle aanwezige tabbladen in die lijst. Waar ga ik verkeerd in mijn redenering ?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan