Sheet automatisch invoegen, dat een macro bevat.

Status
Niet open voor verdere reacties.

BrendonMJTech

Gebruiker
Lid geworden
6 apr 2017
Berichten
6
Hallo,

Ik heb een probleem met een zeer specifieke toepassing van Excel. Ik wil een macro schrijven, dat de eisen hieronder bevat.

- Ik typ een tekst
- Er wordt een nieuwe sheet aangemaakt met als titel de tekst die ik op het andere blad heb geopend.
- In het nieuwe sheet staat direct een goede opzet, met macro's, zodat wanneer ik daar iets typ een ander venster wordt aangemaakt. (De opzet lukt, met behulp van de optie Macro opnemen)

Tot nu toe heb ik de eerste 2 punten voor elkaar kunnen krijgen met behulp van de onderstaande code.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 Or 3 Or 4 Or 5 Then
    Worksheets.Add after:=Worksheets(Worksheets.Count)
    Worksheets(Worksheets.Count).Name = Target
End If
End Sub

Het nieuwe sheet krijg ik helaas niet aangemaakt met macro's, dat zou op te lossen zijn door een template in te voegen, maar ik krijg het niet voor elkaar. Is er iemand die dit stapsgewijs kan uitleggen?

Ik ben helaas erg nieuw in Excel. Alvast bedankt.
 
Deze in de ThisWorkbook sectie:
Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    If Target.Column = 2 Or 3 Or 4 Or 5 Then
        Worksheets.Add after:=Worksheets(Worksheets.Count)
        Worksheets(Worksheets.Count).Name = Target
    End If
End Sub
 
Re

Helaas werkt dit niet, zodra ik dat invoer krijg ik deze meldinghelpmij.JPG

Groeten, Brendon
 
Je hebt ook niet gedaan wat ik zei.
 
Excuus, je hebt gelijk, dit is echter nog niet wat ik zoek. Ik zoek een manier om dit te implementeren:

expression .Add(Before, After, Count, Type)

Type specifies the sheet type. Can be one of the following XlSheetType constants: xlWorksheet, xlChart, xlExcel4MacroSheet, or xlExcel4IntlMacroSheet. If you are inserting a sheet based on an existing template, specify the path to the template. The default value is xlWorksheet.

Het specificeren van het pad naar de template wil dus niet lukken. Ik heb een template opgeslagen in de standaard map ervoor:
C:\Users\stage\Documents\Aangepaste Office-sjablonen\Projectonderdelen

Alvast bedankt.

Bijgevoegd het programma:
 

Bijlagen

  • AFAS.xlsm
    25,2 KB · Weergaven: 24
Even met een standaard template

Code:
If IsError(Evaluate(Target & "!A1")) Then Sheets.Add(, Sheets(Sheets.Count), , "C:\Program Files\Microsoft Office\Templates\1043\LoanAmortization.xltx").Name = Target
 
Bedankt

Mannen, het lukt niet, ik ga eerst meer kennis vergaren van het onderwerp. Bedankt in ieder geval
 
Eerst meer kennis vergaren is altijd een goed plan sluit ook de dames op dit forum niet uit;)
Zo moeilijk is het toch niet?

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column > 1 And Target.Column < 8 And Target.Count = 1 And Application.CountA(Cells(Target.Row, 2).Resize(, 6)) = 6 Then
  If IsError(Evaluate(Cells(Target.Row, 2) & "!A1")) Then
    Sheets("Template").Copy , Sheets(Sheets.Count)
    ActiveSheet.Name = Cells(Target.Row, 2)
   Else
    MsgBox "project bestaat al"
  End If
End If
End Sub
 

Bijlagen

  • AFAS.xlsb
    18,4 KB · Weergaven: 23
Haha nee ik sluit de dames zeker niet uit. Die hebben er ongetwijfeld meer verstand van. Ik dacht er wel even te komen na 3 lessen optellen en vermenigvuldigen in een code een aantal jaar geleden. Niet dus ;)

Groet
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan