OVH Cloud OVH Cloud

Problème de date

4 réponses
Avatar
Marco38
Bonjour,

J'ai une colonne =E0 passer en revue pour supprimer des=20
lignes et je rencontre des probl=E8me avec les dates.

Voila mon code

Dim Message, Title, Default, MyValue, MyValue2
' D=E9finit le message.
Message =3D "Entrez une date de d=E9but"
Title =3D "SOLDE TRESORERIE AU JOUR LE JOUR" ' D=E9finit=20
le titre.
Default =3D "01/01/2004" ' D=E9finition la valeur par=20
d=E9faut.
' Affiche le message, le titre et la valeur par d=E9faut.
MyValue =3D InputBox(Message, Title, Default)
MyValue =3D DateValue(MyValue)

Message =3D "Entrez une date de fin"
Title =3D "SOLDE TRESORERIE AU JOUR LE JOUR" ' D=E9finit=20
le titre.
Default =3D "31/01/2004" ' D=E9finition la valeur par=20
d=E9faut.
' Affiche le message, le titre et la valeur par d=E9faut.
MyValue2 =3D InputBox(Message, Title, Default)
MyValue2 =3D DateValue(MyValue2)



For ligne =3D [B65536].End(xlUp).Row To 1 Step -1
If ligne =3D 1 Then GoTo Line4
If Format(DateValue(Range("b" &=20
ligne).Value), "dd/mm/yyyy") < Format(DateValue
(MyValue), "dd/mm/yyyy") Then
Rows(ligne).Delete
Else
End If
Next

Line4:

Date renter dans le 1er inputbox : 01/09/2004
Date renter dans le 2e inpubox : 30/09/2004
Quand j'arrive =E0 la date 01/07/2007 il veux supprimer la=20
ligne alors que le 01/07/2007 et sup=E9rieur =E0 la date du=20
01/09/2004.?????

Une solution SVP

Merci

4 réponses

Avatar
PMO
Bonjour,

TESTEZ SUR UNE COPIE DE VOTRE CLASSEUR

Veuillez essayer le code suivant:

'****************************
Option Explicit
Sub aa()
Dim Message$
Dim Title$
Dim Default$
Dim MyValue As Variant
Dim MyValue2 As Variant
Dim R As Range
Dim DateCell&
Dim Ligne&
'---- Borne Mini ----
Message = "Entrez une date de début"
Title = "SOLDE TRESORERIE AU JOUR LE JOUR"
Default = "01/01/2004"
Do While Not IsDate(MyValue)
MyValue = InputBox(Message, Title, Default)
If Not IsDate(MyValue) Then _
MsgBox "Veuillez saisir une date"
Loop
'---- Borne Maxi ----
Message = "Entrez une date de fin"
Default = "31/01/2004"
Do While Not IsDate(MyValue2)
MyValue2 = InputBox(Message, Title, Default)
If Not IsDate(MyValue2) Then _
MsgBox "Veuillez saisir une date"
If CLng(CDate(MyValue2)) < CLng(CDate(MyValue)) Then
MsgBox "Veuillez saisir une date égale " & _
"ou supérieure au " & MyValue
MyValue2 = ""
End If
Loop
'---- Conversion ----
MyValue = CLng(CDate(MyValue))
MyValue2 = CLng(CDate(MyValue2))
'---- Supression des lignes hors bornes ----
For Ligne = [B65536].End(xlUp).Row To 1 Step -1
Set R = Range("b" & Ligne)
'°°°° Est-ce bien une date en colonne B °°°°
If Not IsDate(R) Then
MsgBox "La cellule " & R.Address & _
" ne peut être interprétée comme une date."
Exit Sub
End If
'°°°° Conversion °°°°
DateCell& = CLng(R)
'°°°° Suppression des plus petits °°°°
If DateCell& < MyValue Then
Rows(Ligne).Delete
'°°°° Suppression des plus grands °°°°
ElseIf DateCell& > MyValue2 Then
Rows(Ligne).Delete
End If
Next
End Sub
'********************************

Cordialement.

PMO
Patrick Morange


-----Message d'origine-----
Bonjour,

J'ai une colonne à passer en revue pour supprimer des
lignes et je rencontre des problème avec les dates.

Voila mon code

Dim Message, Title, Default, MyValue, MyValue2
' Définit le message.
Message = "Entrez une date de début"
Title = "SOLDE TRESORERIE AU JOUR LE JOUR" ' Définit
le titre.
Default = "01/01/2004" ' Définition la valeur par
défaut.
' Affiche le message, le titre et la valeur par défaut.
MyValue = InputBox(Message, Title, Default)
MyValue = DateValue(MyValue)

Message = "Entrez une date de fin"
Title = "SOLDE TRESORERIE AU JOUR LE JOUR" ' Définit
le titre.
Default = "31/01/2004" ' Définition la valeur par
défaut.
' Affiche le message, le titre et la valeur par défaut.
MyValue2 = InputBox(Message, Title, Default)
MyValue2 = DateValue(MyValue2)



For ligne = [B65536].End(xlUp).Row To 1 Step -1
If ligne = 1 Then GoTo Line4
If Format(DateValue(Range("b" &
ligne).Value), "dd/mm/yyyy") < Format(DateValue
(MyValue), "dd/mm/yyyy") Then
Rows(ligne).Delete
Else
End If
Next

Line4:

Date renter dans le 1er inputbox : 01/09/2004
Date renter dans le 2e inpubox : 30/09/2004
Quand j'arrive à la date 01/07/2007 il veux supprimer la
ligne alors que le 01/07/2007 et supérieur à la date du
01/09/2004.?????

Une solution SVP

Merci
.



Avatar
Marco38
Bonjour,

Merci beaucoup c'est parfait c'est donc bien le format de
date entre VBA et Excel qui est différent.?

Cordialement,
Marc

PS : je vais regarder de plus près vos lignes de
conversion! Merci
-----Message d'origine-----
Bonjour,

TESTEZ SUR UNE COPIE DE VOTRE CLASSEUR

Veuillez essayer le code suivant:

'****************************
Option Explicit
Sub aa()
Dim Message$
Dim Title$
Dim Default$
Dim MyValue As Variant
Dim MyValue2 As Variant
Dim R As Range
Dim DateCell&
Dim Ligne&
'---- Borne Mini ----
Message = "Entrez une date de début"
Title = "SOLDE TRESORERIE AU JOUR LE JOUR"
Default = "01/01/2004"
Do While Not IsDate(MyValue)
MyValue = InputBox(Message, Title, Default)
If Not IsDate(MyValue) Then _
MsgBox "Veuillez saisir une date"
Loop
'---- Borne Maxi ----
Message = "Entrez une date de fin"
Default = "31/01/2004"
Do While Not IsDate(MyValue2)
MyValue2 = InputBox(Message, Title, Default)
If Not IsDate(MyValue2) Then _
MsgBox "Veuillez saisir une date"
If CLng(CDate(MyValue2)) < CLng(CDate(MyValue)) Then
MsgBox "Veuillez saisir une date égale " & _
"ou supérieure au " & MyValue
MyValue2 = ""
End If
Loop
'---- Conversion ----
MyValue = CLng(CDate(MyValue))
MyValue2 = CLng(CDate(MyValue2))
'---- Supression des lignes hors bornes ----
For Ligne = [B65536].End(xlUp).Row To 1 Step -1
Set R = Range("b" & Ligne)
'°°°° Est-ce bien une date en colonne B °°°°
If Not IsDate(R) Then
MsgBox "La cellule " & R.Address & _
" ne peut être interprétée comme une date."
Exit Sub
End If
'°°°° Conversion °°°°
DateCell& = CLng(R)
'°°°° Suppression des plus petits °°°°
If DateCell& < MyValue Then
Rows(Ligne).Delete
'°°°° Suppression des plus grands °°°°
ElseIf DateCell& > MyValue2 Then
Rows(Ligne).Delete
End If
Next
End Sub
'********************************

Cordialement.

PMO
Patrick Morange


-----Message d'origine-----
Bonjour,

J'ai une colonne à passer en revue pour supprimer des
lignes et je rencontre des problème avec les dates.

Voila mon code

Dim Message, Title, Default, MyValue, MyValue2
' Définit le message.
Message = "Entrez une date de début"
Title = "SOLDE TRESORERIE AU JOUR LE JOUR" ' Définit
le titre.
Default = "01/01/2004" ' Définition la valeur par
défaut.
' Affiche le message, le titre et la valeur par défaut.
MyValue = InputBox(Message, Title, Default)
MyValue = DateValue(MyValue)

Message = "Entrez une date de fin"
Title = "SOLDE TRESORERIE AU JOUR LE JOUR" ' Définit
le titre.
Default = "31/01/2004" ' Définition la valeur par
défaut.
' Affiche le message, le titre et la valeur par défaut.
MyValue2 = InputBox(Message, Title, Default)
MyValue2 = DateValue(MyValue2)



For ligne = [B65536].End(xlUp).Row To 1 Step -1
If ligne = 1 Then GoTo Line4
If Format(DateValue(Range("b" &
ligne).Value), "dd/mm/yyyy") < Format(DateValue
(MyValue), "dd/mm/yyyy") Then
Rows(ligne).Delete
Else
End If
Next

Line4:

Date renter dans le 1er inputbox : 01/09/2004
Date renter dans le 2e inpubox : 30/09/2004
Quand j'arrive à la date 01/07/2007 il veux supprimer
la


ligne alors que le 01/07/2007 et supérieur à la date du
01/09/2004.?????

Une solution SVP

Merci
.

.





Avatar
Philippe.R
Bonsoir Marco,
Le format de date sous VBA est le format anglo-saxon ; d'où l'intérêt d'utiliser dateserial.
--
Amicales Salutations
XL 97 / 2000 / 2002
Retirer A_S_ pour répondre en privé.
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"Marco38" a écrit dans le message de news:
29b201c4af92$2feec640$
Bonjour,

Merci beaucoup c'est parfait c'est donc bien le format de
date entre VBA et Excel qui est différent.?

Cordialement,
Marc

PS : je vais regarder de plus près vos lignes de
conversion! Merci
-----Message d'origine-----
Bonjour,

TESTEZ SUR UNE COPIE DE VOTRE CLASSEUR

Veuillez essayer le code suivant:

'****************************
Option Explicit
Sub aa()
Dim Message$
Dim Title$
Dim Default$
Dim MyValue As Variant
Dim MyValue2 As Variant
Dim R As Range
Dim DateCell&
Dim Ligne&
'---- Borne Mini ----
Message = "Entrez une date de début"
Title = "SOLDE TRESORERIE AU JOUR LE JOUR"
Default = "01/01/2004"
Do While Not IsDate(MyValue)
MyValue = InputBox(Message, Title, Default)
If Not IsDate(MyValue) Then _
MsgBox "Veuillez saisir une date"
Loop
'---- Borne Maxi ----
Message = "Entrez une date de fin"
Default = "31/01/2004"
Do While Not IsDate(MyValue2)
MyValue2 = InputBox(Message, Title, Default)
If Not IsDate(MyValue2) Then _
MsgBox "Veuillez saisir une date"
If CLng(CDate(MyValue2)) < CLng(CDate(MyValue)) Then
MsgBox "Veuillez saisir une date égale " & _
"ou supérieure au " & MyValue
MyValue2 = ""
End If
Loop
'---- Conversion ----
MyValue = CLng(CDate(MyValue))
MyValue2 = CLng(CDate(MyValue2))
'---- Supression des lignes hors bornes ----
For Ligne = [B65536].End(xlUp).Row To 1 Step -1
Set R = Range("b" & Ligne)
'°°°° Est-ce bien une date en colonne B °°°°
If Not IsDate(R) Then
MsgBox "La cellule " & R.Address & _
" ne peut être interprétée comme une date."
Exit Sub
End If
'°°°° Conversion °°°°
DateCell& = CLng(R)
'°°°° Suppression des plus petits °°°°
If DateCell& < MyValue Then
Rows(Ligne).Delete
'°°°° Suppression des plus grands °°°°
ElseIf DateCell& > MyValue2 Then
Rows(Ligne).Delete
End If
Next
End Sub
'********************************

Cordialement.

PMO
Patrick Morange


-----Message d'origine-----
Bonjour,

J'ai une colonne à passer en revue pour supprimer des
lignes et je rencontre des problème avec les dates.

Voila mon code

Dim Message, Title, Default, MyValue, MyValue2
' Définit le message.
Message = "Entrez une date de début"
Title = "SOLDE TRESORERIE AU JOUR LE JOUR" ' Définit
le titre.
Default = "01/01/2004" ' Définition la valeur par
défaut.
' Affiche le message, le titre et la valeur par défaut.
MyValue = InputBox(Message, Title, Default)
MyValue = DateValue(MyValue)

Message = "Entrez une date de fin"
Title = "SOLDE TRESORERIE AU JOUR LE JOUR" ' Définit
le titre.
Default = "31/01/2004" ' Définition la valeur par
défaut.
' Affiche le message, le titre et la valeur par défaut.
MyValue2 = InputBox(Message, Title, Default)
MyValue2 = DateValue(MyValue2)



For ligne = [B65536].End(xlUp).Row To 1 Step -1
If ligne = 1 Then GoTo Line4
If Format(DateValue(Range("b" &
ligne).Value), "dd/mm/yyyy") < Format(DateValue
(MyValue), "dd/mm/yyyy") Then
Rows(ligne).Delete
Else
End If
Next

Line4:

Date renter dans le 1er inputbox : 01/09/2004
Date renter dans le 2e inpubox : 30/09/2004
Quand j'arrive à la date 01/07/2007 il veux supprimer
la


ligne alors que le 01/07/2007 et supérieur à la date du
01/09/2004.?????

Une solution SVP

Merci
.

.





Avatar
Marco38
Merci,

Cordialement
Marc
-----Message d'origine-----
Bonsoir Marco,
Le format de date sous VBA est le format anglo-saxon ;
d'où l'intérêt d'utiliser dateserial.

--
Amicales Salutations
XL 97 / 2000 / 2002
Retirer A_S_ pour répondre en privé.
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"Marco38" a écrit
dans le message de news:

29b201c4af92$2feec640$
Bonjour,

Merci beaucoup c'est parfait c'est donc bien le format de
date entre VBA et Excel qui est différent.?

Cordialement,
Marc

PS : je vais regarder de plus près vos lignes de
conversion! Merci
-----Message d'origine-----
Bonjour,

TESTEZ SUR UNE COPIE DE VOTRE CLASSEUR

Veuillez essayer le code suivant:

'****************************
Option Explicit
Sub aa()
Dim Message$
Dim Title$
Dim Default$
Dim MyValue As Variant
Dim MyValue2 As Variant
Dim R As Range
Dim DateCell&
Dim Ligne&
'---- Borne Mini ----
Message = "Entrez une date de début"
Title = "SOLDE TRESORERIE AU JOUR LE JOUR"
Default = "01/01/2004"
Do While Not IsDate(MyValue)
MyValue = InputBox(Message, Title, Default)
If Not IsDate(MyValue) Then _
MsgBox "Veuillez saisir une date"
Loop
'---- Borne Maxi ----
Message = "Entrez une date de fin"
Default = "31/01/2004"
Do While Not IsDate(MyValue2)
MyValue2 = InputBox(Message, Title, Default)
If Not IsDate(MyValue2) Then _
MsgBox "Veuillez saisir une date"
If CLng(CDate(MyValue2)) < CLng(CDate(MyValue)) Then
MsgBox "Veuillez saisir une date égale " & _
"ou supérieure au " & MyValue
MyValue2 = ""
End If
Loop
'---- Conversion ----
MyValue = CLng(CDate(MyValue))
MyValue2 = CLng(CDate(MyValue2))
'---- Supression des lignes hors bornes ----
For Ligne = [B65536].End(xlUp).Row To 1 Step -1
Set R = Range("b" & Ligne)
'°°°° Est-ce bien une date en colonne B °°°°
If Not IsDate(R) Then
MsgBox "La cellule " & R.Address & _
" ne peut être interprétée comme une date."
Exit Sub
End If
'°°°° Conversion °°°°
DateCell& = CLng(R)
'°°°° Suppression des plus petits °°°°
If DateCell& < MyValue Then
Rows(Ligne).Delete
'°°°° Suppression des plus grands °°°°
ElseIf DateCell& > MyValue2 Then
Rows(Ligne).Delete
End If
Next
End Sub
'********************************

Cordialement.

PMO
Patrick Morange


-----Message d'origine-----
Bonjour,

J'ai une colonne à passer en revue pour supprimer des
lignes et je rencontre des problème avec les dates.

Voila mon code

Dim Message, Title, Default, MyValue, MyValue2
' Définit le message.
Message = "Entrez une date de début"
Title = "SOLDE TRESORERIE AU JOUR LE JOUR" ' Définit
le titre.
Default = "01/01/2004" ' Définition la valeur par
défaut.
' Affiche le message, le titre et la valeur par défaut.
MyValue = InputBox(Message, Title, Default)
MyValue = DateValue(MyValue)

Message = "Entrez une date de fin"
Title = "SOLDE TRESORERIE AU JOUR LE JOUR" ' Définit
le titre.
Default = "31/01/2004" ' Définition la valeur par
défaut.
' Affiche le message, le titre et la valeur par défaut.
MyValue2 = InputBox(Message, Title, Default)
MyValue2 = DateValue(MyValue2)



For ligne = [B65536].End(xlUp).Row To 1 Step -1
If ligne = 1 Then GoTo Line4
If Format(DateValue(Range("b" &
ligne).Value), "dd/mm/yyyy") < Format(DateValue
(MyValue), "dd/mm/yyyy") Then
Rows(ligne).Delete
Else
End If
Next

Line4:

Date renter dans le 1er inputbox : 01/09/2004
Date renter dans le 2e inpubox : 30/09/2004
Quand j'arrive à la date 01/07/2007 il veux supprimer
la


ligne alors que le 01/07/2007 et supérieur à la date du
01/09/2004.?????

Une solution SVP

Merci
.

.





.