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

Uitvragen van TABBlad namen

Status
Niet open voor verdere reacties.

pelikano

Gebruiker
Lid geworden
30 sep 2009
Berichten
195
Is er een mogelijkheid om alle tabbladnamen op te vragen zodat ik vanuit één tabblad een lijst kan maken waaruit ik de tabbladnamen kan selecteren? (tbv formules)

Het is me wel gelukt om een tabbladnaam op te vragen vanuit hetzelfde tabblad maar wordt er in Excel ergens in de properties een lijst bijgehouden van tabbladnamen?
 
Beste pelikano ;)

Deze week was hier een vraag over om het volgende Tabblad weer te geven in een cel.

Ziehier de code:

Code:
Sub Vorig_Werkblad()
[A1] = ActiveSheet.Previous.Name
End Sub

Code:
Sub Volgend_Werkblad()
[A1] = ActiveSheet.Next.Name
End Sub

OF

Je kan de volgende code nemen voor de eerste 5 tabbladen.

Code:
Sub Tabbladen()
[A1] = ActiveSheet.Name
[A2] = Worksheets(ActiveSheet.Index + 1).Name
[A3] = Worksheets(ActiveSheet.Index + 2).Name
[A4] = Worksheets(ActiveSheet.Index + 3).Name
[A5] = Worksheets(ActiveSheet.Index + 4).Name
End Sub

Groetjes Danny. :thumb:
 
Deze plaatst alle sheetnamen in kolom A ongeacht het aantal
Code:
Sub SheetNames()
    For i = 1 To Sheets.Count
         Cells(i, 1) = Sheets(i).Name
    Next i
End Sub
 
Je kunt ook gebruik maken van een indexsheet code. Zoek in helpmij of gebruik Asap utilities.

gr wim
 
Hallo Rudi,
Deze plaatst alle sheetnamen in kolom A ongeacht het aantal

is precies wat ik zoek!
maar waarschijnlijk doe ik het fout. Ik heb de code in "programmacode weergeven" gezet. Of moet dit ergens hogerop?

Als ik =Sheetnames() in A1 zet dan geeft de functie #NAAM?

thx,
Leon
 
Hallo Rudi,


is precies wat ik zoek!
maar waarschijnlijk doe ik het fout. Ik heb de code in "programmacode weergeven" gezet. Of moet dit ergens hogerop?

Als ik =Sheetnames() in A1 zet dan geeft de functie #NAAM?

thx,
Leon

Zo te zien heb je het op de goede plaats gezet maar het is geen functie maar een macro.
Je moet dus de macro Sheetnames opstarten.

Met vriendelijke groet,


Roncancio
 
Ik heb de code achter Blad1 gezet maar ook in thisworkbook gezet met hetzelfde resultaat.
 
Als je hem achter het blad zet en dan dubbel klikt plaatst hij ze in kolom A.
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    For i = 1 To Sheets.Count
         Cells(i, 1) = Sheets(i).Name
    Next i
End Sub
Anders moet hij in een Module en kun je hem met een knop laten werken.
 
Hoi Hoorvan,
ik moet toch maar een cursus Excel advanced gaan doornemen :D

Het werkt met een dubbelklik. Het liefst zie ik de lijst ontstaan met herberekenen. Daar is vast ook iets voor?
 
Als je bij de macro achter het blad kijkt en klik rechts boven in het uitrol menu kun je kiezen waar je hem wil hebben.
 
Hoi Hoorvan,
ik moet toch maar een cursus Excel advanced gaan doornemen :D

Het werkt met een dubbelklik. Het liefst zie ik de lijst ontstaan met herberekenen. Daar is vast ook iets voor?

Inderdaad.
Zet onderstaande code maar in programmacode van het werkblad van je keuze.

Code:
Private Sub Worksheet_Calculate()
    For i = 1 To Sheets.Count
         Cells(i, 1) = Sheets(i).Name
    Next i

End Sub

Met vriendelijke groet,


Roncancio
 
ietsje anders

Code:
Sub Bladnamen()
  For each sh in Sheets
    c0=c0 & sh.name & "|"
  Next
  Blad1.cells(1,1).resize(sheets.count)=worksheetfunction.transpose(split(c0,"|"))
End Sub
 
Ik heb flink zitten stoeien om resultaat op het scherm te krijgen maar F9 is kennelijk geen ca***ate (meer). Wat dus gewoon werkt is een willekeurige formule op hetzelfde blad uitvoeren.

De SNB oplossing krijg ik niet werkend, ddat kost nog wat extra stoeien.

Ik begrijp nu ook dat ik de resultaten in een andere cel kan krijgen door de coördinaten aan te passen. resultaat in cel d4;
Cells(i + 4, 4)
 
De code van @snb zet je in een module en voert de macro handmatig uit, of achter een knop.
 
Het liefst zie ik de lijst ontstaan met herberekenen

Zeg helpers... WAAROM reageert niemand op dit verzoek?:eek: En dan wel een reactie in de zin van 'waarom in vredesnaam bij iedere herberekening in een sheet???'.:rolleyes: Dit lijkt mij klinkklare onzin namelijk! Naar mijn mening zal je vaker je sheet herberekenen dan dat je sheets toevoegt aan je workbook of namen van de sheet verandert.
En als je perse een regelmatige update van al je sheets wilt hebben, zou ik adviseren om dat bijvoorbeeld bij het openen van je workbook te laten doen. Lijkt mij méér dan voldoende....

Groet, Leo

[EDIT] En misschien is dit dan helemaal een leuk idee? Plaats dit blokje in de ThisWorkbook-module van de VBE.
Code:
Private Sub Workbook_Open()
Dim i As Integer

    For i = 1 To Sheets.Count
         With Sheets(1)
            '.Value = Sheets(i).Name
            .Cells(i, 1).Hyperlinks.Add Anchor:=.Cells(i, 1), Address:="", SubAddress:=Sheets(i).Name & "!A1", TextToDisplay:=Sheets(i).Name
        End With
    Next i
    
End Sub
 
Laatst bewerkt:
Beste Ginger,
ik ben al verschrikkelijk blij met alle creatieve oplossingen. Voor de beste oplossing moet je de toepassing weten. Waar het mij om gaat is dat de gebruiker van de sheet niet hoeft na te denken. Ik maak graag zero impact toepassingen zodat er geen uitleg nodig is. De lijst moet er staan zodra de gebruiker op het rapportage tabblad komt. Daar moet hij/zij een selectie maken uit de aanwezige tabbladen die hij/zij zelf heeft toegevoegd en benoemd.

Ik heb in ieder geval geleerd dat ik een trigger kan kiezen. Nu nog op zoek naar de juiste trigger.
 
Zeg helpers... WAAROM reageert niemand op dit verzoek?:eek:
:shocked::shocked:
Volgens mij zag je dan mijn reactie #12 over het hoofd.
Daarin staat code om de macro bij een berekening te laten werken.

Met vriendelijke groet,


Roncancio
 
Laatst bewerkt:
Plaats deze achter je tabblad Rapportage
Code:
Private Sub Worksheet_Activate()
    With Cells(4, 4)
        .CurrentRegion.ClearContents
        For Each sh In Sheets
        c0 = c0 & sh.Name & "|"
        Next
    .Resize(Sheets.Count) = WorksheetFunction.Transpose(Split(c0, "|"))
    End With
End Sub
 
Thx Rudi!
ik heb de code erin geplaatst en doet exact wat het moet doen: de lijst bijwerken zodra je op dat tabblad komt. Het werkt prachtig. nu kan ik de lijst gebruiken om het te rapporteren tabblad te selecteren.

De TABBladnaam gebruik ik in de formules zoals beschreven in thread;
http://www.helpmij.nl/forum/showthread.php?t=486015

Op naar m'n volgende uitdaging!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan