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

Enlever des caractères dans le champ d'un état

4 réponses
Avatar
moromain
Bonjour,

Dans un =E9tat, j'utilise les 2 premiers caract=E8res de la valeur du
champ pour d=E9finir la couleur du fond. Je voudrais "couper" ces 2
caract=E8res pour n'afficher que la vraie valeur du champ. J'utilise le
code suivant :

Private Sub D=E9tail_Format(Cancel As Integer, FormatCount As Integer)
Dim CodeCouleur As String
Dim Lgr As Long
For i =3D 2 To NbChamps
If Not IsNull(Me("V" & i)) Then
CodeCouleur =3D Left(Me("V" & i), 1)
Lgr =3D Len(Me("V" & i)) - 2
Me("V" & i) =3D Right("Me.V" & i, Lgr)
Else
CodeCouleur =3D 0
End If
Me("V" & i).BackStyle =3D 1
Me("V" & i).BackColor =3D BackCouleur(CodeCouleur) ' fonction qui me
renvoie la couleur souhait=E9e
Next i
End Sub

J'ai l'erreur 2448 (impossible d'attribuer une valeur =E0 cet objet) sur
la ligne :
Me("V" & i) =3D Right("Me.V" & i, Lgr)
=2Etext me donne l'erreur 2185 et .value 2448 aussi.
Quelle est la bonne synthaxe ?
Merci d'avance !

4 réponses

Avatar
Fabien
Bonjour,

Dans un état, j'utilise les 2 premiers caractères de la valeur du
champ pour définir la couleur du fond. Je voudrais "couper" ces 2
caractères pour n'afficher que la vraie valeur du champ. J'utilise le
code suivant :

Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer)
Dim CodeCouleur As String
Dim Lgr As Long
For i = 2 To NbChamps
If Not IsNull(Me("V" & i)) Then
CodeCouleur = Left(Me("V" & i), 1)
Lgr = Len(Me("V" & i)) - 2
Me("V" & i) = Right("Me.V" & i, Lgr)
Else
CodeCouleur = 0
End If
Me("V" & i).BackStyle = 1
Me("V" & i).BackColor = BackCouleur(CodeCouleur) ' fonction qui me
renvoie la couleur souhaitée
Next i
End Sub

J'ai l'erreur 2448 (impossible d'attribuer une valeur à cet objet) sur
la ligne :
Me("V" & i) = Right("Me.V" & i, Lgr)
.text me donne l'erreur 2185 et .value 2448 aussi.
Quelle est la bonne synthaxe ?
Merci d'avance !
Salut

et avec Me("V" & i) = Right(Me("V" & i), Lgr)
?
@+

Avatar
moromain
Pas mieux ! Mais tu as raison, la syntaxe après la virgule est plus
correcte !

J'ai osé un : Me("V" & i) = "Toto"
et un Me("V" & i).value = "Toto"
=> Erreur 2448
Avatar
Fabien
Pas mieux ! Mais tu as raison, la syntaxe après la virgule est plus
correcte !

J'ai osé un : Me("V" & i) = "Toto"
et un Me("V" & i).value = "Toto"
=> Erreur 2448
Juste comme çà : ta zone Vx est bien une zone texte indépendante et pas

une étiquette ?

Avatar
moromain
Oui. Pour être sûr, j'ai recréé une zone de texte indépendante.
Puis j'ai testé ensuite : Me.V1="Toto" : Erreur d'exécution
'-2147352567 (80020009)' : Impossible d'attribuer une valeur à cet
objet.

J'ai mis une zone texte liée à un champs de la requête dont est issu
l'état, puis : Me.NomduChamps="Toto" => Même erreur.