Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1129 connectés 

  FORUM HardWare.fr
  Windows & Software
  Logiciels

  [EXCEL + VBA ] Mise en forme conditionnelle

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[EXCEL + VBA ] Mise en forme conditionnelle

n°2549400
flclsd
Posté le 20-10-2006 à 14:20:05  profilanswer
 

Salut à vous tous
 
je n'arrive pas à trouver le pourquoi du comment ma macro ne marche pas:
je m'explique :
 
je veux colorier un groupe sur deux par ex :
 
aaaa --------- rererseres - re re -r
aaaa --------- refsdgsdgdg - f sfsd fsf -
 
fvfvf ---------f fsd fsd fsdf s- fs fsf s- fs
 
tope -------- fsd fgsd - gsdf gsd- gsfd
tope --------- fsd fsd s
 
 
l'idée c'est de colorier le groupe aaaa puis le groupe tope
 
j'ai trouver ceci sur le net et ca marche quand je passe par format/mise en forme conditionelle
 

Code :
  1. =MOD(ENT(SOMME(1/NB.SI($A$1:$A1;$A$1:$A1)));2)=1


 
mais je voudrais le faire par macro j'ai donc fait ceci :
 

Code :
  1. With Range("A1:H50" )
  2. .FormatConditions.Delete
  3. .FormatConditions.Add Type:=xlExpression, Formula1:="=MOD(ENT(SOMME(1/NB.SI($B$8:$B8;$B$8:$B8)));2)=1"
  4. .FormatConditions(1).Interior.ColorIndex = 17
  5. End With


 
et la ca ne marche plus, ca me colorie toute la page..
 
si je reselectionne la plage A1:H50 et que je retourne dans format/mise en forme condio..
ma formule est bien inscrite, je clique sur ok et ca marche
 
mais je n'arive pas à le faire avec la macro.
merci d'avance de votre aide précieuse.
 

mood
Publicité
Posté le 20-10-2006 à 14:20:05  profilanswer
 

n°2549803
Prozac
Tout va bien
Posté le 20-10-2006 à 21:12:36  profilanswer
 

est-ce qu'il ne faut pas que tu utilises le nom des fonctions dans les version GB ?
 
remplace ENT par INT (je crois) et somme par SUM (ça j'en suis sûr), pour voir
 


---------------
La ligne droite n'est en aucun cas le plus court chemin entre deux points. Sauf, bien sûr, si les deux points sont bien alignés l'un en face de l'autre
n°2550047
flclsd
Posté le 21-10-2006 à 10:59:49  profilanswer
 

merci de ta réponse.. ca ne change rien que j'essaye SUM ou INT ou les DEUX ..
si ce n'est que au lien de mal colorier ca ne colorie rien du tout..

n°2550123
Prozac
Tout va bien
Posté le 21-10-2006 à 12:54:46  profilanswer
 

j'avais pas vu que tu as nb.si qu'il faudrait aussi remplacer par countif, je pense.
 
la gestion des pack de langue dans excel est un peu compliquée : les formules dans les documents eset dans la langue de l'utilisateur mais c'est uniquement en anglais dans VBA.
 
Quand tu entres cette formule dans une cellule (et pas comme format conditionnel) par le VBA, est-ce qu'il te retourne un vrai/faux, ou bien un message d'erreur ?


---------------
La ligne droite n'est en aucun cas le plus court chemin entre deux points. Sauf, bien sûr, si les deux points sont bien alignés l'un en face de l'autre
n°2550177
flclsd
Posté le 21-10-2006 à 13:52:38  profilanswer
 

je vais essayer ce que tu me demande :
 
je change donc : SUM et IN et COUNTIF
 
quand je mets la formule "originale " dans la cellule ca me retourne VRAI.
si je change avec SUM par exemple ca me retourne : #NOM?
 
si je mets cette formule dans ma macro aucun effet :
 
With Range("A1:H50" )
 
.FormatConditions.Delete
 
.FormatConditions.Add Type:=xlExpression, Formula1:="=MOD(INT(SUM(1/countif($B$8:$B8;$B$8:$B8)));2)=1"
 
.FormatConditions(1).Interior.ColorIndex = 17
 
End With

 
 
merci encore de ton aide...

Message cité 1 fois
Message édité par flclsd le 21-10-2006 à 13:58:11
n°2550941
Prozac
Tout va bien
Posté le 22-10-2006 à 15:23:09  profilanswer
 

flclsd a écrit :

je vais essayer ce que tu me demande :
 
je change donc : SUM et IN et COUNTIF
 
quand je mets la formule "originale " dans la cellule ca me retourne VRAI.
si je change avec SUM par exemple ca me retourne : #NOM?
 
si je mets cette formule dans ma macro aucun effet :
 
With Range("A1:H50" )
 
.FormatConditions.Delete
 
.FormatConditions.Add Type:=xlExpression, Formula1:="=MOD(INT(SUM(1/countif($B$8:$B8;$B$8:$B8)));2)=1"
 
.FormatConditions(1).Interior.ColorIndex = 17
 
End With

 
 
merci encore de ton aide...


 
je ne parlais pas d'entrer la formule à la main mais de la faire entrer par VBA (pas comme format conditionnel.
 
Un truc par exemple : enregistre comme macro le fait d'entrer manuellement ta formule originale dans la cellule et va voir le code généré : tu devrais retrouver la formule "traduite" dans l'editeur VBA


---------------
La ligne droite n'est en aucun cas le plus court chemin entre deux points. Sauf, bien sûr, si les deux points sont bien alignés l'un en face de l'autre
n°2551492
flclsd
Posté le 23-10-2006 à 10:14:22  profilanswer
 

Bon j'y ai cru.. mais je n'y arrive toujours pas
 
pour rappel voici ma formule originale :
=MOD(ENT(SOMME(1/NB.SI($B$8:$B8;$B$8:$B8)));2)=1
voici la formule que j'obtiens quand j'enregistre avec une macro et en tapant la formule du dessus
=MOD(INT(SUM(1/COUNTIF(R8C2:R[-17]C2,R8C2:R[-17]C2))),2)=1
 
quand je mais cette formule dans ma macro, aucun effet. Et quand j'essaye de la copier en passant par format-mise en forme.. j'ai une erreur
 
j'ai donc essayer une combinaison des deux :
=MOD(INT(SUM(1/COUNTIF($B$8:$B8;$B$8:$B8)));2)=1
et la ca ne marche toujours pas. la formule me retourne #NOM?
 
En esperant que tu ai encore une piste.. merci


Message édité par flclsd le 23-10-2006 à 10:16:53
n°2552494
flclsd
Posté le 24-10-2006 à 11:18:48  profilanswer
 

up :-)

n°2553019
Prozac
Tout va bien
Posté le 24-10-2006 à 21:02:34  profilanswer
 

J'ai du mal à comprendre ta formule. J'ai copié quelques données à la con sur une feuille, collé la formule que tu donnes et ça ne m'indique TRUE que pour la première occurence d'une valeur dans la colonne BB
 
tu es sûr que ta formule fonctionne correctement ?
 
et si tu utilises la fonction (=EST.PAIR(LIGNE(B1)) ou =EST.PAIR(LIGNE(B1)+1), si tu veux colorier une ligne sur 2 ?
 
en anglais : =ISEVEN(ROW(B1))


Message édité par Prozac le 24-10-2006 à 21:05:25
n°2553064
flclsd
Posté le 24-10-2006 à 22:05:54  profilanswer
 

la formule est bonne tu peux regarder le classeur ci joint en exemple.. et tu verras vraiment ce que je veux dire. merci d'avance.  
PS : c'est pas une ligne sur deux que je veux, mais un groupe de données sur deux..
 
http://marie.daprato.free.fr/test.xls


Message édité par flclsd le 24-10-2006 à 22:06:26
mood
Publicité
Posté le 24-10-2006 à 22:05:54  profilanswer
 

n°2553100
Prozac
Tout va bien
Posté le 24-10-2006 à 22:50:33  profilanswer
 

ben j'arrive même pas à comprendre pourquoi son truc marche
 
en collant la formule utilisée pour le formattage conditionnel dans la feuille, les résultats ne me paraissent pas cohérents.
 
Et je n'arrive pas à reproduire le truc en agrandissant le tableau à d'autres valeurs :??:  
 
tu as trouvé ça sur quel site ?


---------------
La ligne droite n'est en aucun cas le plus court chemin entre deux points. Sauf, bien sûr, si les deux points sont bien alignés l'un en face de l'autre
n°2553253
flclsd
Posté le 25-10-2006 à 07:19:25  profilanswer
 

sur http://www.excelabo.net
mais la fonction recherche du site déconne un peu. je te joins le fichier excel d'exemple tu comprendras surement comment il fait sa forumle. c'est expliquer dedans.
http://cptflam.celeonet.fr/site_we [...] emples.xls

n°2555477
flclsd
Posté le 27-10-2006 à 14:51:49  profilanswer
 

alors t'y pige qq chose finalement ?

n°2555713
seniorpapo​u
Posté le 27-10-2006 à 18:00:56  profilanswer
 

Bonjour,
Je n'ai pas tout compris, mais la formule entrée est bonne, en effet, si , après lancement de ta macro, tu surlignes ta zone de format conditionnel puis affiches le format et fais ok, la mise en place se fait  
bizzarre (bug ou option?)
Cordialement

n°2556114
seniorpapo​u
Posté le 28-10-2006 à 08:06:25  profilanswer
 

Bonjour,
Si tu as la possibilité de mettre deux zones cachées, je t'envoie un xls
http://cjoint.com/?kCiczE1iXs
Cordialement


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Windows & Software
  Logiciels

  [EXCEL + VBA ] Mise en forme conditionnelle

 

Sujets relatifs
Enregistrement automatique des PJ dans Lotus Notes par VBA.[Excel] - recupérer la valeur de points sur un graphique
Mise en place Proxy ! Possible?problème pour renommer avec excel
Lien entre feuille Excel et diagramme Visio ?rechercher une valeur dans une colonne de référence (excel)
[TSE] Une histoire avec Excel....Mise à jour vers AVK 2007?..
Works 8.5, Excel, Access, PowerpointExtraction valeur de ligne sur excel
Plus de sujets relatifs à : [EXCEL + VBA ] Mise en forme conditionnelle


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR