OVH Cloud OVH Cloud

Mise en forme conditionnelle en VBA

5 réponses
Avatar
luc
Bonjour =E0 toutes et =E0 tous,

J'ai un bl=E8me avec ma mise en forme conditionnelle par=20
macro en XL97.
Sachant que ma macro se lance =E0 l'ouverture du classeur :
- Si j'ouvre mon classeur depuis XL, j'ai une erreur=20
d'ex=E9cution 5 "argument ou appel de proc=E9dure incorrect"=20
si ma formule n'est pas en fran=E7ais (=3Dgauche(D1;5)=3DTotal)
- Si j'ouvre mon classeur depuis l'explorateur, j'ai la=20
m=EAme erreur d'ex=E9cution si ma formule n'est pas en anglais=20
(=3Dleft(D1,5)=3DTotal)

Qqu'un aurait-il une solution pour que =E7a marche tout le=20
temps ?
Merci.

5 réponses

Avatar
Philippe.R
Bonsoir Luc,
Et à quoi ressemble ta macro de mise en forme conditionnelle (celle qui, semble t il, rend blêmes tes
cellules) ?
--
Amicales Salutations
Retirer A_S_ pour répondre.
XL 97 / 2000 / 2002
Pour suivre le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"luc" a écrit dans le message de
news:0d1901c4344c$c92b6640$
Bonjour à toutes et à tous,

J'ai un blème avec ma mise en forme conditionnelle par
macro en XL97.
Sachant que ma macro se lance à l'ouverture du classeur :
- Si j'ouvre mon classeur depuis XL, j'ai une erreur
d'exécution 5 "argument ou appel de procédure incorrect"
si ma formule n'est pas en français (=gauche(D1;5)=Total)
- Si j'ouvre mon classeur depuis l'explorateur, j'ai la
même erreur d'exécution si ma formule n'est pas en anglais
(=left(D1,5)=Total)

Qqu'un aurait-il une solution pour que ça marche tout le
temps ?
Merci.
Avatar
luc
Salut Philippe,

Voici le code :
Cells(1, 4).Activate
Columns(4).FormatConditions.Add Type:=xlExpression,
Formula1:= "=GAUCHE(D1;5)=""Total"""
Columns(4).FormatConditions(1).Font.Bold = True

Si j'exécute depuis XL, RAS. Si j'exécute depuis
explorateur, erreur d'exécution 5. Si je remplace par
Columns(4).FormatConditions.Add Type:=xlExpression,
Formula1:="=LEFT(D1,5)=""Total""" ça passe, mais au
lancement suivant depuis XL, erreur 5.

T'as une solution ?
Salutations.
Luc.

-----Message d'origine-----
Bonsoir Luc,
Et à quoi ressemble ta macro de mise en forme
conditionnelle (celle qui, semble t il, rend blêmes tes

cellules) ?
--
Amicales Salutations
Retirer A_S_ pour répondre.
XL 97 / 2000 / 2002
Pour suivre le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"luc" a écrit dans
le message de

news:0d1901c4344c$c92b6640$
Bonjour à toutes et à tous,

J'ai un blème avec ma mise en forme conditionnelle par
macro en XL97.
Sachant que ma macro se lance à l'ouverture du classeur :
- Si j'ouvre mon classeur depuis XL, j'ai une erreur
d'exécution 5 "argument ou appel de procédure incorrect"
si ma formule n'est pas en français (=gauche(D1;5)=Total)
- Si j'ouvre mon classeur depuis l'explorateur, j'ai la
même erreur d'exécution si ma formule n'est pas en anglais
(=left(D1,5)=Total)

Qqu'un aurait-il une solution pour que ça marche tout le
temps ?
Merci.


.



Avatar
Philippe.R
Bonsoir Luc,
Curieuse affaire, chez moi, avec XL2002, cette version, placée dans un module ordinaire :

Sub formacondia()
Cells(1, 4).Activate
Columns(4).FormatConditions.Add Type:=xlExpression, _
Formula1:="=GAUCHE(D1;5)=""Total"""
Columns(4).FormatConditions(1).Font.Bold = True
End Sub

appelée depuis :

Private Sub Workbook_Open()
formacondia
End Sub

fonctionne dans tous les cas (explorateur ou Excel)
Il semble en outre logique, dans la mesure où ta version d'Excel est en français, que sur ce coup, la
formule anglaise ne fonctionne pas.
--
Amicales Salutations
Retirer A_S_ pour répondre.
XL 97 / 2000 / 2002
Pour suivre le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"luc" a écrit dans le message de
news:aae301c43666$3d459170$
Salut Philippe,

Voici le code :
Cells(1, 4).Activate
Columns(4).FormatConditions.Add Type:=xlExpression,
Formula1:= "=GAUCHE(D1;5)=""Total"""
Columns(4).FormatConditions(1).Font.Bold = True

Si j'exécute depuis XL, RAS. Si j'exécute depuis
explorateur, erreur d'exécution 5. Si je remplace par
Columns(4).FormatConditions.Add Type:=xlExpression,
Formula1:="=LEFT(D1,5)=""Total""" ça passe, mais au
lancement suivant depuis XL, erreur 5.

T'as une solution ?
Salutations.
Luc.

-----Message d'origine-----
Bonsoir Luc,
Et à quoi ressemble ta macro de mise en forme
conditionnelle (celle qui, semble t il, rend blêmes tes

cellules) ?
--
Amicales Salutations
Retirer A_S_ pour répondre.
XL 97 / 2000 / 2002
Pour suivre le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"luc" a écrit dans
le message de

news:0d1901c4344c$c92b6640$
Bonjour à toutes et à tous,

J'ai un blème avec ma mise en forme conditionnelle par
macro en XL97.
Sachant que ma macro se lance à l'ouverture du classeur :
- Si j'ouvre mon classeur depuis XL, j'ai une erreur
d'exécution 5 "argument ou appel de procédure incorrect"
si ma formule n'est pas en français (=gauche(D1;5)=Total)
- Si j'ouvre mon classeur depuis l'explorateur, j'ai la
même erreur d'exécution si ma formule n'est pas en anglais
(=left(D1,5)=Total)

Qqu'un aurait-il une solution pour que ça marche tout le
temps ?
Merci.


.



Avatar
luc
Salut Philippe
Pour en finir avec mon problème, et comme je ne suis pas
arrivé à trouver la propriété d'Excel ou du classeur qui
me permette de savoir comment j'ai ouvert le classeur,
j'ai fini par mettre en place un test d'erreur : je mets
ma formule dans une langue, si je détecte une erreur 5, je
la mets dans l'autre langue. Pas forcément très joli, mais
ça marche.

Merci pour ta contribution, et peut-être à une prochaine.

-----Message d'origine-----
Bonsoir Luc,
Curieuse affaire, chez moi, avec XL2002, cette version,
placée dans un module ordinaire :


Sub formacondia()
Cells(1, 4).Activate
Columns(4).FormatConditions.Add Type:=xlExpression, _
Formula1:="=GAUCHE(D1;5)=""Total"""
Columns(4).FormatConditions(1).Font.Bold = True
End Sub

appelée depuis :

Private Sub Workbook_Open()
formacondia
End Sub

fonctionne dans tous les cas (explorateur ou Excel)
Il semble en outre logique, dans la mesure où ta version
d'Excel est en français, que sur ce coup, la

formule anglaise ne fonctionne pas.
--
Amicales Salutations
Retirer A_S_ pour répondre.
XL 97 / 2000 / 2002
Pour suivre le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"luc" a écrit dans
le message de

news:aae301c43666$3d459170$
Salut Philippe,

Voici le code :
Cells(1, 4).Activate
Columns(4).FormatConditions.Add Type:=xlExpression,
Formula1:= "=GAUCHE(D1;5)=""Total"""
Columns(4).FormatConditions(1).Font.Bold = True

Si j'exécute depuis XL, RAS. Si j'exécute depuis
explorateur, erreur d'exécution 5. Si je remplace par
Columns(4).FormatConditions.Add Type:=xlExpression,
Formula1:="=LEFT(D1,5)=""Total""" ça passe, mais au
lancement suivant depuis XL, erreur 5.

T'as une solution ?
Salutations.
Luc.

-----Message d'origine-----
Bonsoir Luc,
Et à quoi ressemble ta macro de mise en forme
conditionnelle (celle qui, semble t il, rend blêmes tes

cellules) ?
--
Amicales Salutations
Retirer A_S_ pour répondre.
XL 97 / 2000 / 2002
Pour suivre le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"luc" a écrit dans
le message de

news:0d1901c4344c$c92b6640$
Bonjour à toutes et à tous,

J'ai un blème avec ma mise en forme conditionnelle par
macro en XL97.
Sachant que ma macro se lance à l'ouverture du classeur :
- Si j'ouvre mon classeur depuis XL, j'ai une erreur
d'exécution 5 "argument ou appel de procédure incorrect"
si ma formule n'est pas en français (=gauche(D1;5)=Total)
- Si j'ouvre mon classeur depuis l'explorateur, j'ai la
même erreur d'exécution si ma formule n'est pas en
anglais


(=left(D1,5)=Total)

Qqu'un aurait-il une solution pour que ça marche tout le
temps ?
Merci.


.




.




Avatar
Frédéric Sigonneau
Bonjour,

Une approche possible pourrait être de tester si les fonctions sont ou non
affichées en anglais sur la version d'Excel où s'exécute le code. La propriété
International de l'objet Application possède un paramètre qui renvoie vrai ou
faux selon le cas, ce qui te permettrait d'éviter un test d'erreur.
Par exemple :

Sub test()
If Not Application.International(xlNonEnglishFunctions) Then
MsgBox "les formules sont affichées en anglais"
Else
MsgBox "les formules ne sont pas affichées en anglais"
End If
End Sub

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !

Salut Philippe
Pour en finir avec mon problème, et comme je ne suis pas
arrivé à trouver la propriété d'Excel ou du classeur qui
me permette de savoir comment j'ai ouvert le classeur,
j'ai fini par mettre en place un test d'erreur : je mets
ma formule dans une langue, si je détecte une erreur 5, je
la mets dans l'autre langue. Pas forcément très joli, mais
ça marche.

Merci pour ta contribution, et peut-être à une prochaine.


-----Message d'origine-----
Bonsoir Luc,
Curieuse affaire, chez moi, avec XL2002, cette version,


placée dans un module ordinaire :

Sub formacondia()
Cells(1, 4).Activate
Columns(4).FormatConditions.Add Type:=xlExpression, _
Formula1:="=GAUCHE(D1;5)=""Total"""
Columns(4).FormatConditions(1).Font.Bold = True
End Sub

appelée depuis :

Private Sub Workbook_Open()
formacondia
End Sub

fonctionne dans tous les cas (explorateur ou Excel)
Il semble en outre logique, dans la mesure où ta version


d'Excel est en français, que sur ce coup, la

formule anglaise ne fonctionne pas.
--
Amicales Salutations
Retirer A_S_ pour répondre.
XL 97 / 2000 / 2002
Pour suivre le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"luc" a écrit dans


le message de

news:aae301c43666$3d459170$
Salut Philippe,

Voici le code :
Cells(1, 4).Activate
Columns(4).FormatConditions.Add Type:=xlExpression,
Formula1:= "=GAUCHE(D1;5)=""Total"""
Columns(4).FormatConditions(1).Font.Bold = True

Si j'exécute depuis XL, RAS. Si j'exécute depuis
explorateur, erreur d'exécution 5. Si je remplace par
Columns(4).FormatConditions.Add Type:=xlExpression,
Formula1:="=LEFT(D1,5)=""Total""" ça passe, mais au
lancement suivant depuis XL, erreur 5.

T'as une solution ?
Salutations.
Luc.


-----Message d'origine-----
Bonsoir Luc,
Et à quoi ressemble ta macro de mise en forme


conditionnelle (celle qui, semble t il, rend blêmes tes

cellules) ?
--
Amicales Salutations
Retirer A_S_ pour répondre.
XL 97 / 2000 / 2002
Pour suivre le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"luc" a écrit dans


le message de

news:0d1901c4344c$c92b6640$
Bonjour à toutes et à tous,

J'ai un blème avec ma mise en forme conditionnelle par
macro en XL97.
Sachant que ma macro se lance à l'ouverture du classeur :
- Si j'ouvre mon classeur depuis XL, j'ai une erreur
d'exécution 5 "argument ou appel de procédure incorrect"
si ma formule n'est pas en français (=gauche(D1;5)=Total)
- Si j'ouvre mon classeur depuis l'explorateur, j'ai la
même erreur d'exécution si ma formule n'est pas en



anglais

(=left(D1,5)=Total)

Qqu'un aurait-il une solution pour que ça marche tout le
temps ?
Merci.


.




.