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

'X' aantal keer template kopieeren

Status
Niet open voor verdere reacties.

robinvdveeken

Gebruiker
Lid geworden
7 sep 2010
Berichten
84
Beste Forumleden,

Een uitdaging :)

De situatie is als volgt, Op tabblad1 staat een invulveld waar in een vaste cel een getal word ingevuld. Op tabblad2 staat een soort template. Deze template moet dan het op tabblad 1 ingevulde aantal keer worden gekopieerd op tabblad 3.
Hierbij is het belangrijk dat de datavalidatie met lijsten, opmaak en tekstinhoud word meegekopieerd.

In de bijlage een voorbeeldbestand.

Alvast bedankt.

Groeten,
Robin
 

Bijlagen

Super!
Dit is precies wat ik bedoel. Dank daarvoor.

Een vervolg vraag...
De code rijkt nu tot maximaal 4 keer kopieeren.
Zou er ook een manier zijn dat de code zo geschreven is dat ik niet voor elk aantal kopieën een aparte case moet schrijven?
Het aantal kopieën kan oplopen tot ongeveer 300.
Dat zo'n klusje even werk is maakt niet uit, maar mijn ervaring is dat een lange serie cases voor flinke vertraging zorgt.


Alvast bedankt.

Groeten,
Robin
 
Vul het aantal in B2 in
Code:
Sub kopiëren()
Dim i As Integer
Blad3.Cells.Clear
For i = 1 To Blad1.[B2].Value
    Blad2.Range("A5:B15").Copy Blad3.Range("A65536").End(xlUp).Offset(2)
Next
End Sub
 
Stel je voor, je kopieert dit geheel in een groter document.

Past de waarden van de cellen en de balden in de module aan:

Code:
Sub kopiëren()
Dim i As Integer
Blad5.Cells.Clear
For i = 1 To Blad4.[C32].Value
    Blad4.Range("B3:C29").Copy Blad5.Range("A65536").End(xlUp).Offset(2)
Next
End Sub

En ik kopieer de knop '' Kopieeren" met Ctrl+C, Ctrl+V zo in het nieuwe document
En toch werkt het niet..
Iemand suggesties?

Bedankt!

Groeten,
Robin
 
robinvdveeken,

Staat onder de knop wel de code die naar je macro kopiëren verwijst?
 
Via rechtermuis knop, Macro toewijzen heb ik deze geselecteerd.
Is dit wat je bedoelt?
Ik weet niet hoe ik kan controleren of deze macro ook daadwerkelijk onder de knop staat...
 
Dat bedoelde ik.(het toewijzen)
Als je de code met F8 door loopt werkt hij dan wel?
Zo kun je namelijk zien wat er gebeurd in je code.
 
Kijk dat is een handig weetje!
Er blijkt dat de for loop:
Code:
For i = 1 To Blad4.[C32].Value
    Blad4.Range("B3:C29").Copy Blad5.Range("A65536").End(xlUp).Offset(2)

Niet word doorlopen, hij loopt direct door naar next.
Dit is bij het voorbeeld bestand niet het geval.

Ik heb even gedacht aan een dubbele declaratie van i. Toch lijkt me dat de compiler dan een foutmelding zou geven.
 
robinvdveeken,

Zo werkt hij bij mij wel.
Code:
Sub kopiëren()
Dim i As Integer
Blad5.Cells.Clear
For i = 1 To 4
    Blad4.Range("B3:C29").Copy Blad5.Range("A65536").End(xlUp).Offset(2)
Next
End Sub
 
robinvdveeken,

Ik heb nog even gekeken en als je op de knop op Blad4 klikte ging het niet goed. (fout melding)
DE code heb ik even aan gepast en volgens mij werkt hij nu naar behoren.
Hij maakt het aantal kopies die je in cel C32 aangeeft.
Code:
Sub kopiëren()
Dim i As Integer
Blad5.Cells.Clear
For i = 1 To [C32].Value
    Range("B3:C29").Copy Blad5.Range("A65536").End(xlUp).Offset(2)
Next
End Sub
 
Fantastisch het werkt!
Heb je ook nog wat aan de knop veranderd of had ik de macro, zoals deze in de module stond wel goed toegevoegd?
 
robinvdveeken,
Fantastisch het werkt!
Heb je ook nog wat aan de knop veranderd of had ik de macro, zoals deze in de module stond wel goed toegevoegd?

Nee ik heb niets aan de knop veranderd, de macro had je wel goed toegevoegd.
Kijk maar wat er aan de macro is veranderd. (vergelijk de 2 macro's even)

Suc6
 
Met mijn code was er niks fout enkel dat je niet de juiste bladnamen gebruikte.
Code:
Sub kopiëren()
Dim i As Integer
Blad5.Cells.Clear
For i = 1 To [COLOR="red"]Blad3[/COLOR].[C32].Value
    Range("B3:C29").Copy Blad5.Range("A65536").End(xlUp).Offset(2)
Next
End Sub
Ik maakte gebruik van de codenaam v/h blad dus tabblad Motoromschrijving heeft als codenaam BLAD3 zijnde de naam die NIET tussen haakjes staat.
Ik raad je aan om even een boek ter hand te nemen en eens te kijken op welke manieren een werkblad kan omschreven worden binnen VBA
 
Bedankt voor de tip Rudi,

Na een uurtje studeren, weet ik nu waar het is mis gegaan:
Het lag absoluut niet aan jouw code, dat bleek ook uit het voorbeeld bestand.
Waar het mis ging is de implementatie ervan in mijn bestand.

Ik ben er vannuit gegaan dat het tabblad 'Motoromschrijving' Blad4 zou zijn omdat dit in Excel het op 3 na meest linkse blad is. Wat ik nu geleerd heb is dat de codenaam van de bladen in chronologische volgorde worden toegewezen, en dus onafhankelijk is van de positie waar het werkblad staat.

Dit is ook vrij eenvoudig te verklaren, zeker achter af. In VB staan in het projectkader de codenamen duidelijk voor de omschrijving van het blad.

Allen wederom bedankt voor de reacties.

Groeten,
Robin
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan