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

Le
moromain
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 !
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
Fabien
Le #6373121
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)
?
@+

moromain
Le #6373101
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
Fabien
Le #6373091
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 ?

moromain
Le #6373071
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.
Publicité
Poster une réponse
Anonyme