Bonjour,
Pourriez-vous m'éclairer svp ? j'en perds mon latin... si je le connaissais.
J'ai l'impression d'inscrire les mêmes lignes et pourtant le résultat n'est pas tout à fait identique (visualisation durant débog pas à pas)
J'essaie tant bien que mal de réaliser un programme pour filtrer dans une base de données et dans un segment TCD excel une période entre 2 dates (liste dates du fichier évolutif et non consécutif) (et appliquer par la suite la même sélection sur d'autres onglets données et TCD).
J'ai un soucis avec les formats des dates et la valeur de case vide ou "" dans la liste surtout dans le segment.
par exemple
en I10 = 01/06/2021
en K10 = 30/08/2021
choixDateMIN donne 01/06/2021
choixDateMAX donne 30/08/2021
CDate(choixDateMIN) donne 01/06/2021
CDate(choixDateMAX) donne 30/08/2021
NUMDateMIN donne "44348"
NUMDateMAX donne 44438
DateMIN donne "01/06/2021"
DateMAX donne 30/08/2021
Pourquoi certains résultats sont en "guillemet" ? importance pour la suite du programme pour filtrer ?
Comment gérer les cases vide ou "" du segment pour réaliser le filtre svp ?
L'objectif est de réaliser le filtre suivant le choix de l'utilisateur soit date mini soit date max soit entre date mini et max...
J'avais réussi pour la date mini mais aussitôt que je tente d'intégrer une autre partie du programme, cela plante.
Merci d'avance pour vos lumières,
Cordialement,
Scoub
pour info voici le code en cours....
Pourriez-vous m'éclairer svp ? j'en perds mon latin... si je le connaissais.
J'ai l'impression d'inscrire les mêmes lignes et pourtant le résultat n'est pas tout à fait identique (visualisation durant débog pas à pas)
J'essaie tant bien que mal de réaliser un programme pour filtrer dans une base de données et dans un segment TCD excel une période entre 2 dates (liste dates du fichier évolutif et non consécutif) (et appliquer par la suite la même sélection sur d'autres onglets données et TCD).
J'ai un soucis avec les formats des dates et la valeur de case vide ou "" dans la liste surtout dans le segment.
VB:
choixDateMIN = Worksheets("Selections").Range("I10").Value
choixDateMAX = Worksheets("Selections").Range("K10").Value
NUMDateMIN = Format(CDate(choixDateMIN), "0000") 'transforme date en valeur numérique Windows / CDate(choixDateMIN) 'transforme uniquement les valeurs et texte en date
NUMDateMAX = Format(CDate(choixDateMAX), "0000")
DateMIN = Format(NUMDateMIN, "mm/dd/yyyy") 'transforme en format date americain / CDate(choixDateMIN) 'transforme uniquement les valeurs et texte en date
DateMAX = Format(NUMDateMAX, "mm/dd/yyyy")
par exemple
en I10 = 01/06/2021
en K10 = 30/08/2021
choixDateMIN donne 01/06/2021
choixDateMAX donne 30/08/2021
CDate(choixDateMIN) donne 01/06/2021
CDate(choixDateMAX) donne 30/08/2021
NUMDateMIN donne "44348"
NUMDateMAX donne 44438
DateMIN donne "01/06/2021"
DateMAX donne 30/08/2021
Pourquoi certains résultats sont en "guillemet" ? importance pour la suite du programme pour filtrer ?
Comment gérer les cases vide ou "" du segment pour réaliser le filtre svp ?
L'objectif est de réaliser le filtre suivant le choix de l'utilisateur soit date mini soit date max soit entre date mini et max...
J'avais réussi pour la date mini mais aussitôt que je tente d'intégrer une autre partie du programme, cela plante.
Merci d'avance pour vos lumières,
Cordialement,
Scoub
pour info voici le code en cours....
Code:
With ActiveSheet
'filtre pour les segments TCD
With ActiveWorkbook.SlicerCaches("Segment_ORDER_DATE2")
For I = 1 To .SlicerItems.Count
'valeur = Format(.SlicerItems(I).Caption, "0000") - Format(choixDateMIN, "0000")
If Format(.SlicerItems(I).Caption, "0000") >= NUMDateMIN Then
If Format(.SlicerItems(I - 1).Caption, "0000") < NUMDateMIN Then
PosDateMIN = I
Else
End If
Else
If Format(.SlicerItems(I).Caption, "0000") < NUMDateMAX Then
'rien
Else
' If Format(.SlicerItems(I - 1).Caption, "0000") <= NUMDateMAX Then
PosDateMAX = I - 1
' Else
' End If
End If
'.SlicerItems(I).Selected = True
End If
Next I
'PosDateMAX = 12
For c = 1 To .SlicerItems.Count
If c >= PosDateMIN And c <= PosDateMAX Then
.SlicerItems(c).Selected = True
Else
.SlicerItems(c).Selected = False
End If
Next c
End With
End With
Dernière édition: