Transfert de données d'une feuille vers une macro

Magic_Doctor

XLDnaute Barbatruc
Bonjour le forum,

J'ai récemment trouvé dans ce forum incontournable une macro événementielle intéressante qui permet de modifier la couleur d'un texte écrit dans une cellule, si ce texte répond à certaines conditions indiquées dans la macro.
Voici la macro (très courte !) :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim cell As Variant

For Each cell In Range("Colonne1")
'Jamais contentes
If cell = "Julie" Or cell = "Hildegarde"Then cell.Font.ColorIndex = 3
'Toujours contentes
If cell = "Christine" Or cell = "Cunégonde" Then cell.Font.ColorIndex = 5
Next cell
End Sub

En conséquence, quand j'écris (dans la "Colonne1") "Julie" ou "Hildegarde", le texte devient rouge, mais quand j'écris "Christine" ou "Cunégonde", il devient bleu.

J'ai mis 2 colonnes dans ma feuille. L'une s'intitule "Jamais Contentes", l'autre "Toujours Contentes".
Plutôt que de sempiternellement revenir à ma macro pour rajouter de nouveaux noms satisfaisants à ces 2 critères, ce que je voudrais c'est "tout simplement" que la macro vérifie dans quelle colonne se trouve le nom écrit, et si ce nom est dans une des 2 colonnes, alors elle appliquera la mise en forme qui correspond au texte.

Bref :

If cell est dans la colonne1 --> texte rouge
If cell est dans la colonne2 --> texte bleu

Merci pour toute aide Xldienne.
 

Kobal

XLDnaute Junior
Re : Transfert de données d'une feuille vers une macro

Bonsoir à tous
a vue de nez (toujours), il suffirait d'ajouter une condition aux if

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim cell As Variant

For Each cell In Range("Colonne1")
'Jamais contentes
If (cell = "Julie" Or cell = "Hildegarde") and cell.Column = Range("Colonne1").Column _
Then cell.Font.ColorIndex = 3
'Toujours contentes
If (cell = "Christine" Or cell = "Cunégonde") and cell.Column = Range("Colonne2").Column _
Then cell.Font.ColorIndex = 5
Next cell
End Sub

Donc si on a "julie" ou "hildegarde" dans la colonne 1, la police est rouge, sinon si c'est christine ou cunégonde dans la colonne 2, c'est bleu.
C'est ce que tu voulais?
 

Magic_Doctor

XLDnaute Barbatruc
Re : Transfert de données d'une feuille vers une macro

Merci Kobal

On s'approche de la solution.
Le seul problème restant est que l'on est toujours obligé de retourner dans la macro pour rajouter un nouveau nom si c'est nécessaire. N'y a t-il pas un moyen pour s'affranchir de cette corvée et faire en sorte que la macro vérífie automatiquement si le nom entré se trouve dans l'une des colonnes, et si oui laquelle pour mettre en forme le texte ?

Merci en tout cas pour cette avancée.
 

Kobal

XLDnaute Junior
Re : Transfert de données d'une feuille vers une macro

Bonjour Magic doctor,
J'ai travaillé un peu sur ton cas, je te joins le fichier.
Dis moi si cela te convient.
(le code a besoin d'améliorations, mais c'est un début...)
 

Pièces jointes

  • toujours contentes.xls
    26.5 KB · Affichages: 60

Discussions similaires

Statistiques des forums

Discussions
312 559
Messages
2 089 603
Membres
104 224
dernier inscrit
Brilma