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

Werkblad naam aanpassen

Status
Niet open voor verdere reacties.

vin75

Gebruiker
Lid geworden
27 okt 2011
Berichten
15
Hallo,

Kan iemand mij helpen onderstaande macro aan te passen zodat hij wel werkt voor mijn toepassing?
De bedoeling is de naam van een aantal werkbladen te laten wijzigen zodra een bepaalde celwaarde wijzigt. De cel in deze werkbladen waar het om gaat is C2, maar deze celwaarde wordt weer opgehaald uit een centraal tabblad genaamd "Deelnemers".
Ik heb onderstaande macro achter de bewuste werkbladen geplakt, maar de werkbladnaam wijzigt toch niet automatisch. Daarvoor zal de macro moeten kijken naar een wijziging in werkblad "Deelnemers" celrange B2:K2. Hoe krijg ik dit werkend?


Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo ErrHandler
If Not Intersect(Range("c2"), Target) Is Nothing Then
If Range("c2").Value <> "" Then
Me.Name = Range("c2").Value
End If
End If
Exit Sub
ErrHandler:
MsgBox "Kan de naam van het werkblad niet veranderen in '" & _
Range("c2").Value & "'", vbExclamation
End Sub



Groet,
Vin
 
Dan moet je de eventprocedure maken achter tabblad "Deelnemers".
O en vergeet niet je code tussen tags te plaatsen.
 
Naast wat Tim zei, Je vertelt er niet bij wat er nu niet goed gaat.
Hou tevens rekening met de maximale lengte voor een bladnaam van 31 tekens en dat je niet al een blad hebt met de naam die je wilt gaan geven.
 
Laatst bewerkt:
Als ik de macro plaats achter het tabblad "Deelnemers" dan wordt de naam van het tabblad Deelnemers gewijzigd. Wat ik wil is dat de naam van 10 andere tabbladen mee wijzigt met de celwaarden van de cellen in de range B2 t/m K2 in het tabblad "Deelnemers". Als in "Deelnemers" cel D2 van waarde wijzigt, dan wordt deze waarde dmv een verwijzing overgenomen in cel C2 in 1 van de andere 10 tabbladen. Er zijn 10 deelnemers, en deze staan vermeld in een lijst in "Deelnemers". Elke deelnemer heeft weer zijn eigen tabblad. Nu is het dus de bedoeling dat de bewuste tabblad-naam wijzigt in de waarde van C2.
Is het zo beter uitgelegd? Hopelijk kun je er iets mee.
 
De uitleg zal prima zijn maar aan een voorbeeld documentje hebben we veel meer.
 
Hierbij een voorbeeld file. Zal voor jullie waarschijnlijk een makkie zijn, maar ik kom niet verder.
 

Bijlagen

Als ik je uitleg goed begrepen heb klopt er weinig van de cel adressen die je daarin noemt t.o.v. je voorbeeld document, maar goed.
Haal alle code achter alle bladen weg en zet dit achter het blad DEELNEMERS:

Code:
Dim OWT As Variant

Private Sub Worksheet_Activate()
    OWT = ActiveCell.Value
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    OWT = Target.Value
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("B4:K4")) Is Nothing Then
        If Evaluate("ISREF('" & OWT & "'!A1)") Then
            With Sheets(OWT)
                .Name = Target.Value
                .Range("B3") = .Name
            End With
        End If
    End If    
End Sub

Dat is wat ik van je uitleg begreep.
 
Laatst bewerkt:
Edmoor, dit werkt perfect! Het is me een raadsel hoe je dit zo snel bedacht krijgt. Echter.... het document dat ik gestuurd heb is idd een ander bestand als mijn origineel. Daar heb ik nml veel persoonlijke info in staan, vandaar. Zodra ik de macro in het originele bestand plak en de RANGE wijzig, dan gebeurt er niets meer. Dwz de tabnaam blijft ongewijzigd. Denk ik nu te simpel door aan te nemen dat je de macro ook kunt gebruiken in een ander bestand? Het principe in mijn originele bestand is nml hetzelfde; centraal tabblad en diverse andere tabbladen die een waarde ophalen uit het centrale tabblad. Of moet ik nog meer wijzigen in de macro dan alleen de Range B4:K4 en B3?
 
Alleen Range("B4:K4") en Range("B3") aanpassen naar de juiste cellen zou voldoende moeten zijn.
UIiteraard moeten de bestaande bladnamen wel overeeenkomen met de de namen in, in het geval van het voorbeeld, B4:K4
De functie controleert daar op en als een blad met de oude naam niet kan worden gevonden doet hij niets.

Zo zie je maar dat een voorbeeld document altijd belangrijk is en dat deze relevant moet zijn aan de echte situatie.
 
Laatst bewerkt:
Aha! Dat was het! Tabnamen even gelijkzetten en dan doet hij het als een tierelier. Dank!
 
Ok dan :thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan