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

Aanmaken tabbladen door middel van macro

Status
Niet open voor verdere reacties.

Redmachine

Gebruiker
Lid geworden
16 mrt 2016
Berichten
9
Beste lezer,

ik heb al diverse berichten gelezen op het forum over macro's en het aanmaken van tabbladen. Echter zit hier niet mijn variant tussen en het combineren van bepaalde codes is ook geen success.

Het gaat om het volgende:
  1. ik heb een blad1 waarin in kolom A codes komen (bijvoorbeeld TS01, TS02, etc).
  2. Door middel van een macro wil ik dat tabladen worden aangemaakt die de naam krijgt van deze code (dus TSO1 wordt een tabblad en TS02 wordt een tabblad, etc.)
  3. De nieuwe tabbladen moeten een kopie zijn van een voorbeeld blad (tab: voorbeeld).
  4. Als ik de macro uitvoer wil ik dat Excel voor de nieuwe codes een nieuwe blad aanmaakt. Dus stel ik heb 6 codes (TS01 t/m TS06) en TS07 is toegevoegd dan moet hij TS07 aanmaken. Deze actie moet hij uitvoeren als ik op de macro knop druk. Als er geen wijzigingen zijn in de codes en ik druk op de macro dan hoeft er niets te gebeuren.

Nu kom ik met mijn macro tot punt 3. Echter punt 4 lukt mij niet. Ik heb geen idee hoe ik dit voor elkaar kan krijgen. Kan iemand mij helpen? Zie als voorbeeld het bijgevoegde Excel bestand.
Bekijk bijlage Voorbeeld.xlsm

Alvast heel erg bedankt!

Met vriendelijke groet,
Redmachine
 
Zoiets?
Code:
Sub hsv()
Application.ScreenUpdating = False
For Each cl In Columns(1).SpecialCells(2)
 If IsError(Evaluate("'" & cl & "'!A1")) Then
          Sheets.Add(, Sheets(Sheets.Count)).Name = CStr(cl)
          Sheets(Array("Voorbeeld", CStr(cl))).FillAcrossSheets Sheets("voorbeeld").Cells
    End If
    Next cl
End Sub
 
Zoiets?
Code:
Sub hsv()
Application.ScreenUpdating = False
For Each cl In Columns(1).SpecialCells(2)
 If IsError(Evaluate("'" & cl & "'!A1")) Then
          Sheets.Add(, Sheets(Sheets.Count)).Name = CStr(cl)
          Sheets(Array("Voorbeeld", CStr(cl))).FillAcrossSheets Sheets("voorbeeld").Cells
    End If
    Next cl
End Sub

Super! Dank je wel voor de snelle reactive HSV! Precies wat ik zocht!
 
Laatst bewerkt:
Hoi,

Deze twee regels even aanpassen.
Code:
For Each cl In Columns(6).SpecialCells[COLOR=#ff0000](-4123)[/COLOR]
 If IsError(Evaluate("'" & cl & "'!F1")) [COLOR=#ff0000]And cl <> ""[/COLOR] Then

Edit: Je hebt die formule-kolom helemaal niet nodig.
Het zal nooit geen twee bladen kunnen aanmaken met dezelfde naam.
Je hoeft dus ook niet te filteren.
 
Laatst bewerkt:
Hoi,

Deze twee regels even aanpassen.
Code:
For Each cl In Columns(6).SpecialCells[COLOR=#ff0000](-4123)[/COLOR]
 If IsError(Evaluate("'" & cl & "'!F1")) [COLOR=#ff0000]And cl <> ""[/COLOR] Then

Je hebt die formule-kolom helemaal niet nodig.
Het zal nooit geen twee bladen kunnen aanmaken met dezelfde naam.
Je hoeft dus ook niet te filteren.

Super! heb net zelf opgelost door geen "" te gebruiken maar 0 en blad 0 niet visible te maken. Jouw methode is mooier!
 
Heb je trouwens mijn wijziging (Edit: ) nog gelezen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan