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

VBA excel tabbladnaam

Status
Niet open voor verdere reacties.

heida

Gebruiker
Lid geworden
5 okt 2006
Berichten
15
Beste mensen,

Na lang zoeken ben ik er nog niet uit dus hoop dat ik hier toch antwoord op kan krijgen.

Graag wil ik vanuit een lijstje op voorblad achterliggende werkblad (en) automatisch hernoemen.

Hieronder de originele vraagstelling die niet helder verwoord is:
Ik ben opzoek naar een code die op 'blad1' namen uit een cellen pakt pakt voor 10 diverse bladen.
cel A11 moet naam worden voor 'blad2'
cel A13 naam voor 'blad4'
cel A15 naam voor 'blad6' enz...

Tevens wil ik dan graag op 'blad1' een waarde pakken van verschillende bladen die ik juist heb hernoemt.
cel F11 ='blad2'!F40 cel G11 ='blad2'!G40
cel F13 ='blad4'!F40 cel G13 ='blad4'!G40
cel F15 ='blad6'!F40 cel G15 ='blad6'!G40
Ik neem aan dat ik deze formules gewoon kan laten staan want die werken nu. Zoniet omdat namen wijzigen via een VBA code dan heel graag een oplossing ;)

En er zit tussen blad2 en blad4 nog blad3 die ik graag 'blad2x' noem
cel A11 naam voor 'blad3' met een X
cel A13 naam voor 'blad5' met een X
cel A15 naam voor 'blad7' enz...


Deze formule had ik al gevonden om de naam te veranderen (in cel C1 wel eerst naam blad dat je wilt wijzigen zetten) van een tabblad maar verbouwen naar wat ik wil lukt van geen kant :(

Code:
Public Sub worksheet_change(ByVal Target As Range)

Dim TabNaam As String
Dim TabNaam2 As String
Static TabNaamGeheugen As String

    If Target.Address = "$C$1" Then

        On Error Resume Next
        TabNaam = Range("C1")
        TabNaam2 = TabNaamGeheugen
        Sheets(TabNaam2).Name = TabNaam
        TabNaamGeheugen = TabNaam

    End If

End Sub

Het liefst specificeer ik dus alle cellen die een naam voor een blad worden met de hand.

Wie zou mij hiermee kunnen helpen?
 
Laatst bewerkt:
Plaats een voorbeeld document. Leer tevens het gebruik van On Error Resume Next af.
Dat voorkomt echt geen fouten, je ziet ze alleen niet en dan vraag je je af waarom iets niet werkt.
Fouten dienen netjes opgevangen en afgehandeld te worden.
 
Zojuist even een basis bestandje gemaakt als voorbeeld.
Als ik de 'On Error Resume Next' eruit haal dan doet ie niks meer.
Nu kan ik dmv de cel A11 de tabbladnaam (blad2) veranderen.

Nu dacht ik deze code simpel door te kopieren zodat ik dat ook bij C13 (blad3) kan. Maar levert de inconsequente benamingen van sheets op.

Code:
Public Sub worksheet_change(ByVal Target As Range)

Dim TabNaam As String
Dim TabNaam2 As String
Static TabNaamGeheugen As String

    If Target.Address = "$A$11" Then

        On Error Resume Next
        TabNaam = Range("A11")
        TabNaam2 = TabNaamGeheugen
        Sheets(TabNaam2).Name = TabNaam
        TabNaamGeheugen = TabNaam

    End If


    If Target.Address = "$A$13" Then

        On Error Resume Next
        TabNaam = Range("A13")
        TabNaam2 = TabNaamGeheugen
        Sheets(TabNaam2).Name = TabNaam
        TabNaamGeheugen = TabNaam

    End If
Hier even het excel:
End Sub
Bekijk bijlage namen van voorblad naar diverse sheets.xlsm

Ik zou graag een oplossing willen hebben van iemand die mij wil helpen dit te maken. Zelf gebruik ik deze opties van excel nooit dus denk dat ik het allemaal weer snel vergeet als het werkt! :cool:

groet,
 
En toch moeten ze eruit. Het is niet zo dat hij niks doet als die regel er niet in staat. Het is geen wondermiddel om een probleem op te lossen.
Waar je mis gaat is dat je de variabele TabNaamGeheugen niet een waarde geeft als deze nog leeg is.
 
Haha waar het mis ging is dat ik dacht snel ff iets te kopieren van dit forum en te gebruiken... Zou je mij anders een code kunnen geven die 1 vaste cel op een blad ook de naam maakt van dat blad. Dan herschijf ik hem wel 12 x voor elk blad en vergeet ik het hele voorblad... doe ik wel met standaard functies de rest bouwen...

Groet,
 
20 aangewezen cellen die 20 bladen hernoemt

Philiep,

Wat een super documentje! Die ga ik gebruiken bij alle nieuwe werken waar ik weet dat ik diverse sheets moet aanmaken! Door die knop blijft excel niet constant rekenen dus dat is super! Trouwens mijn oude code er maar uitgegooid!
en daar komt ie maaaar.... In dit geval was ik opzoek naar een functie die de bladen hernoemt en niet nieuw aanmaakt... Want ik heb al een excel met 20 pagina's en opmaak enzo.

Dus 20 aangewezen cellen die 20 bladen hernoemt. De benamingen mogen dan blijven staan op het voorblad.

(Die toevoeging van 'X' bij een achterliggend blad los ik op met bijv. A5=A4&"x")

Hopelijk kun je mij nog een keer helpen :D

groet,
 
OW haha ik heb net na lang puzzelen het rond gekregen zoals ik wilde. Terwijl je de oplossing al had gegeven!
Voor de mensen die opzoek zijn naar deze optie nog even de uitleg:

Met onderstaande code kan ik van een lijstje op voorblad de namen hernoemen van alle werkbladen:

Code:
Private Sub CommandButton2_Click()
Dim MyNames As Variant
Dim MyRange As Range, ws As Worksheet
Dim i As Long

With Sheets("voorblad")
    Set MyRange = .Range("A11", .Range("A" & _
        .Rows.Count).End(xlUp).Address)
    MyNames = Application.Transpose(MyRange)
    i = LBound(MyNames)
End With
For Each ws In Worksheets
    If ws.Name <> "voorblad" Then
        ws.Name = MyNames(i)
        i = i + 1
    End If
Next ws
End Sub

Hier ook even het excel met korte uitleg en regels:
Bekijk bijlage Voorblad bepaald namen blad1, blad2, enz.xlsm
 
De oplossing

Ik heb er nog een stukje code bijgestoken.
Met deze maak je een lijstje van al uw bestaande tabbladen (behalve voorblad)

Die laatste optie die je nu geeft is ook echt mooi! Ga ik nu even niet mee aan de slag maar zou handig zijn als je deze code in een bestaand document stopt en de werkbladnamen wilt bewaren.
Wellicht iets voor de toekomst!

Voorlopig ben ik geholpen en bedank ik beide heren voor hun tijd!
#Opslot
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan