Filtrer une colonne format date & heure avec un inputbox
bassmart
Messages postés
281
Date d'inscription
Statut
Membre
Dernière intervention
-
f894009 Messages postés 17414 Date d'inscription Statut Membre Dernière intervention -
f894009 Messages postés 17414 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je tente de réaliser une filtre sur une colonne (première colonne) à parti d'un "Inputbox" pour y inscrire l'année à filtrer, mais sans succès.
J'ai chercher pour trouvé une solution, j'ai réussi à filtrer l'année en cours et l'année précédente, mais pas avec l'option que l'utilisateur entre une année à filtrer à partir de l'Inputbox.
Voici mon code:
'Filtrer les lectures à partir de l'année
'****************************************
DerLig = .Range("C" & Rows.Count).End(xlUp).Row
DerCol = .Cells(2, .Cells.Columns.Count).End(xlToLeft).Column
.AutoFilterMode = False
'Ouvrir le filtrer
'*****************
.Range("A4:A" & DerLig).AutoFilter
'Message pour choix de l'année. On peut traiter l'année en cours ou passée seulement
'***********************************************************************************
If MsgBox("Voulez-vous traiter l'année ne cours?", vbQuestion + vbYesNo, "Traitement année") = vbYes Then
.Range("A5:A" & DerLig).AutoFilter field:=1, Criteria1:=13, Operator:=11, Criteria2:=0, SubField:=0
ElseIf MsgBox("Voulez-vous traiter l'année passée?", vbQuestion + vbYesNo, "Traitement année") = vbYes Then
.Range("A5:A" & DerLig).AutoFilter field:=1, Criteria1:=14, Operator:=11, Criteria2:=0, SubField:=0
ElseIf MsgBox("Voulez-vous traiter une autre année?", vbQuestion + vbYesNo, "Traitement année") = vbYes Then
Critere = InputBox("Année à traiter")
.Range("A5:A" & DerLig).AutoFilter field:=1, Criteria1:=Array(0, Critere)
Else
.AutoFilterMode = False
End If
.Range(Cells(1, 1), Cells(DerLig, DerCol)).Copy
J'ai essayer aussi avec ce code pour le critère 1, mais sans succès!
criteria1:="=" & Critere
Merci pour votre aide!
Windows / Chrome 120.0.0.0
A voir également:
- Filtrer une colonne format date & heure avec un inputbox
- Format epub - Guide
- Format factory - Télécharger - Conversion & Codecs
- Déplacer une colonne excel - Guide
- Hp usb disk storage format tool - Télécharger - Stockage
- Format dat - Guide
2 réponses
Bonjour,
Inputbox avec control format date et heure. Il y a les secondes, mais vous pouvez les enlever
Sub test()
Critere = AskForValidDateTime
End Sub
Private Function AskForValidDateTime() As Date
Dim IsValid As Boolean
Do Until IsValid
Dim Result As Variant
Result = Application.InputBox("Wat is de tijd dat het monster genomen is?" & vbNewLine & "Gebruik UU:MM" & vbNewLine & "Voorbeeld: 09:30", "Tijdnotatie")
Dim SplitDateTime() As String 'split date from time
SplitDateTime = Split(Result, " ")
If UBound(SplitDateTime) = 1 Then
Dim SplitDate() As String
'note the following code only works for dates entered in the format DD-MM-YYYY
SplitDate = Split(SplitDateTime(0), "/")
If UBound(SplitDate) = 2 Then
Dim SplitTime() As String
SplitTime = Split(SplitDateTime(1), ":")
If UBound(SplitTime) = 1 Then
If Val(SplitTime(0)) < 24 And Val(SplitTime(1)) < 60 Then
IsValid = True
'note the following code only works for dates entered in the format DD-MM-YYYY
AskForValidDateTime = DateSerial(Val(SplitDate(2)), Val(SplitDate(1)), Val(SplitDate(0))) + TimeSerial(Val(SplitTime(0)), Val(SplitTime(1)), 0)
Exit Do
End If
End If
End If
End If
MsgBox "Een correcte tijdsnotatie is nodig om door te gaan. Klik op" & vbNewLine & "<Ok> om de tijd opnieuw in te vullen", vbOKOnly + vbExclamation, vbNullString
Loop
End Function
Bonjour f894009,
Ça ne fonctionne pas!
Petite précision que j'aurais du faire dès le début c'est que ma colonne qui contient les dates est sous format yyyy-mm-jj hh:mm.
Dans mon Inputbox, je demande à l'utilisateur d'entrer une année a filtrer dans le format yyyy.
Merci,