OVH Cloud OVH Cloud

[VBA] XL2000 -> XL2003

2 réponses
Avatar
amezqueta
J'avais développé le code suivant pour un classeur XL2000. Ce code me
permettait de changer la couleur et le style de la ligne sur laquelle se
trouve le curseur avec remise en l'état lorsque je changeais de ligne.
Or sous XL2003, ce code ne fonctionne plus :
Erreur d'exécution 1004
Impossible de définir la propriété Color de la classe Font

La même erreur est provoquée aussi par la propriété FontStyle.

J'ai effectué quelques tests. L'objet Target existe bien et j'accède à ses
propriétés. On dirait que je ne peux pas écrire sur ma feuille de calcul.
Est-ce que vous avez une idée de ce qu'il pourrait bien se passer ?
Merci de tout piste.
Amezqueta

Public WithEvents Etiquette As Worksheet
Public ErreurSaisie As Boolean
Private Sub Vegetation_SelectionChange(ByVal Target As Excel.Range)

Static lngRow As Long
Static strStyle As Variant

If lngRow = 0 Then lngRow = 3
If Rows(lngRow).Font.FontStyle = Null Then Rows(lngRow).Font.FontStyle =
"Gras"
With Rows(lngRow).Font
.Color = RGB(0, 0, 0)
.FontStyle = strStyle
End With

If ErreurSaisie = False Then
oldValue = Target.Value
lngRow = Target.Row
strStyle = Rows(lngRow).Font.FontStyle
End If

With Rows(lngRow).Font
.Color = RGB(255, 0, 0)
.FontStyle = "Gras"
End With

ErreurSaisie = False

End Sub

2 réponses

Avatar
Izmi
Bonjour Timzguida

Essaie ceci. Clic droit sur l'onglet de la feuille. clic sur visualiser
le code. Copie le code ci-dessous et colle le (remarque que c'est ton
code avec une seule ligne de changée)

Voici le code :

Public WithEvents Etiquette As Worksheet
Public ErreurSaisie As Boolean
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Static lngRow As Long
Static strStyle As Variant


If lngRow = 0 Then lngRow = 3
If Rows(lngRow).Font.FontStyle = Null Then
Rows(lngRow).Font.FontStyle = "Gras"
With Rows(lngRow).Font
.Color = RGB(0, 0, 0)
.FontStyle = strStyle
End With


If ErreurSaisie = False Then
oldValue = Target.Value
lngRow = Target.Row
strStyle = Rows(lngRow).Font.FontStyle
End If


With Rows(lngRow).Font
.Color = RGB(255, 0, 0)
.FontStyle = "Gras"
End With


ErreurSaisie = False


End Sub

Bonne continuation.

Izmi


J'avais développé le code suivant pour un classeur XL2000. Ce code me
permettait de changer la couleur et le style de la ligne sur laquelle se
trouve le curseur avec remise en l'état lorsque je changeais de ligne.
Or sous XL2003, ce code ne fonctionne plus :
Erreur d'exécution 1004
Impossible de définir la propriété Color de la classe Font

La même erreur est provoquée aussi par la propriété FontStyle.

J'ai effectué quelques tests. L'objet Target existe bien et j'accède à ses
propriétés. On dirait que je ne peux pas écrire sur ma feuille de c alcul.
Est-ce que vous avez une idée de ce qu'il pourrait bien se passer ?
Merci de tout piste.
Amezqueta

Public WithEvents Etiquette As Worksheet
Public ErreurSaisie As Boolean
Private Sub Vegetation_SelectionChange(ByVal Target As Excel.Range)

Static lngRow As Long
Static strStyle As Variant

If lngRow = 0 Then lngRow = 3
If Rows(lngRow).Font.FontStyle = Null Then Rows(lngRow).Font.FontSt yle =
"Gras"
With Rows(lngRow).Font
.Color = RGB(0, 0, 0)
.FontStyle = strStyle
End With

If ErreurSaisie = False Then
oldValue = Target.Value
lngRow = Target.Row
strStyle = Rows(lngRow).Font.FontStyle
End If

With Rows(lngRow).Font
.Color = RGB(255, 0, 0)
.FontStyle = "Gras"
End With

ErreurSaisie = False

End Sub


Avatar
amezqueta
Merci de ta réponse. Mais j'ai trouvé la raison des erreurs sur un workgroup
us:
XL2000 était laxiste sur la sécurité puisque l'on pouvait par code modifier
les attributs des cellules verrouillées sur un page protégée. XL2003
l'interdit maintenant.
La solution est de déprotégerla page à l'entrée de la fonction pour la
reprotéger à la sortie.