Ga naar inhoud

VBA om datums te sorteren volgens dag en maand


K5

Aanbevolen berichten

Hier ben ik terug!

Mijn vorige vraag was om een Macro aan te maken om te printen.

Ik heb dat excel bestand dus willen overmaken aan die dame, maar ondertussen heeft zij er nog enkele kolommen bij aangemaakt.

Daarop heb ik haar uitgelegd dat er een knop was voorzien om enkel de kolom met de namen van de leden en de kolom met hun geboortemaand uit te printen.

Waarop zij fijntjes vroeg of het ook mogelijk was om bij het sorteren via de geboortemaand, iedereen te sorteren volgens "geboortemaand" maar dan ook volgens "geboortedag".

Het geboortejaar speelt niet direct een rol.

Zij stuurt namelijk naar alle leden op hun verjaardag een berichtje of een kaartje. Zo kan zij dit beter opvolgen.

Link naar reactie
Delen op andere sites

I.p.v. 3X op OK te moeten drukken.

Private Sub Workbook_Open()
With Sheets(1)
    For i = 2 To .Range("a1").End(xlDown).Row
        If (Day(CDate(.Range("c" & i).Value)) - Day(Date) = 0) * (Month(CDate(.Range("c" & i).Value)) - Month(Date) = 0) Then
            msg = msg & .Range("b" & i).Value & vbLf & vbLf
        End If
    Next i
End With
If msg <> vbNullString Then MsgBox msg & vbLf & "is (zijn) morgen jarig.", vbInformation, "Verjaardagen."
End Sub

 

Link naar reactie
Delen op andere sites

Had 'm om te testen op vandaag gezet en vergeten terug te zetten.

Private Sub Workbook_Open()
With Sheets(1)
    For i = 2 To .Range("a1").End(xlDown).Row
        If (Day(CDate(.Range("c" & i).Value)) - Day(Date) = 1) * (Month(CDate(.Range("c" & i).Value)) - Month(Date) = 0) Then
            msg = msg & .Range("b" & i).Value & vbLf & vbLf
        End If
    Next i
End With
If msg <> vbNullString Then MsgBox msg & vbLf & "is (zijn) morgen jarig.", vbInformation, "Verjaardagen."
End Sub
Link naar reactie
Delen op andere sites

14 uren geleden, emielDS zei:

Volstaat dit of heb je meer uitleg nodig?

maand en dag sorteren.xlsm

Ik wil beslist niet moeilijk doen, maar is het eventueel mogelijk om in het oorspronkelijk Excel bestand één kolom te verwijderen?

En alleen maar op de kolom "Geboorte Datum" te sorteren?

De kolom "Maand" had ik erbij gezet om gemakkelijker te werken, maar ik heb de indruk dat deze dame nogal gemakkelijk uitbreid met haar kolommen om commentaar te plaatsen.

Sorry voor deze abrupte wijziging!

Link naar reactie
Delen op andere sites

Deze sorteert op maand en dag. Je kan de dag en maandkolom zonder probleem verwijderen.

Sub SortBirthdays()
Application.ScreenUpdating = False
Dim lRow As Long
With Blad1
    lRow = .Cells(.Rows.Count, 1).End(xlUp).Row
    .Range("Z2:Z" & lRow).FormulaR1C1 = "=TEXT(RC3,""MMDD"")"
    .Range("A2:Z" & lRow).Sort .Range("Z2"), xlAscending, , , , , , xlYes
    .Range("Z2:Z" & lRow).Clear
End With
Application.ScreenUpdating = True
End Sub

 

aangepast door bakerman
Link naar reactie
Delen op andere sites

Ik heb het volgende als resultaat.

Het was de bedoeling dat deze kolom per maand geselecteerd werd, maar dan ook nog eens per dag van die maand.

Dit maakt het natuurlijk wel extra moeilijk denk ik?

 

F-01.png

aangepast door K5
Link naar reactie
Delen op andere sites

Kleine aanpassing.

Sub SortBirthdays()
Application.ScreenUpdating = False
Dim lRow As Long
With Blad1
    lRow = .Cells(.Rows.Count, 1).End(xlUp).Row
    .Range("Z2:Z" & lRow).FormulaR1C1 = "=TEXT(RC3,""MMDD"")"
    .Range("A2:Z" & lRow).Sort .Range("Z2"), xlAscending, , , , , , xlNo
    .Range("Z2:Z" & lRow).Clear
End With
Application.ScreenUpdating = True
End Sub

en dan is dit het resultaat.

 

Knipsel.PNG

Link naar reactie
Delen op andere sites

Gast
Dit topic is nu gesloten voor nieuwe reacties.
×
×
  • Nieuwe aanmaken...

Belangrijke informatie

We hebben cookies geplaatst op je toestel om deze website voor jou beter te kunnen maken. Je kunt de cookie instellingen aanpassen, anders gaan we er van uit dat het goed is om verder te gaan.