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

Weeknummer vastzetten

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

Hans

Gebruiker
Lid geworden
19 dec 2016
Berichten
98
Geachte lezers

Ik begin te vertellen dat ik verschillende topics heb gelezen, maar de geboden oplossingen schijnen niet te werken op mijn werkblad. Daarom roep ik alsnog jullie hulp in.

Ik hou een weekrapportage bij.
Het is dus van belang dat ik met weeknummers werk in een kolom. Deze moeten blijven staan, dus niet automatisch ververst bij openen van het bestand.
De geboden oplossingen op dit forum werken bij mij niet. Mogelijk dat dit wordt veroorzaakt door andere formules in mijn werkblad?

Wat is de huidige situatie?
In A1 staat de datum =NU()
In B1 staat het weeknummer.
In kolom C komt automatisch een "v" te staan als op dezelfde rij in andere kolommen een bepaalde waarde wordt getiept.

Nu komt de truc die bij mij niet werkt:
In kolom D wil ik graag het weeknummer van het moment van muteren laten verschijnen. Maar deze moet onveranderd blijven, en dus niet volgende week maandag een nieuw weeknummer hebben.

Alle geboden oplossingen in VBA werken niet zoals ik al schreef. Wie ziet aan bovenstaande beschrijving de oorzaak? Mocht het niet zo eenvoudig zijn, in de bijlage het bedoelde bestand.

Alvast vre-se-lijk bedankt, ben het speuren en proberen wel een beetje zat pffff ;-)
 

Bijlagen

Plak dit in ThisWorkbook:
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
With Sheets("Blad2")
 For Each cl In .Range("C4:C" & ActiveSheet.UsedRange.Rows.Count)
  If cl = "v" Then cl.Offset(, 1) = cl.Offset(, 1)
 Next
End With
End Sub
 
Plak dit in ThisWorkbook:
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
With Sheets("Blad2")
 For Each cl In .Range("C4:C" & ActiveSheet.UsedRange.Rows.Count)
  If cl = "v" Then cl.Offset(, 1) = cl.Offset(, 1)
 Next
End With
End Sub

Het klopt, het werkt, het is geweldig!!! Dank je wel Cobbe.
 
Plak dit in ThisWorkbook:
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
With Sheets("Blad2")
 For Each cl In .Range("C4:C" & ActiveSheet.UsedRange.Rows.Count)
  If cl = "v" Then cl.Offset(, 1) = cl.Offset(, 1)
 Next
End With
End Sub

Hoi Cobbe

Er is nog een klein lastig dingetje. Als ik het bestand afsluit krijg ik een foutmelding, en verwijzing naar de code, zie afbeelding. Kan jij me ook nog vertellen wat er mis zou kunnen zijn?

Vast alweer bedankt, groet Hans

foutmelding broncode.PNG
 
Wie heeft die 200000 daar in gezet?
 
Dan weet je toch ook waar de fout zit, of?
 
Dan weet je toch ook waar de fout zit, of?

Je doet wel erg streng tegen mij Cobbe. :shocked:

Maar het klopt wat je suggereert, ik heb die 200000 weggehaald en nu werkt het weer zoals het hoort. Een volgende keer zal ik braaf luisteren! ;)

Opnieuw dank je wel voor je reactie, groet Hans
 
Ik ben niet streng hoor.:)
Maar deze regel : ActiveSheet.UsedRange.Rows.Count
bepaalt de laatste rij met gegevens van het actieve blad
dus als jij die zelf al bepaalt op 200000 komt dat in conflict met de waarde die voorgaande regel oplevert.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan