InputBox FormatDate
Résolu
conrade82
Messages postés
105
Statut
Membre
-
conrade82 Messages postés 105 Statut Membre -
conrade82 Messages postés 105 Statut Membre -
Bonjour,
Je suis en train de créer une macro Excel avec une variable qui va contenir une date de début et de fin afin de l'utiliser dans un filtre. Mon souci (et j'ignore si j'ai mal cherché dans les forum car je n'ai rien trouvé qui résolve ce "bug") c'est si ma variable Date1 = 01/08/2013, en exécutant le code, la date apparaît au format 08/01/2013. Par contre tout va bien si la date = 31/08/2013. Pourriez-vous me dire ce qui ne va pas dans mon code ?
Merci d'avance:
Je suis en train de créer une macro Excel avec une variable qui va contenir une date de début et de fin afin de l'utiliser dans un filtre. Mon souci (et j'ignore si j'ai mal cherché dans les forum car je n'ai rien trouvé qui résolve ce "bug") c'est si ma variable Date1 = 01/08/2013, en exécutant le code, la date apparaît au format 08/01/2013. Par contre tout va bien si la date = 31/08/2013. Pourriez-vous me dire ce qui ne va pas dans mon code ?
Merci d'avance:
Sub Macro1() Dim Date1 As Date Dim Date2 As Date 'Définition des variables Date1 = Application.InputBox("Entre la date de début du mois à traiter:" & Chr(10) & "au format JJ/MM/AAAA") If Date1 = "0" Then Exit Sub Date1 = Format(Date1, "dd/mm/yyyy") Date2 = Application.InputBox("Entre la date de début du mois à traiter:" & Chr(10) & "au format JJ/MM/AAAA") If Date2 = "0" Then Exit Sub Date2 = Format(Date1, "dd/mm/yyyy") 'Création onglet de travail Sheets("Table_Report_by_Country").Select Sheets("Table_Report_by_Country").Copy After:=Sheets("Demo") Sheets("Table_Report_by_Country (2)").Select Sheets("Table_Report_by_Country (2)").Name = "DATA" 'Détermination dernière ligne If Range("A3").Value = "" Then lastli = Range("A2") Else: lastli = Range("A2").End(xlDown).Row End If 'Filtre sur la période concernée Rows("1:1").Select Selection.AutoFilter Selection.AutoFilter Field:=7, Criteria1:="<" & Date1, Operator:=xlOr, _ Criteria2:=">" & Date2 Range("A2:A" & lastli).Select Selection.EntireRow.Delete Selection.AutoFilter End Sub
A voir également:
- Inputbox date
- Airpods 3 date de sortie - Guide
- Jm date désabonnement - Forum Gmail
- Jm date resiliation ✓ - Forum Consommation & Internet
- Jm date avis - Forum Consommation & Internet
- Office 2024 date de sortie - Accueil - Bureautique
3 réponses
Bonjour,
Je ne vois pas ton code...
Sinon il faut que tu change le format : NumberFormat = "dd/mm/yy;@"
Je ne vois pas ton code...
Sinon il faut que tu change le format : NumberFormat = "dd/mm/yy;@"
Voici mon code:
Sub Macro1()
Dim Date1 As Date
Dim Date2 As Date
'Définition des variables
Date1 = Application.InputBox("Entre la date de début du mois à traiter:" & Chr(10) & "au format JJ/MM/AAAA")
If Date1 = "0" Then Exit Sub
Date1 = Format(Date1, "dd/mm/yyyy")
Date2 = Application.InputBox("Entre la date de début du mois à traiter:" & Chr(10) & "au format JJ/MM/AAAA")
If Date2 = "0" Then Exit Sub
Date2 = Format(Date1, "dd/mm/yyyy")
'Création onglet de travail
Sheets("Table_Report_by_Country").Select
Sheets("Table_Report_by_Country").Copy After:=Sheets("Demo")
Sheets("Table_Report_by_Country (2)").Select
Sheets("Table_Report_by_Country (2)").Name = "DATA"
'Détermination dernière ligne
If Range("A3").Value = "" Then
lastli = Range("A2")
Else: lastli = Range("A2").End(xlDown).Row
End If
'Filtre sur la période concernée
Rows("1:1").Select
Selection.AutoFilter
Selection.AutoFilter Field:=7, Criteria1:="<" & Date1, Operator:=xlOr, _
Criteria2:=">" & Date2
Range("A2:A" & lastli).Select
Selection.EntireRow.Delete
Selection.AutoFilter
End Sub
Merci d'avance de votre aide.
Sub Macro1()
Dim Date1 As Date
Dim Date2 As Date
'Définition des variables
Date1 = Application.InputBox("Entre la date de début du mois à traiter:" & Chr(10) & "au format JJ/MM/AAAA")
If Date1 = "0" Then Exit Sub
Date1 = Format(Date1, "dd/mm/yyyy")
Date2 = Application.InputBox("Entre la date de début du mois à traiter:" & Chr(10) & "au format JJ/MM/AAAA")
If Date2 = "0" Then Exit Sub
Date2 = Format(Date1, "dd/mm/yyyy")
'Création onglet de travail
Sheets("Table_Report_by_Country").Select
Sheets("Table_Report_by_Country").Copy After:=Sheets("Demo")
Sheets("Table_Report_by_Country (2)").Select
Sheets("Table_Report_by_Country (2)").Name = "DATA"
'Détermination dernière ligne
If Range("A3").Value = "" Then
lastli = Range("A2")
Else: lastli = Range("A2").End(xlDown).Row
End If
'Filtre sur la période concernée
Rows("1:1").Select
Selection.AutoFilter
Selection.AutoFilter Field:=7, Criteria1:="<" & Date1, Operator:=xlOr, _
Criteria2:=">" & Date2
Range("A2:A" & lastli).Select
Selection.EntireRow.Delete
Selection.AutoFilter
End Sub
Merci d'avance de votre aide.
Bonjour,
inputbox retourne un texte. Ce n'est peut-être pas une bonne idée de le mettre directement dans Date1. Si la date est mal interprétée par excel (c'est un pb courant en vba, il croit voir une date anglaise et inverse jour/mois) c'est trop tard, la date est erronée dans Date1.
Essaie qcq chose comme ça :
eric
inputbox retourne un texte. Ce n'est peut-être pas une bonne idée de le mettre directement dans Date1. Si la date est mal interprétée par excel (c'est un pb courant en vba, il croit voir une date anglaise et inverse jour/mois) c'est trop tard, la date est erronée dans Date1.
Essaie qcq chose comme ça :
Saisie= Application.InputBox("Entre la date de début du mois à traiter:" & Chr(10) & "au format JJ/MM/AAAA") If Date1 = "0" Then Exit Sub Date1 = datevalue(Saisie)
eric
Bonjour Eric,
ça ne fonctionne pas. Lors de l'exécution du code, la date dans le filtre est au format inverse: 01/08/2013 = 08/01/2013.
Une autre idée s'il vous plait ?
Merci d'avance.
https://www.cjoint.com/?0AeufXwLZrL
ça ne fonctionne pas. Lors de l'exécution du code, la date dans le filtre est au format inverse: 01/08/2013 = 08/01/2013.
Une autre idée s'il vous plait ?
Merci d'avance.
https://www.cjoint.com/?0AeufXwLZrL
Bonsoir,
Si tu avais fais du pas à pas et mis des espions tu aurais pu préciser tout de suite que ton problème était sur le filtre.
Essaie avec :
Sans enlever ce que je t'ai dit auparavant.
eric
Si tu avais fais du pas à pas et mis des espions tu aurais pu préciser tout de suite que ton problème était sur le filtre.
Essaie avec :
Selection.AutoFilter Field:=7, Criteria1:="<" & CLng(Date1), Operator:=xlOr, _ Criteria2:=">" & CLng(Date2)
Sans enlever ce que je t'ai dit auparavant.
eric