Macro pour initier des MFC
Bonjour le forum,
Je vous sollicite encore une fois pour savoir comment je peux adapter la macro « NewMFC() » du module2 du fichier joints ou créer une nouvelle macro qui me ré-initie toutes mes MFC pour que je puisse obtenir le même résultat que me fait la macro « A_Classer_par_nom_Verrouillage_coloriage_des_cellules_et_fusion() » dans le module1 en coloriant les colonnes de A à V des différentes lignes de mon tableau d’une couleur en fonction de la valeur écrite dans la colonne S.
Actuellement cette macro fait très bien son travail mais ayant un tableau qui ne cesse d’augmenter, actuellement elle met plus de deux minutes pour traiter les 5000 lignes du moment ce qui commence à faire long surtout que je le fais plusieurs fois dans la journée. En utilisant les MFC je pense ne plus avoir ce problème de temps puisque que le coloriage sera exécuté aussitôt.
Le fonctionnement que doit faire les MFC est de mettre en couleurs les colonnes A à V des lignes pour lesquelles la colonne S comporte comme valeurs suivantes :
- aucun renseignement les lignes restent blanches ;
- « 00- Oui » les lignes sont vertes ;
- « 01- Complète » ou « 01- MODAF à faire » les lignes sont bleues ;
- « 02- Incomplète» les lignes sont jaunes ;
- « 03- Arbitrage » les lignes sont oranges ;
- « 04- Place perdue » ou « 04- Place supprimée" » ou « 04- NON : Plus de place » ou « 04- NON : Autre » (toutes ces valeurs commences par « 04-» ) les lignes sont rouges ;
- « 05- AF supprimée » les lignes sont en pointillés rouges avec le contenue éventuel rayé ;
Les différentes valeurs qui peuvent se trouver dans la colonne S se trouve dans l’onglet légende du fichier joint.
Je ne sais pas si j’ai été clair dans mes explications.
Cordialement et merci à celui ou ceux qui prendront le temps de me répondre.
bonjour
une MFC se fait au clavier/souris en phase de création
ensuite on ne les modifie plus, sauf rarement, encore au clavier/souris
nul besoin de VBA
Salut jmd
Merci pour ta réponse. Je sais que les MFC ce font au clavier mais comme j'ajoute souvent des nouvelles lignes dans mon tableau je me rettouve avec autant de nouvelles MFC que de nouvelles lignes.
C'est pourquoi j'ai fait une macro qui supprime toutes les MFC et une autre qui remet les MFC comme au départ d'où ma demande.
Cordialement.
Bonjour,
[jmd] : Par charité chrétienne je ne ferai pas de commentaire...
Ma contrib en pièce jointe.
Euh... J'ai utilisé ma palette de couleur : pas de barré ni de pointillé, ni de police aux couleurs de l'arc en ciel. Mais si tu trouves que c'est pas assez compliqué... Ne te gène pas pour modifier !
A+
Super galopin ta macro elle fait ce que j'ai demandé à l'exception que je ne sais pas faire pour ajouter les lignes vertes quand j'ai une valeur numérique en colonne S et comment je peux ajouter dans ta macro la macro suivante qui m'est utile :
Sub NewMFC()
'Création des nouvelle MFC
derln = Range("J" & Rows.Count).End(xlUp).Row
With Range("J3:V" & derln)
'insertion de la variable dans la ligne
.FormatConditions.Add Type:=xlExpression, Formula1:="=$S3:$S" & derln & "=""non"""
With .FormatConditions(1)
'coloriage
.Interior.Color = RGB(255, 0, 0)
End With
'pas de modification de la ligne car problème de variable non trouvé à la précédente
.FormatConditions.Add Type:=xlExpression, Formula1:="=$BA3:$BA" & derln & "=""oui"""
With .FormatConditions(2)
'Coloriage
.Interior.Color = RGB(0, 176, 80)
End With
End With
End SubCordialement.
Supprimer cette macro. (NewMFC)
Et modifier ma macro comme suit :
Sub Galopin()
Dim iLR&, S$, Plage As Range
Feuil2.Cells.FormatConditions.Delete
iLR = Range("J" & Rows.Count).End(xlUp).Row
Set Plage = Range("J3:V" & iLR)
S = "$S3:$S" & iLR
With Plage
.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=GAUCHE(" & S & ";2)=""00"""
.FormatConditions(1).Interior.Color = 52480
.FormatConditions(1).StopIfTrue = True
.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=GAUCHE(" & S & ";2)=""01"""
.FormatConditions(2).Interior.Color = 16776960
.FormatConditions(2).StopIfTrue = True
.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=GAUCHE(" & S & ";2)=""02"""
.FormatConditions(3).Interior.Color = 65535
.FormatConditions(3).StopIfTrue = True
.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=GAUCHE(" & S & ";2)=""03"""
.FormatConditions(4).Interior.Color = 36095
.FormatConditions(4).StopIfTrue = True
.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=GAUCHE(" & S & ";2)=""04"""
.FormatConditions(5).Interior.Color = 255
.FormatConditions(5).StopIfTrue = True
.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=GAUCHE(" & S & ";2)=""05"""
.FormatConditions(6).Interior.Color = 8421504
.FormatConditions(6).StopIfTrue = True
.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=" & S & "=""non"""
.FormatConditions(7).Interior.Color = 255
.FormatConditions(7).StopIfTrue = True
.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=" & S & "=""oui"""
.FormatConditions(8).Interior.Color = 52480
.FormatConditions(8).StopIfTrue = True
.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=" & S & " >0"
.FormatConditions(9).Interior.Color = 52480
.FormatConditions(9).StopIfTrue = True
End With
End SubSalut jmd
Merci pour ta réponse. Je sais que les MFC ce font au clavier mais comme j'ajoute souvent des nouvelles lignes dans mon tableau je me rettouve avec autant de nouvelles MFC que de nouvelles lignes.
ben... non
à chaque nouvelle ligne, Excel reprend la MFC du dessus. Tout simplement.
exemple ici
ajoute des lignes pour voir
Bonjour le forum,
[b]
Pour galopin01:[/b]
Merci pour l'adaptation de ta macro qui me met bien en vert la ligne si j'ai une valeur numérique en "S". Super. Par contre la macro que je voulais intégrer me permet de mettre en vert (plus foncé que le vert de la ligne quand la ligne y est déjà par la MFC en fonction de la valeur "numérique" ou "00- Oui" mis ou non en colonne "S" (je ne sais pas si je suis clair)) ou en rouge juste la cellule de la colonne qui correspond à un "Oui" (pour le vert foncé) ou un "Non" (couleur rouge et caractère barré) de la colonne "BA". En clair si je mets "Oui" dans "BA3" j'aurai la cellule "J3" en vert foncé. Si je mets "Non" dans "BA4" j'aurai la cellule "J4" en rouge et son contenu barré. Ce travail c'est ce que me fait la macro NewMFC().
Rappel de la macro :
Sub NewMFC()
'Ta macro modifié pour identifier le problème avec la variable
derln = Range("J" & Rows.Count).End(xlUp).Row
With Range("J3:J" & derln)
'insertion de la variable dans la ligne
.FormatConditions.Add Type:=xlExpression, Formula1:="=$BA3:$BA" & derln & "=""non"""
With .FormatConditions(1)
'utilisation de color à la place de colorIndex
.Interior.Color = RGB(255, 0, 0) 'ColorIndex = 3
End With
'pas de modification de la ligne car problème de variable non trouvé à la précédente
.FormatConditions.Add Type:=xlExpression, Formula1:="=$BA3:$BA" & derln & "=""oui"""
With .FormatConditions(2)
'utilisation de color à la place de colorIndex
.Interior.Color = RGB(0, 176, 80)
End With
End With
End SubPour jmd :
Merci pour ta précision mais c'est justement pour éviter de me retrouver avec une multitude de MFC qui s'ajoutera au fur et à mesure des insertions de ligne que je souhaitais avoir une macro qui m'efface toutes les MFC pour en initier de nouveau les MFC que j'avais au départ mais adapter aux nouvelles lignes qui ont été insérées.
Cordialement.
re
je n'ai rien compris !
la MFC est bien reportée de ligne en ligne, c'est le principe.
une MFC pour la colonne. Elle ne disparaît pas ni ne se "multiplie"
il n'y a pas de multitude !
que veux-tu dire par "multitude" ?
est-ce que tu as mis du VBA pour recopier des données (car VBA fait n'importe quoi ! ) ?
note : ça fait 2 questions.
SAlut
C'est mon problème : je n'arrive pas à me faire comprendre
Je te mets un fichier avant insertion et un autre après insertion et si tu vas dans MFC, gérérer les règle puis "cette feuille de calcul" tu verras que le nombre de MFC entre le 1er fichier et le 2e fichier a augmenté. Ce que je veux c'est toujours rester avec le même nombre de MFC du départ pour une meilleur lecture et c'est ce que fait la macro de galopin01.
Est-ce que j'ai été plus compréhensible ? Après tu me diras c'est un détail mais j'aime bien quand je peux m'y retrouver dans la lecture des MFC.
Cordialement.
houlaaaa
de l'insertion ! et par VBA si je comprends enfin bien !
Excel fonctionne très mal dans ces conditions, tu perds tous les automatismes fournis par Microsoft !
les MFC sont un alors problème, mais tu en as certainement d'autres
1/
défusionne toutes ces cellules fusionnées
2/
fais un vrai "mettre sous forme de tableau". Tu connais les Tableaux ? une des fonctions les plus utiles dans Excel.
3/
n'insère rien ! ajoute les nouvelles lignes en pied de tableau
4/ trie par CAF si nécessaire
et tout ira bien mieux
sans VBA
Merci jmd pour tout ces conseils. Je vais attendre si galopin01 peux apporter les "petites" corrections à sa macro sur la colonne "BA" avec la colonne "J". Dans le cas contraire j'essayerai de voir autre chose en écoutant tes conseils avisés
Cordialement.