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

tab naam veranderen - "OK" toevogen

Status
Niet open voor verdere reacties.

Friend

Verenigingslid
Lid geworden
31 jan 2009
Berichten
1.137
Beste forummers,

Wie kan mij helpen om dit te verwezelijken?

Graag zou ik als op een werkblad bv de naam op de tab "januari" is dit automatisch willen veranderen, als ik in het betreffende werkblad in cel L3 "ok" tik, in "januari-ok".

Is dit mogelijk en hoe?

Friend
 
Worksheet_Change lijk mij niet zo handig in deze. En ik zou even ondervangen of er al "ok" achter de naam staat.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$L$3" And Target <> "" And UCase(Target) = "OK" And UCase(Right(ActiveSheet.Name, 2)) <> "OK" Then ActiveSheet.Name = ActiveSheet.Name & "-ok"
End Sub
 
MvW64 en VenA, Hartelijk dank voor jullie reactie :thumb::thumb:

Werkt prima, MvW64, als je het niet erg vindt ga ik voor de code van VenA.

VenA code werkt heel mooi :d alleen mag ik je nog vragen hoe de code uitgebreid moet worden dat wanneer ik OK in L3 weg haal de tab naam weer zonder -ok wordt vermeld? Is dat ook mogelijk?

Thanks

Friend
 
Friend,

Ik kreeg het met VBA niet voor elkaar en heb het met een formule opgelost.

Misschien dat je er wat aan heeft.
 

Bijlagen

EA, hartelijk dank ook voor jouw reactie :thumb:

Dit werkt voor mij prima :d :thumb:

Hartelijk dank voor deze oplossing :)

Friend
 
Graag gedaan.

Ik heb de formule in een van de vragen gevonden, is dus niet van mij.
Het werkt en daar gaat het om.
 
Zonder formules kan het ook. bv zo

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
sh = ActiveSheet.Name
    If Target.Address = "$L$3" Then
        If UCase(Right(sh, 2)) = "OK" And Target = "" Then ActiveSheet.Name = Left(sh, Len(sh) - 3) Else
        If UCase(Target) = "OK" And UCase(Right(sh, 2)) <> "OK" Then ActiveSheet.Name = sh & "-ok"
    End If
End Sub
 
VenA,

Mij lukte het niet met VBA.
Je zou ook nog de Bladnaamen in 2 cellen kunnen zetten en daar naar verwijzen.
 
ExcelAmateur,
Gewoon een beetje oefenen met VBA. Dat code altijd beter/korter kan ben ik inmiddels ook wel achter maar weerhoudt mij er niet van om mijn "gepruts" te plaatsen:d Eigenlijk doe je hetzelfde, even zoeken of er aan de rechterkant "ok" staat, en zet dit verborgen in de sheet ergens weg. VBA is wat strenger in de controle op hoofdletters en kleine letters en daarom gebruik ik UCASE.

In jouw voorbeeldje gaat het mis als de naam van het blad al bestaat en je drukt in L3 op <Delete>

Wat je bedoelt met de bladnaam in twee cellen zetten begrijp ik niet.
 
Maarrrrrr.... als je van de "ok" iets anders invult wijzigt het niet mee.

Code:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = "$L$3" Then
  If Target.Count = 1 And UCase(Target) = "OK" Then
      If UBound(Split(Name, "-")) = 0 Then Name = Name & "-ok"
   Else
      Name = Split(Name, "-")(0)
  End If
 End If
End Sub
 
Ik volg met interesse jullie berichten. Mijn kennis van VBA is helaas niet helemaal toereikend.

Wat ik wel moet zeggen VenA is dat als ik op L3 <del> doe de tab naam wel degelijk goed veranderd in mijn bestand.
Dus lijkt het mij dat EA dit wel goed gemaakt heeft.

Maar ja dan heeft Harry weer gelijk (Harry, trouwens bedankt voor je reactie :thumb:) dat als er iets anders wordt ingevuld dan OK het inderdaad niet veranderd.

Dus Harry bedankt voor jouw code die dit afvangt.

Ik ben in iedergeval door jullie allemaal weer enorm geholpen.

Hartelijk dank :thumb:

Friend
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan