> Tous les forums > Forum Bureautique
 Test sur colonne (A)
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
eliot raymondo
  Posté le 03/10/2018 @ 18:52 
Aller en bas de la page 
Petit astucien

Salut a tous, salut forum,

Je souhaiterai réaliser ma première MFC, je connais très peu cette programmation.

Je dois passer par une MFC car j'ai beaucoup de code qui se croisent dans mon programme

et je n'arrive plus a faire un test correctement sur la colonne (A).

Donc je souhaiterai obtenir que la MFC me fasse aboutir au même résultat que le test VBA ci-dessous.

Test la colonne (A) pour voir si une cellule est vide auquel cas on modifie la couleur d'écriture de la colonne (C) qui est en Euros

Merci a vous de votre aide, je vous souhaite la bonne soirée et merci a vous.

Cdlt Raymondo

Pour infos, je suis sous Windows 10 et Excel 2007

Code VBA test sur colonne (A)

Worksheets("Feuil1").Activate

If Not Intersect(Target, [A3:A200]) Is Nothing And Target.Count = 1 Then

If Target.Value = "" Then
Target.Offset(0, 2).Font.ColorIndex = 1 'Saute en colonne (C) mets FONT en Noir
Else
Target.Offset(0, 2).Font.ColorIndex = 3 'Saute en colonne (C) mets FONT en Rouge
End If
End If

Publicité
E-L
 Posté le 03/10/2018 à 20:32 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

salut,

Brode là dessus.

Bonne soirée.

à+

eliot raymondo
 Posté le 04/10/2018 à 13:37 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Salut E_L,

Merci pour ta réponse

j'ai réussi a obtenir ce que je cherchais a faire "mais" sans ESTVIDE qui semble ne pas fonctionner sous ma version d'Excel 2007

d'après deux, trois lectures sur le net ce matin, cela est fort possible.

Donc ca fonctionne comme souhaiter mais pas facile les MFC

d'ailleurs je cherche un pas a pas ou autres tutos FR pour en apprendre le fonctionnement.

Merci a toi pour ton aide, une bonne journée a toi.

Cdlt Ray

E-L
 Posté le 04/10/2018 à 16:41 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

salut,

Les MFC peuvent se réaliser avec ou sans macros.

Sans macro:

On trouve des exemples sur le net. Inconvénients: Elles ne sont pas toujours compatibles d'une version à une autre. Souvent difficiles à exporter sur d'autres feuilles ou classeurs.

La moindre manipulation sur la feuille quelque temps après risque de faire sauter la mise en forme.

Avec macro:

MFC bien plus faciles à manipuler. tu as de bons exemples sur ce site:

https://www.developpez.net/forums/d1730212/logiciels/microsoft-office/excel/mise-forme-conditionnelle-suivant-difference-entre-2-colonnes-excel-2016-a/

à+

pouyou
 Posté le 04/10/2018 à 17:51 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour eliot,

Tu tapes ceci dans Google: mise en forme conditionnelle excel et tu vas avoir pleins de cites qui t'explique la MFC.

pouyou

ferrand
 Posté le 05/10/2018 à 14:35 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Bonjour à tous !

Les MFC sont un des éléments qui s'est fortement modifié (enrichi) en passant de Excel 2003 à Excel 2007.

D'une par la limitation à 3 MFC pouvant affecter une cellule donnée a sauté, et il s'est ajouté d'autre part une série de MFC plus exotiques...

Il y a une diversité de façon d'introduire des MFC, on peut cependant considérer que le procédé de base consiste à opérer par formule, car la plupart des autres modes pourront également se faire par formule et également une MFC formule demeure la façon la plus facile de la coder en VBA le cas échéant (voir à cet égard le sujet initié par Debrief il n'y a pas si longtemps).

Pour définir une MFC, il faut d'abord se souvenir que le point de départ est la plage d'application de la MFC, l'ensemble des cellules auxquelles on veut que la MFC puisse s'appliquer. Cette plage peut former une seule zone homogène, ou bien être une plage multizones, soit une collection de plages individuelles...

Dans tous les cas, le 2e élément essentiel à ne jamais perdre de vue est que l'on définit une formule MFC pour la cellule supérieure gauche de la plage d'application (et en cas de plage multizones dont les zones seraient irrégulièrement disposées il n'est pas exclu que l'on puisse avoir des cas où la cellule supérieure gauche de l'ensemble, soit de la plage rectangulaire englobant toutes les zones, se trouve hors de la plage d'application, cela ne change rien et c'est la définition de la plage d'application qui distinguera les cellules auxquelles la MFC s'applique des autres). On formule donc pour une cellule précise et on joue sur les références relatives ou absolues pour que la formule s'applique aux autres cellules de la plage dans les mêmes conditions. Exactement comme on le ferait en tapant la formule dans la cellule de façon à pouvoir être recopiée sur les autres cellules de la plage.

(NB- En cas de plage multizones, on peut parfois avoir intérêt à ne définir qu'une seule plage d'application et jouer avec la formule pour que la MFC ne s'applique qu'aux cellules voulues. Exemple : une MFC qui doit s'appliquer qu'à une colonne sur deux, au lieu de définir de façon compliquée une plage multizones ne comprenant qu'une colonne sur deux, on inclut toutes les colonnes et on ajoute une condition pour que la MFC ne s'applique qu'aux colonnes paires, ou aux colonnes impaires, selon le cas...)

Le 3e élément important est qu'une formule MFC est une formule conditionnelle, construite de façon analogue à une formule utilisant la fonction SI, mais dans laquelle on n'écrit que la condition. Les valeurs si la condition est vraie ou si fausse, sont substituées par l'appplication ou non de la mise en forme, Excel s'en charge. La formule doit donc simplement renvoyer Vrai ou Faux.

En principe, une fois qu'une MFC est en place, on n'a plus à y toucher, elle continuera de jouer son rôle... la mise en place manuelle prévaut donc en la matière. Cependant selon l'utilisation du fichier, les manipulations qu'on peut lui faire subir (notamment des insertions ou suppressions de lignes ou de colonnes) peuvent détériorer les MFC, essentiellement aboutir à les fractionner, ce qui crée une situation où elles peuvent devenir difficile à gérer.

Dans un tel cas, on a recours à VBA pour les reconstruire de façon rationnelle. Par exemple, on met en place une procédure qui, à l'ouverture du classeur, supprimera les MFC et les reconstruira. On peut avoir également recours à VBA lorsque la plage d'application varie dans le temps et que l'on souhaite un ajustement de cette plage au fil des modifications qu'on lui fera subir.

La mise en place par VBA de MFC est assez facile, dès lors que l'on maîtrise la mise en place manuelle par formule. Notons que (exception en VBA...) la formule doit être écrite dans la langue utilisateur, soit de la même façon que lorsqu'on procède manuellement.

Un exemple :

With Worksheets(x)
.Cells.FormatConditions.Delete
With .Range(PlageApplication).FormatConditions
With .Add(xlExpression, , Formule)
.Interior.Color = Couleur
.StopIfTrue = False
End With
'...
End With

PlageApplication définit la plage d'application, Formule est la formule à insérer sous forme String (= inclus), Couleur un code couleur (entier Long) obtenu par la fonction RGB (ou une constante VBA pour les 8 couleurs de base). Le choix d'une MFC couleur de fond de la cellule n'est qu'un exemple, on dispose de toutes autres mises en forme utilisable. Le paramètre StopIfTrue est (sauf cas particulier) le seul qui mérite d'être précisé, généralement sur False (NB- je préfère ne jamais le définir sur True et jouer le cas échéant sur la formule en cas de cellule concernée par 2 MFC concurrentes pour définir celle qui doit prévaloir...), dans le cas de plusieurs MFC à définir.

Si l'on a plusieurs MFC mais que la plage d'application est la même, on opèrera la suppression uniquement dans la plage, avant de reconstruire. C'est seulement si les MFC n'ont pas la même plage d'application et que les plages se chevauchent qu'il convient de les supprimer préalablement dans l'ensemble de la feuille avant de les reconstruire plage par plage.

Cordialement.

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Sujets relatifs
Effectez test différent
Test si formule existe dans deux colonnes
Comment copier une formule Excel sur une colonne
Tri colonne
Somme ajoutée dans une colonne
Comment inserer en auto la date en complément d'une autre colonne?
Le minimum de fois sur tant de ligne dans une colonne... ??
EXCEL EQUIV en remontant dans une colonne
comptabiliser dans une colonne
liste sans vide, avec filtre selon un critère d'une autre colonne
Plus de sujets relatifs à Test sur colonne (A)
 > Tous les forums > Forum Bureautique