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

Tabbladen hernoemen/hernummeren met macro

Status
Niet open voor verdere reacties.

Yasmin

Gebruiker
Lid geworden
22 mei 2004
Berichten
184
Beste helpers,

Ik heb een werkmap met meer dan 30 groepen tabbladen bv.
120A-mw | 120B-mw | 120C-mw | 120D-mw | 120E-mw |
215A-dhr | 215B-dhr | 215C-dhr | 215D-dhr |
Het 4e teken is de alfabetische volgorde in de groep.

Nu komt het regelmatig voor dat er 1 of 2 bladen tussenuit verwijderd worden.
b.v. een B en C blad.
Om de bladen in de groep toch op alfabetische volgorde te houden
moet ik dan handmatig vernummeren/hernoemen.
120D-mw wordt dan 120B-mw en 120E-mw wordt dan 120C-mw.

Kan iemand me helpen aan een VB code die nadat ik een groep tabbladen
heb geselecteerd als volgt werkt m.b.v. een sneltoetst bv. Crtl. + h.

vb code:
Hernummer/hernoem op alfabetische volgorde het 4e teken op de geselecteerde tabbladen. Daarna de groepering opheffen.

Met vriendelijke groet,

Yasmin.
 
Waarom wil je het met selectie? waarom niet alles automatisch hernoemen? zijn er uitzonderingen in het oplopen van de eerste 3 cijfers? Is het eerste blad achter een cijfer combinatie altijd "A" ?

Anders is het makkelijker om gewoon door alle bladen te lopen en de logica op alle bladen toe te passen?

*edit* PS, ctrl-h is al in gebruik, maar ctrl-shift-h of vele andere combinaties zijn inderdaad in te stellen
 
Laatst bewerkt:
Wampier,

Als automatisch hernoemen mogelijk is dan gaat mijn voorkeur daar naar uit.
In mijn werkmap zijn 3 tabbladen die niet hernoemt mogen worden n.l.:
Kalender | Lijst | Dosering |
De tabbladen beginnen altijd met 3 cijfers.
Een groep tabbladen begint altijd met 3 cijfers en daarna een A op de 4e positie.
Er zijn maximaal 4 groepen mogelijk die met hetzelfde nummer beginnen b.v.
120A-mw | 120B-mw | 120C-mw | 120D-mw | 120E-mw |
120A-mw1| 120B-mw1 | 120C-mw1| 120D-mw1 |
120A-dhr | 120B-dhr | 120C-dhr |
120A-dhr1 |120B-dhr1 | 120C-dhr1 |120D-dhr1 |
De lengte van de groepen tabbladen kan varieren, de ene keer bv 5 bladen de andere keer 3.
zie bijlage.

Ik hoop dat e.e.a. duidelijk is uitgelegd.

Met vriendelijke groet,
Yasmin.









Bekijk bijlage Voorbeeld tabbladen.xls
 
Ah dat is een belangrijke toevoeging. Ik ging er namelijk van uit dat alleen de eerste 3 characters bepalend waren. Ik had al een klein probeerseltje en heb het nu aangepast
Code:
Sub hernoemen()

Dim blad As Object
Dim numcode As String
Dim tempstring As String
Dim counter As Long
counter = 0
numcode = ""

For Each blad In Sheets
    If (Val(Mid(blad.Name, 1, 3)) > 0) Then
        
        tempstring = blad.Name
        Mid(tempstring, 4, 1) = " "
        If numcode = tempstring Then
            counter = counter + 1
        Else
            numcode = tempstring
            counter = 0
        End If
    
        tempstring = blad.Name
        Mid(tempstring, 4, 1) = Chr(65 + counter)

    blad.Name = tempstring
    End If
    
Next blad

End Sub

Dit is de macro. Ik kan op het moment niet de file uploaden met de macro erin. Mocht het niet lukken het zelf in te brengen, laat het dan even weten en probeer ik het later toe te voegen. Geef dan ook even aan voor welke versie excel je het wil hebben

PS dit werkt dus alleen van A tot Z en alleen met 3 cijfers.
 
Laatst bewerkt:
Wampier,

Ik heb de code in ThisWorkbook geplaatst maar als ik ga testen blijkt bij het verwijderen alleen een waarschuwing te komen of ik het zeker weet dat ik het blad wil verwijderen.
Het hernummeren werkt helaas niet.
Ik werk met Excel 2010 maar het moet ook in 2003 functioneren!

Met vriendelijke groet,

Yasmin
 
Yasmin,

in de VBA editor (ALT-F11) vanuit excel kies:

"invoegen" -> module

in de nieuwe module, plak je mijn code. Ga nu terug naar excel. op de ribbon "beeld" vind je een macro knop. hier zou nu de macro "hernoemen" in moeten staan. klik op de macro en kies de "opties" knop. je kunt nu een sneltoets toewijzen om de macro te laten lopen

De stappen zijn voor 2003 en 2010 hetzelfde, alleen zit de macro optie in 2003 in het "tools" menu
 
Wampier,

Het werkt ! hartelijk bedankt.

Maar nog een vraag:

Is stap 1 en 2 (hieronder) het verwijderen en het hernoemen in 1 macro te regelen?

stap 1. ik verwijder 1 of 2 bladen en krijg ik de melding "De bladen die zijn geselecteerd om te worden verwijderd, bevatten mogelijk gegevens. Als u de gegevens permanent wilt verwijderen, klik u op Verwijderen".

stap 2. ik start de macro "hernoemen" op.

Yasmin
 
Niet eenvoudig. VBA wordt namelijk niet gewaarschuwd over het feit dat je sheets gedelete hebt. Je kunt de macro bijvoorbeeld wel runnen voor het afsluiten van excel, bij het openen, of steeds als je naar een andere tab gaat, maar niet specifiek alleen bij het deleten van sheets.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan