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

Tabbladnamen wijzigen met VBA

Status
Niet open voor verdere reacties.

LonnieO

Gebruiker
Lid geworden
25 okt 2012
Berichten
9
Goedemorgen,

Ik heb het web al flink afgespeurd naar een oplossing voor mijn uitdaging, maar ik ben er nog niet helemaal uit gekomen, hopelijk kunnen jullie mij helpen.
Ik heb een hoofdblad met een overzicht van projecten. Ieder project heeft een eigen tabblad. Als de projectnaam in het hoofdblad aangepast wordt, moet de tabbladnaam ook aangepast worden.
Een project (en tabbladnaam), bestaat uit een nummer en een projectnaam, bijvoorbeeld: "1.0 VBA code". "1.0" staat in cel A10, "VBA code" staat in cel B10. In cel A1 van het projectblad staat de volledige projectnaam ("1.0 VBA code")
Als cel A10 of cel B10 wordt aangepast, moet VBA zijn werk gaan doen.
Het volgende heb ik van internet geplukt en aangevuld:

Private sub hoofdblad:
Private Sub Worksheet_Change(ByVal target As Range)
Select Case target.Address
Case "$A$10:$B$40:""
Call Sheetnames
End Select
End Sub

De uitdaging zit hem in de VBA code Sheetnames:
Sub Sheetnames()
ActiveCell.Offset(-1, 0).Select
Blad2.Select ->dit is wat hij moet doen en dat werkt perfect. Dit is wat ik wil dat hij doet: Blad&ActiveCell.Row() - 8.select ;Helaas werkt dit niet, hoe kan ik dit werkend maken?
ActiveSheet.Name = Range("A1").Text
Sheets ("Overview").select
End Sub

Hopelijk is mijn vraag duidelijk.
Graag tot horens!
 
Is het niet verstandig om, als je met VBA wil gaan werken je eerst eens grondig in de basisbeginselen van VBA te bekwamen voordat je allerlei onzinnige dingen van het Internet gaat plukken, die je totaal niet begrijpt ?
VBA begint in een boek of een cursus, niet in het afspeuren van Internet.
Daarna kun je zelf code maken in plaats van code 'vinden'.
 
Laatst bewerkt:
Voor als je een punthoofd hebt van het bestuderen van VBA-code, kan je deze al eens toepassen:
Code:
Sheets("Blad" & ActiveCell.Row() - 8).Activate
 
Bedankt voor je reactie Cobbe, ik ben niet helemaal duidelijk geweest in mijn vraagstelling: met de door jou opgegeven code ga je naar het tabblad met de naam Blad2. Ik wil graag dat hij de tab met objectnaam Blad2 of in het geval van de toegevoegde afbeelding Blad33 (Tabblad naam = "1"). 2017-08-16 10_37_26-Microsoft Visual Basic for Applications - PFI(RVO).xlsm - [Module3 (Code)].png
Is deze objectnaam overigens aan te passen?
 

Bijlagen

  • 2017-08-16 10_37_26-Microsoft Visual Basic for Applications - PFI(RVO).xlsm - [Module3 (Code)].png
    2017-08-16 10_37_26-Microsoft Visual Basic for Applications - PFI(RVO).xlsm - [Module3 (Code)].png
    9,7 KB · Weergaven: 54
ergens lijk je me toch de mist in te gaan.
Als je in je hoofdblad een project aanpast, dan kan excel toch onmogelijk weten naar welk tabblad hij moet kijken ofwel moet je daar een hulpkolom bijmaken moet de naam van het vorige project of de codename van je tabblad.
Of hoe kan excel anders het verband zien tussen de oude en de nieuwe projectnaam.
 
met de door jou opgegeven code ga je naar het tabblad met de naam Blad2

Nu moet je me toch eens uitleggen waar in deze regel:
Code:
Sheets("Blad" & ActiveCell.Row() - 8).Activate
staat dat hij naar Blad2 verwijst.
Hetzij je actieve rij 10 is.
 
Klopt Cobbe, de actieve rij is 10. Het idee is, dat ik in rij 9 de projectnaam aanpas en ik op enter druk, de actieve rij "10" is. Het project in rij 9 is het 1e project en het 2e tabblad (1e tabblad is het hoofdblad).

Overigens: als ik het 2e tabblad, de naam project1 geef en ik start de volgende VBA code: Blad2.Select, dan opent hij het tabblad genaamd "project1".

@cow18, http://www.dutchofficetalk.info/VBA_hoe_39_foolproof_39_een_werkblad_selecteren_mbv_VBA_code.html, hier wordt omschreven dat je met de code "werkbladobjectnaam".select
onafhankelijk bent van de tabbladnaam die zichtbaar is in je excel file. Mijn werkbladobjectnaam is Blad1, Blad 2 etc.., maar de tabbladnaam is bijvoorbeeld Project1 (Zie voorbeeld).2017-08-16 11_37_50-Microsoft Visual Basic for Applications - PFI(RVO).xlsm - [Module2 (Code)].png
Je schijnt de werkbladobjectnaam ook te kunnen wijzigen, ik weet alleen niet hoe.
 
aan de codename van een werkblad knoei je in 1e instantie niet.
zie bijlage
in de C-kolom schrijf je eenmalig de codename van elk blad, zoals je die daar ziet in die projecttree.
nu mag je in de A of B kolom iets aanpassen, bestaat er al een blad met die naam of kan de naam niet of .... dan krijg je een foutmelding
Heel primitief opgezet om je op gang te krijgen.
 

Bijlagen

  • Map1.xlsb
    19 KB · Weergaven: 56
Ik heb nu een workaround gemaakt op de manier die Cow18 voorstelde, met een hulpcel waar de oude Tabnaam in staat.
Bedankt voor jullie support!
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan