In Excel ben ik bezig een "automatisch-formulier-invul-mechanisme" te bouwen voor mijzelf en collega docenten. Tot nu toe lukt dat aardig (met behulp van het grote internet en de gebruikers daarvan). Echter zou ik daarvoor niet een topic hoeven te openen.
Even de situatie schetsen: De meeste klassen hebben niet meer dan zo'n 20 studenten. Mijn Excel houdt rekening met maximaal 29 studenten, voor het geval dat. Nu heb ik in het werkblad waar ik alle informatie verzamel uit andere werkbladen de formules dusdanig aangepast dat een cel leeg blijft wanneer er geen data in de bron-cel staat. Dit heb ik gedaan met een formule die zo is opgebouwd:
Dit heb ik zo voor een stuk of 80 kolommen gedaan, werkt als een trein om de info uit andere tabbladen te halen.
In mijn VBA heb ik het volgende staan:
Omdat er een bericht komt na het genereren van de documenten kan ik ook zien dat er 30 documenten worden geteld (op zich vreemd want het zouden er 29 moeten zijn). Dit doe ik met:
Mijn macro's gaan nu door tot en met rij 30, 1 rij koptekst en 29 rijen met mogelijke data. Na rij 30 zijn er geen formules meer om data uit andere werkbladen te halen. Het probleem is dat de macro niet stopt na de laatste rij met ingevulde gegevens. Ook de rijen die middels de eerste formule leeg worden gehouden worden verwerkt. Op zich is het geen ramp maar het kost zoveel tijd om bijvoorbeeld 15 extra Word documenten te openen en in te vullen.
Waar ik naar op zoek ben, als niet-programmeur, is een oplossing om er voor te zorgen dat de macro's daadwerkelijk stoppen na de laatste ingevulde rij. Iemand een idee?
Even de situatie schetsen: De meeste klassen hebben niet meer dan zo'n 20 studenten. Mijn Excel houdt rekening met maximaal 29 studenten, voor het geval dat. Nu heb ik in het werkblad waar ik alle informatie verzamel uit andere werkbladen de formules dusdanig aangepast dat een cel leeg blijft wanneer er geen data in de bron-cel staat. Dit heb ik gedaan met een formule die zo is opgebouwd:
code:
1
| =ALS(Werkblad1!A1="";"";Werkblad1!A1) |
Dit heb ik zo voor een stuk of 80 kolommen gedaan, werkt als een trein om de info uit andere tabbladen te halen.
In mijn VBA heb ik het volgende staan:
code:
1
2
3
4
| With Sheets("Werkblad2") lonLaatsteRij = .Cells(Rows.Count, "A").End(xlUp).Row Set rngData = .Range(.Cells(2, 1), .Cells(lonLaatsteRij, 1)) End With |
Omdat er een bericht komt na het genereren van de documenten kan ik ook zien dat er 30 documenten worden geteld (op zich vreemd want het zouden er 29 moeten zijn). Dit doe ik met:
code:
1
| MsgBox "Aantal gegenereerde documenten: " & lonLaatsteRij |
Mijn macro's gaan nu door tot en met rij 30, 1 rij koptekst en 29 rijen met mogelijke data. Na rij 30 zijn er geen formules meer om data uit andere werkbladen te halen. Het probleem is dat de macro niet stopt na de laatste rij met ingevulde gegevens. Ook de rijen die middels de eerste formule leeg worden gehouden worden verwerkt. Op zich is het geen ramp maar het kost zoveel tijd om bijvoorbeeld 15 extra Word documenten te openen en in te vullen.
Waar ik naar op zoek ben, als niet-programmeur, is een oplossing om er voor te zorgen dat de macro's daadwerkelijk stoppen na de laatste ingevulde rij. Iemand een idee?