excel alle werkbladnamen weergeven n een totaaloverzicht

Status
Niet open voor verdere reacties.

Pretfred

Nieuwe gebruiker
Lid geworden
11 jun 2009
Berichten
1
Ik wil graag alle werkbladnamen weergeven op een werkblad met de naam "totaaloverzicht". Achter deze namen moet dan de inhoud van een aantal cellen worden weergegeven.
Ik heb al geprobeerd om dit te doen d.m.v. ='werkbladnaam (1)'!B1 en de cel dan door te trekken naar beneden. Helaas wordt de volgende cel dan ='werkbladnaam (1)'!B2 i.p.v. ='werkbladnaam (2)'!B1.

Ik heb al geprobeerd om de lijst toe te voegen onder excel opties (office 2007), maar daar herkende excel het logische vervolg niet...

Zijn er ook andere manieren in bijvoorbeeld VBA, zodat nieuw toegevoegde werkbladen ook automatisch worden toegevoegd aan het rijtje op het werkblad met het overzicht?

Alvast bedankt voor de informatie!
 
het is al een wat ouder topic, maar ik loop hier tegen hetzelfde probleem aan. Is er toch iemand die wellicht een oplossing heeft?
 
martijn1985,

Het is beter om een eigen vraag te stellen want deze kun je straks niet als opgelost zetten.
Dat kan alleen de vraagsteller maar zie onderstaande link.

Kijk hier eens
 
Misschien kun je hier iets mee, deze code schrijft alle werkbladnamen onder elkaar.

Code:
Sub SheetNames()

For i = 1 To Sheets.Count
    Cells(i, 1).Value = Sheets(i).Name
Next i

End Sub
 
Om het probleem van het "doortrekken" op te lossen, gebruik de INDIRECT functie. Vooral in de Excel subsectie van het forum is dit al zeer vaak besproken geweest in het verleden (gebruik dus even de zoekfunctie).
 
@hoornvan: ik zal volgende keer een eigen topic maken, gezien de nieuwe posts en de overzichtelijkheid zal ik dat nu niet doen

Ik ben even wat gaan googlen, en ik kwam op de volgende website: http://www.cpearson.com/excel/sheetref.htm

Ik heb het idee dat als je de volgende twee stukken code combineert je krijgt wat ik wil hebben:

Deze code geeft de naam van de sheet aan de hand van een indexnummer
Code:
Function SheetNameOfIndex(Ndx As Integer, Optional WB As Workbook = Nothing) As String
    Dim Q As String
    Dim S As String
    Application.Volatile True
    If IsObject(Application.Caller) = True Then
        S = Application.Caller.Parent.Parent.Worksheets(Ndx).Name
        If InStr(1, S, " ", vbBinaryCompare) > 0 Then
            Q = "'"
        Else
            Q = vbNullString
        End If
    Else
        S = IIf(WB Is Nothing, ActiveWorkbook, WB).Worksheets(Ndx).Name
        Q = vbNullString
    End If
    SheetNameOfIndex = Q & S & Q
End Function

de volgende code geeft de waarde van een cel in het volgende werkblad
Code:
Function RefOnNextSheet(Addr As String) As Variant
    Application.Volatile True
    With Application.Caller.Parent
    RefOnNextSheet = _
        .Parent.Worksheets((.Index Mod .Parent.Worksheets.Count) _
         + 1).Range(Addr).Value
    End With
End Function

nou moet het naar mijn idee mogelijk zijn om de waarde van een cel te krijgen aan de hand van een indexnummer van een werkblad, maar mijn kennis van dit programmeren reikt niet ver genoeg om deze twee stukken code te combineren. Is er iemand die dit zou kunnen?
 
Laatst bewerkt:
okee, na nog wat verder kijken ben ik eruit. Van bovenstaande stukjes code heb ik de eerste gebruikt. Daarna heb ik een lijst met nummer gemaakt (van 1 tot 50, want 50 werkbladen). Daarna heb ik de volgende formule gebruikt:

INDIRECT(SheetNameOfIndex(RIJ()-3) & "!b29")

waarbij B29 de cel waarvan ik de waarde wil hebben.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan