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

Sheetnaam afhankelijk van cel op sheet

Status
Niet open voor verdere reacties.

LauravT

Gebruiker
Lid geworden
14 jun 2012
Berichten
156
Hallo,..

Ik ben op zoek naar een VBA-code die ervoor zorgt dat de sheetnaam in een Excelbestand hetzelfde is als een bepaalde cel op de sheet.
Hiervoor heb ik onderstaande code al gevonden en staat in ThisWorkbook:

[XML]Const Cel As String = "b2"

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Address = Range("b2").Address And Target <> "" Then
If Sh.Name <> Target.Value Then Sh.Name = Target.Value
End If

End Sub[/XML]

Echter veranderd de sheetnaam alleen als er daadwerkelijk iets in de cel wordt opgegeven,.. maar deze cel veranderd juist adhv een formule,.. mijn vraag is dus of het mogelijk is om deze vba-code aan te passen zodat hij bij elke wijziging opnieuw gaat zoeken naar de sheetnaam?

Alvast bedankt!

Groetjes,..
 
Zo ?
Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Address = Range("b2").Address And Target <> "" Then
    If ActiveSheet.Name <> Target.Value Then ActiveSheet.Name = Target.Value
    End If
End Sub
 
Laatst bewerkt:
Nope,.. Helaas!

Deze doet eigenlijk hetzelfde als de andere,.. indien het ingevulde wijzigt door formule doet ie niets,.. alleen als je de cel daadwerkelijk "bewerkt" en bevestigt (met enter of tab) dan wijzigt de sheetnaam!
 
en deze?
Code:
Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
  
   ActiveSheet.Name = ActiveSheet.Range("b2").Value
  
End Sub
 
Laatst bewerkt:
Helaas,.. dan geeft ie telkens een foutmelding!
Is het mss mogelijk om een soort van herberekening toe te laten passen! Net zoals ie doet bij de functie VANDAAG()?!
 
welke fout melding krijg je dan??
 
Code:
Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
    If Sh.Cells(1).Value = "" Then Exit Sub
    If Sh.Name <> Sh.Cells(1).Value Then
        Application.EnableEvents = False
        Sh.Name = Sh.Cells(1).Value
        Application.EnableEvents = True
    End If
End Sub
 
@pasan: Hij geeft dan aan dat er een fout op de regel zit!
@snb: Helaas dan doet ie het ook niet!

Hieronder een versimpeld voorbeeldbestandje, mss dat dat helpt,.. :D!?

Bekijk bijlage 193267

Het is dus de bedoeling dat als je op Blad1 de sheetnm aanpast deze dit automatisch doorvoert!
 
Laatst bewerkt:
Wie doet hier iets niet ???

Zie de bijlage
 

Bijlagen

  • __tis waat snb.xls
    38 KB · Weergaven: 42
Mijn welgemeende excuses!
Ik zal wel iets fouts gedaan hebben waardoor het niet werkte!

Iig hartstikke bedankt!,.. TOP!
 
Kijk gewoon eens goed naar de code, stap voor stap ( F8 ).
Als je hem snapt kun je het de volgende keer zelf.
 
werkte mijn stukje nu ook? Die van snb is ongetwijfeld beter. maar ben gewoon ff benieuwd
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan