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

Excel kenner gezocht

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

DaanM

Terugkerende gebruiker
Lid geworden
11 okt 2000
Berichten
2.009
In de bijlage zie je een tabblad: CV OVERZICHT.
Hier zie je achter de namen allerlei data getypt.
Op dit tabblad heb ik als voorbeeld achter naam1 en naam2 even 2 vrije dagen gezet.

Als je nu naar het tabblad van september gaat, zie je daar achter hun naam CV staan.
Dit moet ik echter handmatig doen.

Is het mogelijk (op welke wijze dan ook) om ervoor te zorgen dat de data die ik typ op het blad CV OVERZICHT automatisch in de kalender op te nemen?

Ik doe nl in een jaar enorm veel wijzigingen. En ik vergeet nogal eens op dan ook alles in de jaarkalender te veranderen. Als dit automatisch zou kunnen; heel graag.
Ik hoop dat iemand zich er eens over wil buigen...
 
Daan,

Je maakt het niet gemakkelijk, je kalender is van 2008-2009 en er wordt verlof gevraagd voor september 2010.

Maar goed, ik ga er mee aan de slag.

Jeroen
 
Goedemiddag Daan,

Leuke puzzel, maar het is gelukt.

Wat ik ook nog wil bekijken is of als je een datum verwijderd (loopt nu vast) dat dan de CV uit de maandbladen verwijderd wordt.

De bestanden zijn ook gezipt te groot dus alleen de code die je zelf moet plakken:

Ga naar het blad CV-overzicht, druk op Alt + F11
Je komt nu in de Editor.
Plak deze code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("G2:S46")) Is Nothing Then
Beg_dat = Worksheets("kalender").Range("C2"): R = Int((Target - Beg_dat) / 7): D = Target - Beg_dat - R * 7 + 1
Wknr = Worksheets("kalender").Range("A2").Offset(R, 0)
Dat = Worksheets("kalender").Range("C2").Offset(R, 0)
D0 = Dat - Day(Dat) + 1: R0 = Int((D0 - Beg_dat) / 7) + 1
If Wknr > 0 And Target > Beg_dat Then
Wknr0 = Application.WorksheetFunction.Max(Range(Cells(2, 1), Cells(R0 + 1, 1))) + 1
Ws = Format(Dat, "mmm")
Rij = (Wknr - Wknr0) * 47 + Target.Row + 3
Kol = (Target - Dat) * 2 + 3
Worksheets(Ws).Cells(Rij, Kol) = "cv"
Else
n = MsgBox("Dag valt in vakantieweek", vbOKOnly): Target.Offset(0, 15).ClearContents: Target.Select: Exit Sub
End If
End If
End Sub

Als het goed is werkt het nu (toevoegen van een datum)

Groet,

Jeroen
 
Jeroen,

Wil je voortaan de code tussen tags plaatsen.
Code selecteren en dan op het # teken klikken

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("G2:S46")) Is Nothing Then
Beg_dat = Worksheets("kalender").Range("C2"): R = Int((Target - Beg_dat) / 7): D = Target - Beg_dat - R * 7 + 1
Wknr = Worksheets("kalender").Range("A2").Offset(R, 0)
Dat = Worksheets("kalender").Range("C2").Offset(R, 0)
D0 = Dat - Day(Dat) + 1: R0 = Int((D0 - Beg_dat) / 7) + 1
If Wknr > 0 And Target > Beg_dat Then
Wknr0 = Application.WorksheetFunction.Max(Range(Cells(2, 1), Cells(R0 + 1, 1))) + 1
Ws = Format(Dat, "mmm")
Rij = (Wknr - Wknr0) * 47 + Target.Row + 3
Kol = (Target - Dat) * 2 + 3
Worksheets(Ws).Cells(Rij, Kol) = "cv"
Else
n = MsgBox("Dag valt in vakantieweek", vbOKOnly): Target.Offset(0, 15).ClearContents: Target.Select: Exit Sub
End If
End If
End Sub
 
Jeroen...
Ik ben onder de indruk.. Ik zie dat ik dit niet even in een paar minuten ga bestuderen.. Ik ga hier het weekend even rustig de tijd voor nemen... TOP..
En idd.. t is de agenda van afgelopen schooljaar. Maar ik ging eerst even mogelijkheden onderzoeken voordat ik aan de kalender van komend schooljaar ga beginnen.. Stel dat eea veranderd had moeten worden....
Je hoort van mij!
 
Hoi Jeroen...
Ik hoop dat je nog wilt verder helpen.
Ik ging een datum invoeren en toen kreeg ik de melding: Datum valt in de vakantie.

Ik heb dus nu even een nieuw voorbeeld gemaakt; met de goede data - wel nog even alleen de maanden aug, sep en okt omdat het bestand anders te groot zou worden.

Dus.. Ik heb op het tabblad CV OVERZICHT wat data ingevuld.
Het is de bedoeling dat ik die handmatig ga invoeren.

Wat dus heel praktisch zou zijn: zodra ik op het tabblad CV OVERZICHT iets typ zou dit in de maandbladen bijgewerkt moeten worden. Ik heb nu in die maandbladen handmatig CV achter de naam van de betreffende persoon getypt. Maar het zou heel mooi zijn, als dit automatisch kon.

Is dit ook mogelijk met jouw script?
Ik heb het script nu wel hierin geplakt, maar dit bevat de verkeerde data volgens mij. Ik heb echt 0 verstand van soortgelijk script. Ik probeerde het wel te 'lezen', maar dat valt niet mee...

Ik hoop dat je nog een gatje tijd kunt en wilt vinden...

gr Daan
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan