Vanuit VBA een werkblad met formules kopieeren

  • Onderwerp starter Onderwerp starter vhenk
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

vhenk

Gebruiker
Lid geworden
4 feb 2009
Berichten
33
Hoi allemaal,

Voor mij is het de eerste keer hier op het form met een vraag, ik heb wel al regelmatig code`s hier vandaan gehaald en vandaar dat mijn intresse naar deze site is gekomen.

Ik heb het volgende probleem.
Ik heb een code ( niet van mij zelf ) maar wil deze wel bewerken zodat ik een werkblad doormiddel van VBA kan koieeren, incl de formule`s die in dat werk blad staan.

Nu wordt er gebruikt:
Code:
Worksheets("test formulier").Copy after:=Worksheets(Worksheets.Count)
Maar dan wordt alleen de opmaak van de wordksheet gekopieerd.

Wie heeft hier de oplossing voor, alvast bedankt.
Hieronder het gehele script

Groet Henk

code:
Code:
Sub Auto_Open()
    ' Hier wordt er gevraagd voor de nieuwe gegevens voor een nieuw aanvraag,
    ' Hij maak dan een nieuw blad aan.
    Dim isNew As Boolean
    Dim newState As String
    Dim Naam As String
    Dim Adres As String
    Dim Postcode As String
    Dim Plaats As String
    Dim nBranches As Integer
    Dim yearSales As Currency
    Dim ws As Worksheet

    ' Vraag om een nieuwe naam, todat je twee keer het zelfde intype dan zal hij er een volgnummer aangeven.
    Do
        newState = InputBox("Geef uw naam hier op.", "opzoek naam")
        isNew = True
        For Each ws In ActiveWorkbook.Worksheets
            If newState = ws.Name Then
                MsgBox "Deze naam bestaat al kies een andere naam.", _
                    vbExclamation, "Duplicate state"
                isNew = False
                Exit For
            End If
        Next
    Loop Until isNew
    
    ' vraag om de nieuwe gegevens voor de tekst velden.
    Naam = InputBox("Klant naam van zoek methode " & newState, "Naam")
    Adres = InputBox("Adres van zoek methode " & newState, "Adres")
    Postcode = InputBox("Postcode van zoek methode " & newState, "Postcode")
    Plaats = InputBox("woonplaats van zoek methode " & newState, "Woonplaats")
    
    ' Kopie van test formulier (het kan ook een ander blad worden) to obtain a new
    ' sheet, which becomes the active sheet. Then change its name and information.
    Worksheets("test formulier").Copy after:=Worksheets(Worksheets.Count)
    With ActiveSheet
        .Name = newState
        .Range("b12") = Naam
        .Range("b13") = Adres
        .Range("b14") = Postcode
        .Range("b15") = Plaats
    End With
End Sub


Sub Worksheets2()
    ' This sub just lists all of the states and their headquarters from the state sheets.
    ' It uses the built-in constants vbCrLf and vbTab to format the message box nicely.
    Dim ws As Worksheet
    Dim message As String
     message = "Namen van klanten die een aanvraag hebben gedaan:"
   For Each ws In ActiveWorkbook.Worksheets
        If ws.Name <> "test formulier" Then _
            message = message & vbCrLf & vbTab & ws.Name & ": " & ws.Range("B12")
    Next
    MsgBox message, vbInformation, "ZNP Administrator informatie"
End Sub
 
Laatst bewerkt:
Hoi Henk,

Ik weet niet of ik je vraag helemaal goed begrijp maar als je een compleet werkblad wil kopiëren en een naam wil geven moet je volgens mij genoeg hebben aan de volgende code.
Deze maakt drie kopieën van werkblad 1 en noemt ze (in dit voorbeeld) nieuw 1, nieuw 2 en nieuw 3.
Kan je hier wat mee?

Groet Karel

Code:
'herhaal drie keer
For a = 1 To 3
    'kopieer blad1 en zet de copie achter blad 1
    Sheets("Blad1").Copy After:=Sheets(1)
    'hernoem het (nieuwe) actieve blad = naam & nummer de herhaling
    ActiveSheet.Name = "nieuw " & a
Next a
 
Opgelost

Bedankt voor de reactie .
ik heb het ondertussen opgelost.

Maar ik heb zeker wat aan jou uitleg en ga het zeker gebruiken
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan