Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Erreur avec value.

3 réponses
Avatar
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.

3 réponses

Avatar
JB
Bonsoir,

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

JB
On 24 fév, 19:59, "Patrick BASTARD"
wrote:
 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.


Avatar
JB
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 wrote:
Bonsoir,

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

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



wrote:
 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 -



Avatar
Patrick BASTARD
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"