Erreur avec value.

Le
Patrick BASTARD
Bonsoir à tous.

Je galère pour une formulation :
//////////////////////////////////////
Sub SupprimerLignes()
Dim Ligne As Long
Dim i As Long

Ligne = Range("a" & Rows.Count).End(xlUp).Row
For i = Ligne To 7 Step -1
*If Left(Range("a" & i), 10).Value < Range("a1") Then Range("a" &
i).EntireRow.Delete*
Next i
End Sub
//////////////////////////////////////
est supposé supprimer toutes les lignes, à partir de la ligne 7 jusqu'en
bas, qui contient en A une valeur supérieure à la valeur dans A1.
Dans A1 : =aujourdhui()

En colonne A, de A7 à An, et en format texte, des données du type :
19/02/2008 - 17:15:05
cnum(gauche(A7;10)) me renvoie bien une date.
Pourquoi Left(Range("a" & i), 10).Value ne le fait pas ?
Value est bien l'équivalent VBA de Cnum.
Ou est mon erreur ?

Merci pour votre aide.

--
Bien amicordialement,
P. Bastard

Avant d'imprimer ce mail, ayez une pensée pour les arbres.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JB
Le #5173521
Bonsoir,

x = CDate(Left([A1], 10)) peut être

JB
On 24 fév, 19:59, "Patrick BASTARD"
 Bonsoir à tous.

Je galère pour une formulation :
//////////////////////////////////////
Sub SupprimerLignes()
    Dim Ligne As Long
    Dim i As Long

    Ligne = Range("a" & Rows.Count).End(xlUp).Row
    For i = Ligne To 7 Step -1
        *If Left(Range("a" & i), 10).Value < Range("a1") Then Rang e("a" &
i).EntireRow.Delete*
    Next i
End Sub
//////////////////////////////////////
est supposé supprimer toutes les lignes, à partir de la ligne 7 jusqu' en
bas, qui contient en A une valeur supérieure à la valeur dans A1.
Dans A1 : =aujourdhui()

En colonne A, de A7 à An, et en format texte, des données du type :
19/02/2008 - 17:15:05
cnum(gauche(A7;10)) me renvoie bien une date.
Pourquoi Left(Range("a" & i), 10).Value  ne le fait pas ?
Value est bien l'équivalent VBA de Cnum.
Ou est mon erreur ?

Merci pour votre aide.

--
Bien amicordialement,
P. Bastard

Avant d'imprimer ce mail, ayez une pensée pour les arbres.


JB
Le #5173441
Left(Range("a" & i), 10).Value est une chaîne de caractères.
Pour le convertir en date, il faut utiliser Cdate()

JB

On 24 fév, 20:20, JB
Bonsoir,

x = CDate(Left([A1], 10))  peut être

JB
On 24 fév, 19:59, "Patrick BASTARD"



 Bonsoir à tous.

Je galère pour une formulation :
//////////////////////////////////////
Sub SupprimerLignes()
    Dim Ligne As Long
    Dim i As Long

    Ligne = Range("a" & Rows.Count).End(xlUp).Row
    For i = Ligne To 7 Step -1
        *If Left(Range("a" & i), 10).Value < Range("a1") Then Ra nge("a" &
i).EntireRow.Delete*
    Next i
End Sub
//////////////////////////////////////
est supposé supprimer toutes les lignes, à partir de la ligne 7 jusq u'en
bas, qui contient en A une valeur supérieure à la valeur dans A1.
Dans A1 : =aujourdhui()

En colonne A, de A7 à An, et en format texte, des données du type :
19/02/2008 - 17:15:05
cnum(gauche(A7;10)) me renvoie bien une date.
Pourquoi Left(Range("a" & i), 10).Value  ne le fait pas ?
Value est bien l'équivalent VBA de Cnum.
Ou est mon erreur ?

Merci pour votre aide.

--
Bien amicordialement,
P. Bastard

Avant d'imprimer ce mail, ayez une pensée pour les arbres.- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -



Patrick BASTARD
Le #5173431
Bonjour, *Jacques*

Merci.

Le code ci-dessous fonctionne :
//////////////////////////////////////////
Sub SupprimerLignes()

Dim Ligne As Long
Dim i As Long

Ligne = Range("a" & Rows.Count).End(xlUp).Row
For i = Ligne To 6 Step -1
If CDate(Left(Range("a" & i), 10)) < Range("a4") Then Range("a" &
i).EntireRow.Delete
Next i
End Sub
//////////////////////////////////////////

--
Bien amicordialement,
P. Bastard

Avant d'imprimer ce mail, ayez une pensée pour les arbres.

Bonsoir,

x = CDate(Left([A1], 10)) peut être

JB
On 24 fév, 19:59, "Patrick BASTARD"


Publicité
Poster une réponse
Anonyme