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

Absentie overzicht

Status
Niet open voor verdere reacties.

Joost1978

Nieuwe gebruiker
Lid geworden
24 okt 2016
Berichten
3
Goedemiddag,

Ik wil in Excel graag een absentieoverzicht maken, zonder al te veel ingewikkelde macro's/VBA.

Ik wil graag 1 invoer tab met de kolommen Naam, Vak, Datums.
In de kolom Datum zou dan op de betreffende regel voor een bepaalde persoon/vak een opmerking ingevoerd moeten worden.

Op een volgende tab zou ik dan een specificatie willen hebben, waarbij geselecteerd kan worden op Naam/Vak en dat dan een lijst wordt gegenereerd die Naam/Vak/Datum/Opmerking weergeeft op basis van de selectie Naam/Vak.

Bijgesloten een voorbeeldbestandje.

Hopelijk kan iemand mij hierbij op weg helpen?

Alvast bedankt!
 

Bijlagen

Beste,

Je kan een filter toepassen op kolom Naam en kolom Vak. Dat is toch eenvoudiger want met jouw layout in tab spec kan je het gewenste resultaat niet verkrijgen zonder macro.
 
Dank voor de snelle reactie!

Als ik filters toepas, dan hou ik alle kolommen met datums en dit is niet wenselijk. Voor een heel jaar/hele maand zou dit te veel worden...

Iemand een idee hoe dit met macro te realiseren is?
 
Probeer deze macro eens

Code:
Sub tel()
Columns("N:NQ").EntireColumn.Hidden = False 'Alle kolommen zichtbaar
Dim c As Range
For Each c In Sheets("AbsentieLijst").Range("O1:NQ1") 'Vanaf Kolom O t.e.m Kolom NQ
If Application.CountA(Range(c, Cells(65536, c.Column).End(xlUp))) = 1 Then c.EntireColumn.Hidden = True 'Als in de kolom maar een cel gevuld is (datum) dan verbergen
Next
End Sub
 
Of
Code:
Sub HideEmpty()
Dim r As Range, j As Long
Range("O14:NP14").Columns.Hidden = False
  For j = 15 To ActiveSheet.UsedRange.Columns.Count
    If Application.CountA(Columns(j)) = 1 Then
      If r Is Nothing Then Set r = Columns(j) Else Set r = Union(r, Columns(j))
    End If
  Next j
  If Not r Is Nothing Then r.Columns.Hidden = True
  Application.Goto [A1], True
End Sub

De rest van de code kan je inkorten tot
Code:
Sub TodayAndUp()
  Range("O14:NP14").Columns.Hidden = False
  Columns(15).Resize(, Application.Match(Format(Date, "d-m-yyyy"), Rows(14), 0) - 15).Hidden = True
  Application.Goto [A1], True
End Sub

Code:
Sub Today()
  Range("O14:NP14").Columns.Hidden = True
  Columns(Application.Match(Format(Date, "d-m-yyyy"), Rows(14), 0)).Hidden = False
  Application.Goto [A1], True
End Sub

Code:
Sub ShowAll()
    Range("O14:NP14").Columns.Hidden = False
    Application.Goto [A1], True
End Sub

Code:
Sub HideAll()
    Range("O14:NP14").Columns.Hidden = True
    Application.Goto [A1], True
End Sub
 

Bijlagen

Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan