Dates dans userform
Bonjour,
J'ai un problème avec mon code
J'affiche en appuyant sur le bouton rouge "saisir plage à visualiser" en bas à droite dans la première colonne une userform qui permet d'entrer la date de début et de la date de fin de la période que veut voir afficher.
Mon code ci-dessous au clic du bouton valider de l'userform permet de masquer les colonnes des dates inférieures à la date de début et les colonnes supérieurs à la date de fin.
Private Sub UserForm_Initialize()
Dim dd As String
Dim ee As String
dd = Date + 60
ee = Date - Weekday(Date, 3)
datedeb.Value = ee
datefin.Value = dd
End Sub
Private Sub Valider_Click()
dercol = Feuil38.Cells(55, Cells.Columns.Count).End(xlToLeft).Column
Application.ScreenUpdating = False
With Sheets("Stats repas").Cells
.EntireColumn.Hidden = False
End With
For i = 5 To dercol
If Feuil38.Cells(55, i).Value < CDate(datedeb.Value) Or Feuil38.Cells(55, i).Value > CDate(datefin.Value) Then
Feuil38.Cells(55, i).EntireColumn.Hidden = True
End If
Next i
Feuil38.Cells(55, 2).EntireColumn.Hidden = False
Feuil38.Cells(55, 4).EntireColumn.Hidden = False
Feuil38.Columns(1).Hidden = False
Unload Me
End SubCe code fonctionne.
Mais 1 fois sur deux, il ne tient pas compte de la date de fin et affiche toutes les colonnes après la date de fin
Par contre il tient compte à chaque fois de la date de début et masque les colonnes inférieurs à la date de début.
Ci joint mon fichier => PS: 2eme bouton (bouton bascule) en haut à gauche "Afficher / Masquer rubans" permet de cacher les barres d'état, les n° de colonnes et de lignes... Cliquer sur ce bouton pour afficher les rubans (ci dessous le code pour info) :
Sub ruban()
Dim enabled As Boolean
enabled = True
' visibilité onglets
ActiveWindow.DisplayWorkbookTabs = enabled
' Barre de formule
Application.DisplayFormulaBar = enabled
' barre d'état
Application.DisplayStatusBar = enabled
' entetes lignes et colonnes
ActiveWindow.DisplayHeadings = enabled
' ruban
If enabled Then
Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",true)"
Else
Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",false)"
End If
End Sub
Sub ruban1()
Application.CommandBars("PLY").enabled = True
Dim enabled As Boolean
enabled = False
' visibilité onglets
ActiveWindow.DisplayWorkbookTabs = enabled
' Barre de formule
Application.DisplayFormulaBar = enabled
' barre d'état
Application.DisplayStatusBar = enabled
' entetes lignes et colonnes
ActiveWindow.DisplayHeadings = enabled
' ruban
If enabled Then
Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",true)"
Else
Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",false)"
End If
End SubPouvez-vous m'aider svp
Je vous serais très reconnaissant
Cordialement
Bonjour,
Essaye comme cela
Private Sub UserForm_Initialize()
Dim dd As String
Dim ee As String
dd = Date + 60
ee = Date - Weekday(Date, 3)
datedeb.Value = ee
datefin.Value = dd
End Sub
Private Sub Valider_Click()
Dim DerCol As Integer, Col As Integer
With Sheets("Stats repas")
Application.ScreenUpdating = False
.Cells.EntireColumn.Hidden = False
DerCol = .Cells(55, .Columns.Count).End(xlToLeft).Column
For Col = 5 To DerCol
If .Cells(55, Col).Value < CDate(datedeb.Value) Or .Cells(55, Col).Value > CDate(datefin.Value) Then
.Cells(55, Col).EntireColumn.Hidden = True
End If
Next Col
.Cells(55, 2).EntireColumn.Hidden = False
.Cells(55, 4).EntireColumn.Hidden = False
.Columns(1).Hidden = False
Application.ScreenUpdating = True
End With
Unload Me
End SubCordialement.
C'est parfait
Merci beaucoup
Bon dimanche