Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/01/2012, 14h37   #1
Candidat au titre de Membre du Club
 
Ingénieur Etudes
Inscription : juillet 2011
Messages : 43
Détails du profil
Informations personnelles :
Localisation : France, Seine Saint Denis (Île de France)

Informations professionnelles :
Activité : Ingénieur Etudes
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juillet 2011
Messages : 43
Points : 12
Points : 12
Par défaut Mise en forme Conditionnelle

Bonjour tout le monde et bonne année,
Longue vie au forum

Mon problème est le suivant: lorsque je définis la Mise en forme conditionnelle des cellules via un code VBA, ça ne marche pas !!! Pourtant quand j'entre les conditions "manuellement" ça tourne bien...

Voici le code :
Code :
1
2
3
4
5
6
7
code = 64 + n
Cells(m, n).FormatConditions.Add Type:=xlExpression, Formula1:="ET(" & Chr(code) & "18>=C" & m & ";" & Chr(code) & "18<=D" & m & ")"
Selection.FormatConditions(1).Font.ColorIndex = 1
With Selection.FormatConditions(1).Interior
              .ColorIndex = 35
              .Pattern = xlSolid
End With
pourriez vous m'aider ????? svp
usul3 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2012, 14h44   #2
Membre Expert
 
Avatar de ZebreLoup
 
Homme Sebastien L
Ingénieur Financier
Inscription : mars 2010
Messages : 880
Détails du profil
Informations personnelles :
Nom : Homme Sebastien L
Âge : 33
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur Financier
Secteur : Finance

Informations forums :
Inscription : mars 2010
Messages : 880
Points : 1 867
Points : 1 867
Je ne suis pas sûr, mais il me semble qu'il faut que tu entres les formules avec une syntaxe Anglo-Saxonne.

Et tu utilises Selection au lieu de Cells(m, n) pour la mise en forme
__________________
« Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer
« Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell
ZebreLoup est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2012, 15h19   #3
Candidat au titre de Membre du Club
 
Ingénieur Etudes
Inscription : juillet 2011
Messages : 43
Détails du profil
Informations personnelles :
Localisation : France, Seine Saint Denis (Île de France)

Informations professionnelles :
Activité : Ingénieur Etudes
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juillet 2011
Messages : 43
Points : 12
Points : 12
Merci pour ta réponse, j'ai essayé Selection au lieu de Cells(m,n) mais ce n'est pas mieux qu'avant...
Qu'est ce que c'est la syntaxe anglo-saxonne ?? je ne vois pas trop ce que ça peut être...

Merci encore
usul3 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2012, 15h33   #4
Membre Expert
 
Avatar de ZebreLoup
 
Homme Sebastien L
Ingénieur Financier
Inscription : mars 2010
Messages : 880
Détails du profil
Informations personnelles :
Nom : Homme Sebastien L
Âge : 33
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur Financier
Secteur : Finance

Informations forums :
Inscription : mars 2010
Messages : 880
Points : 1 867
Points : 1 867
Après vérification j'ai dis une bêtise pour la syntaxe anglosaxonne. C'est seulement quand tu touches à la propriété Formula d'un range, plutôt que FormulaLocal. Il aurait fallu mettre un AND au lieu d'un ET et des virgules au lieu des points-virgules, mais ça n'est pas le cas ici.

Et sinon, je te conseillais l'inverse, utiliser Cells(m, n) là où tu avais mis Selection. Car sinon, tu ajoutes une MFC à la cellules m,n, et tu choisis la couleur pour la cellule active, qui n'est pas forcément celle-là...
__________________
« Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer
« Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell
ZebreLoup est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2012, 15h48   #5
Membre Expert
 
Avatar de ZebreLoup
 
Homme Sebastien L
Ingénieur Financier
Inscription : mars 2010
Messages : 880
Détails du profil
Informations personnelles :
Nom : Homme Sebastien L
Âge : 33
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur Financier
Secteur : Finance

Informations forums :
Inscription : mars 2010
Messages : 880
Points : 1 867
Points : 1 867
Essaie de cette façon :
Code :
1
2
3
4
5
6
7
8
9
Cells(m, n).FormatConditions.Add Type:=xlExpression, _
    Formula1:="=ET(" & Cells(18, n).Address & ">=" & Cells(m, "C").Address & _
    ";" & Cells(18, n).Address & "<=" & Cells(m, "D").Address & ")"
 
With Cells(m, n).FormatConditions(1)
    .Font.ColorIndex = 1
    .Interior.ColorIndex = 35
    .Interior.Pattern = xlSolid
End With
Ça t'évite de passer par le code ASCII
__________________
« Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer
« Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell
ZebreLoup est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h06.


 
 
 
 
Partenaires

Hébergement Web