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

kopieren werkblad en doornummeren

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

Efsix

Gebruiker
Lid geworden
14 jan 2007
Berichten
181
Beste Excellers.

Ik heb een probleem wat ik niet snap.
Ben met een roosterprogramma bezig, waarbij ik voor elke week een apart werkblad maak.
Om het mezelf makkelijk te maken, bewerk ik 1 blad ( "moeder")
als ik klaar ben, wil ik via een macro dit blad kopieren, en tegelijk een naam geven die overeen komt met een weeknummer.
vervolgens wordt dit nummer ook in Cel A1 gekopieerd zodat een andere macro het rooster bijwerkt.
Vreemd genoeg werkt het maar gedeeltelijk.. . . er wordt druk gekopieerd en alles schijnt te werken. . . .maar. . .halverwege stopt Excel er mee.

Dezelfde macro, in een 'schoon' bestand doet het wel.

Beide bestanden heb ik bijgevoegd.

Kan iemand mij een tip geven wat er verkeerd gaat?

bijvoorbaat dank, Romé
 

Bijlagen

Als ik de macro van het oorspronkelijke bestand laat draaien dan worden de werkbladen zonder problemen gekopieerd en benoemd.
Wat je kan doen is Debug.Print aan je code toevoegen.

Code:
 Sub werkblad_kopie()
For a = 1 To 53
    'kopieer blad Moeder en zet de copie achter blad PLoegindeling
    Sheets("Moeder").Copy After:=Sheets("Ploegindeling")
    'hernoem het (nieuwe) actieve blad = naam & nummer de herhaling
    ActiveSheet.Name = "wk " & a
    'zet weeknummer in cel A1 op elke pagina
    ActiveSheet.Range("A1").Value = a
[B]    Debug.Print a[/B]
Next a
End Sub

Debug.Print schrijft de waarde van a naar Venster Direct ( In VBE: Beeld - Venster Direct óf CTRL-G).
Hierdoor kun je in het Venster Direct zien tot waar de lus is doorlopen.

Met vriendelijke groet,


Roncancio
 
Als ik de macro van het oorspronkelijke bestand laat draaien dan worden de werkbladen zonder problemen gekopieerd en benoemd.
Wat je kan doen is Debug.Print aan je code toevoegen.

Code:
 Sub werkblad_kopie()
For a = 1 To 53
    'kopieer blad Moeder en zet de copie achter blad PLoegindeling
    Sheets("Moeder").Copy After:=Sheets("Ploegindeling")
    'hernoem het (nieuwe) actieve blad = naam & nummer de herhaling
    ActiveSheet.Name = "wk " & a
    'zet weeknummer in cel A1 op elke pagina
    ActiveSheet.Range("A1").Value = a
[B]    Debug.Print a[/B]
Next a
End Sub

Debug.Print schrijft de waarde van a naar Venster Direct ( In VBE: Beeld - Venster Direct óf CTRL-G).
Hierdoor kun je in het Venster Direct zien tot waar de lus is doorlopen.

Met vriendelijke groet,


Roncancio

Beste Roncancio,

Loop de loop bij jou wel helemaal door naar wk 53? Wat ik maf vind, dat hij bij mij steeds dezelfde fout maakt. Hij gaat steeds niet verder dan wk 30.
groeten, Romé
 
Laatst bewerkt:
Beste Roncancio,

Loop de loop bij jou wel helemaal door naar wk 53? Wat ik maf vind, dat hij bij mij steeds dezelfde fout maakt. Hij gaat steeds niet verder dan wk 30.
groeten, Romé

Ja, hij gaat bij mij inderdaad tot 53.
Als de A de 30 heeft gehaald dan zou je met de F8-toets stap voor stap de code kunnen doorlopen.
Het blijft raar want de code is niet gecompliceerd en je springt ook niet uit de lus met GoTo oid.

Met vriendelijke groet,


Roncancio
 
Ja, hij gaat bij mij inderdaad tot 53.
Als de A de 30 heeft gehaald dan zou je met de F8-toets stap voor stap de code kunnen doorlopen.
Het blijft raar want de code is niet gecompliceerd en je springt ook niet uit de lus met GoTo oid.

Met vriendelijke groet,


Roncancio

Ik begrijp het niet, de macro doorloopt de lus 30 keer, en dan gaat het fout bij de regel die ik rood heb gemarkeerd

Code:
Sub werkblad_kopie()
For a = 1 To 53
    'kopieer blad Moeder en zet de copie achter blad PLoegindeling
   [COLOR="Red"] Sheets("Moeder").Copy After:=Sheets("Ploegindeling")[/COLOR]    
'hernoem het (nieuwe) actieve blad = naam & nummer de herhaling
    ActiveSheet.Name = "wk " & a
    'zet weeknummer in cel A1 op elke pagina
    ActiveSheet.Range("A1").Value = a
Next a
End Sub
 
Laatst bewerkt door een moderator:
Loop de loop bij jou wel helemaal door naar wk 53? Wat ik maf vind, dat hij bij mij steeds dezelfde fout maakt. Hij gaat steeds niet verder dan wk 30.
groeten, Romé

Bij mij ook geen probleem loopt tot wk53 ;) Eens de ccleaner laten werken waarschijnlijk blijft een deel van de slechte vba code ein het geheugen hangen of cpu eens afzetten en terug aan zetten werkgeheugen leeg maken .
 
Bij mij ook geen probleem loopt tot wk53 ;) Eens de ccleaner laten werken waarschijnlijk blijft een deel van de slechte vba code ein het geheugen hangen of cpu eens afzetten en terug aan zetten werkgeheugen leeg maken .
dank je wel voor het mee denken, helaas zit het daar niet in. Ik heb zelfs al 2 andere pc's geprobeerd.

Je zegt dat hij bij jou wel doorloopt naar wk 53. heb jij het dan over de bijlage "Automatisch werkblad kopieren en nummeren" ? die doet het bij mij ook goed, . . .maar bestand "Concept_wb kopie" blijft steken.

met vriendelijke groet, Romé
 
dank je wel voor het mee denken, helaas zit het daar niet in. Ik heb zelfs al 2 andere pc's geprobeerd.

Je zegt dat hij bij jou wel doorloopt naar wk 53. heb jij het dan over de bijlage "Automatisch werkblad kopieren en nummeren" ? die doet het bij mij ook goed, . . .maar bestand "Concept_wb kopie" blijft steken.

met vriendelijke groet, Romé

Ik heb het steeds over Concept_Wb kopie gehad.
En die loopt bij mij tot 53.:o

Met vriendelijke groet,


Roncancio
 
die doet het bij mij ook goed, . . .maar bestand "Concept_wb kopie" blijft steken.

met vriendelijke groet, Romé

Nu voor de derde maal het bestandje van het forum gehaald de debug.print a ingevoegd en macro laten lopen , ik zie wel de debug.print a niet in je tweede macro , heb je die al toeggevoegd ?
 
Nu voor de derde maal het bestandje van het forum gehaald de debug.print a ingevoegd en macro laten lopen , ik zie wel de debug.print a niet in je tweede macro , heb je die al toeggevoegd ?

Hoi Daniël, Ik heb de debug.print a er onder gezet. en dan zie ik dat de teller bij 30 blijft steken.
Ik snap je opmerking niet over die 2e macro?
 
Hoi Daniël, Ik heb de debug.print a er onder gezet. en dan zie ik dat de teller bij 30 blijft steken.
Ik snap je opmerking niet over die 2e macro?

Daarmee bedoel ik de macro uit posting #5 , waar "Sheets("Moeder").Copy ......... in rood staat .
Heel gek dat het bestandje dat wij van het forum halen het wel doet , ik zal het eens testen in excel 2003 ook op een andere cpu .
Slecht nieuws in excel 2003 stopt hij bij pagina 30
 
Laatst bewerkt:
Daarmee bedoel ik de macro uit posting #5 , waar "Sheets("Moeder").Copy ......... in rood staat .
Heel gek dat het bestandje dat wij van het forum halen het wel doet , ik zal het eens testen in excel 2003 ook op een andere cpu .
Slecht nieuws in excel 2003 stopt hij bij pagina 30
Hoi Daniël. . .
Eindelijk iemand die me begrijpt :thumb: Ik begon al aan mezelf te twijfelen.

groeten, Romé
 
Heel eigenaardig maar hij stopt op wk30 ook met deze ingreep
Code:
Sub werkblad_kopie()
For a = 1 To 27
    'kopieer blad Moeder en zet de copie achter blad PLoegindeling
    Sheets("Moeder").Copy After:=Sheets("Ploegindeling")
    'hernoem het (nieuwe) actieve blad = naam & nummer de herhaling
    ActiveSheet.Name = "wk " & a
    'zet weeknummer in cel A1 op elke pagina
    ActiveSheet.Range("A1").Value = a
    Debug.Print a
Next a

Call werkblad_kopie2
End Sub

Sub werkblad_kopie2()
For a = 28 To 53
    'kopieer blad Moeder en zet de copie achter blad PLoegindeling
    Sheets("Moeder").Copy After:=Sheets("Ploegindeling")
    'hernoem het (nieuwe) actieve blad = naam & nummer de herhaling
    ActiveSheet.Name = "wk " & a
    'zet weeknummer in cel A1 op elke pagina
    ActiveSheet.Range("A1").Value = a
    Debug.Print a
Next a
End Sub
 
Heel eigenaardig maar hij stopt op wk30 ook met deze ingreep
Code:
Sub werkblad_kopie()
For a = 1 To 27
    'kopieer blad Moeder en zet de copie achter blad PLoegindeling
    Sheets("Moeder").Copy After:=Sheets("Ploegindeling")
    'hernoem het (nieuwe) actieve blad = naam & nummer de herhaling
    ActiveSheet.Name = "wk " & a
    'zet weeknummer in cel A1 op elke pagina
    ActiveSheet.Range("A1").Value = a
    Debug.Print a
Next a

Call werkblad_kopie2
End Sub

Sub werkblad_kopie2()
For a = 28 To 53
    'kopieer blad Moeder en zet de copie achter blad PLoegindeling
    Sheets("Moeder").Copy After:=Sheets("Ploegindeling")
    'hernoem het (nieuwe) actieve blad = naam & nummer de herhaling
    ActiveSheet.Name = "wk " & a
    'zet weeknummer in cel A1 op elke pagina
    ActiveSheet.Range("A1").Value = a
    Debug.Print a
Next a
End Sub

Jaaa, dat was ik net zelf ook aan het proberen.
Ook met deze manier stopt de teller bij 30.

En toch. . .het andere bestand in mijn bijlage doet het wel. Dus het is niet een kwestie dat Excel niet verder kan tellen als 30
 
IK heb na 27 het bestandje opgeslagen en dan de tweede run laten doen dan stop hij op wk45 :evil: het zal iets zijn voor de geworderden om dit in excel 2003 te laten werken .
Wat wel werkt is in 3 maal 1ste reeks van 20 afsluiten / opslaan 2de reeks van 20 opslaan / afsluiten en dan de 3de reeks , ergens moet er geheugen vrij gemaakt worden , maar hoe en waar ??
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan