Aide sur jeux d'icone avec ou sans VBA

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Tophe2

XLDnaute Impliqué
Bonjour Le forum,

J'essai de mettre en place dans un fichier qui contient beaucoup de colonne une mise en forme avec les jeux d'icones. Je ne souhaiterai pas ajouter une colonne pour y placer mon icone (si possible) je souhaiterai que l'icone s'affiche dans une cellule contenant déjà des informations, est ce possible je ne sais pas ??

La condition serait, si le texte de la colonne A (ex: A3) est en gras mettre l'icone Validé (qui est en vert dans la MFC) dans la colonne B correspondante (ex : B3), j'ai cherché un peu partout je ne sais pas si cela est réalisable.

Si quelqu'un à une idée ou une piste. L'objectif est de ne pas ajouter de colonne, si possible, est d'avoir visuellement donc rapidement le dossier qui est validé grâce à l'icone.

Je joins un fichier excel avec deux colonnes essentiellement (A et B).

Merci pour votre aide
Cordialement
Christophe.
 

Pièces jointes

Re : Aide sur jeux d'icone avec ou sans VBA

Bonjour Tophe2, salut Philippe,

Il faut en effet du VBA :

Code:
Sub MFC()
Dim c As Range
For Each c In Range("B2", Range("B" & Rows.Count).End(xlUp))
  c.FormatConditions.Delete
  If IsDate(c) And c(1, 0).Font.Bold Then
    c = CDate(c) 'si valeur texte
    c.FormatConditions.AddIconSetCondition
    c.FormatConditions(1).IconSet = ThisWorkbook.IconSets(xl3Symbols2)
  End If
Next
End Sub
La mise à jour se fait par Ctrl+M.

Noter que seule la cellule B3 contient une "vraie" date d'où cette ligne :

Code:
c = CDate(c) 'si valeur texte
Fichier joint.

A+
 

Pièces jointes

Re : Aide sur jeux d'icone avec ou sans VBA

Bonjour Philippe et Job75,

Merci pour vos réponses.

Job75 c'est exactement ce que je voulais faire, Super.

J'essai d'adapter le code si colonne différentes (colonne C par exemple) car j'ai d'autres fichiers ou je vais pouvoir me servir de ce code.

J'ai donc modifier ceci " For Each c In Range("C2", Range("C" & Rows.Count).End(xlUp))" dans ton code mais rien ne se passe, peux tu me dire s'il faut faire autre choses ?

Si la cellule ou je dois mettre l'icone n'est pas une date que faut il que je modifie ?
Je pars toujours du principe que la zone en gras est la colonne A.

peux tu m'expliquer ce code "If IsDate(c) And c(1, 0).Font.Bold Then"

Merci pour ton aide ainsi qu'à celle de philippe
Bonne Journée
Christophe.
 
Re : Aide sur jeux d'icone avec ou sans VBA

Re,

OK je comprends je ne peux donc pas trop modifier le code si besoin.

Alors j'ai différents fichiers :

Ci joint le même fichier avec 2 exemples de possibilités, exemple 1 (feuille 1) date en colonne 3 là ou devrait se trouver l'icone toujours la colonne 1 en gras et l'exemple 2 (feuille 2) sans date toujours en gras colonne A et l'icone que nous pouvons mettre en colonne 2.

Merci pour ton aide et/ou explication pour adapter dans mes fichiers.

Bonne Journée
Christophe.
 

Pièces jointes

Re : Aide sur jeux d'icone avec ou sans VBA

Re,

Pour l'exemple 1 (MFC en colonne C) utiliser :

Code:
Sub MFC()
Dim c As Range
For Each c In Range("C2", Range("C" & Rows.Count).End(xlUp))
  c.FormatConditions.Delete
  If IsDate(c) And Cells(c.Row, "A").Font.Bold Then
    c = CDate(c) 'si valeur texte
    c.FormatConditions.AddIconSetCondition
    c.FormatConditions(1).IconSet = ThisWorkbook.IconSets(xl3Symbols2)
  End If
Next
End Sub
Pour l'exemple 2 il n'est pas possible d'utiliser les jeux d'icônes en colonne B.

Il y faut des valeurs numériques (les "vraies" dates sont des nombres).

A+
 
Re : Aide sur jeux d'icone avec ou sans VBA

Re,

Merci pour tous ces éléments je comprends mieux.

Concernant l'exemple 2 peut on dire si une valeur numérique en colonne "AA" par exemple tu mets l'icone en colonne B ou A en tout cas une colonne que sera vu rapidement à l'ouverture du fichier, tout cela pour dire que le dossier est traité.

Si oui aurais tu un code que j'adapterai au besoin ou je mettrai une valeur numérique dans la dernière colonne du tableau pour pouvoir réaliser cela.

Merci pour ton aide
Bonne Journée
Christophe.
 
Re : Aide sur jeux d'icone avec ou sans VBA

Re,

Bon voyez le fichier (2) avec cette macro :

Code:
Sub MFC()
Dim c As Range
For Each c In Range("C2", Range("C" & Rows.Count).End(xlUp))
  c.FormatConditions.Delete
  If (IsDate(c) Or IsNumeric(c)) And Cells(c.Row, "A").Font.Bold Then
    c = CDbl(CDate(c)) 'si valeur texte
    c.FormatConditions.AddIconSetCondition
    c.FormatConditions(1).IconSet = ThisWorkbook.IconSets(xl3Symbols2)
  End If
Next
End Sub
Et voyez surtout la série de 1 en colonne C de la feuille "exemple 2".

A+
 

Pièces jointes

Re : Aide sur jeux d'icone avec ou sans VBA

Bonjour le fil, le forum,

Une solution avec un caractère "Wingdings" qui fonctionne sur toute version :

Code:
Sub MAJ()
Dim c As Range
For Each c In Range("B2", Range("B" & Rows.Count).End(xlUp))
  If Left(c, 2) <> "ü " Then c = "ü " & c
  With c.Characters(1, 1).Font
    .Name = "Wingdings"
    .ColorIndex = IIf(c(1, 0).Font.Bold, 10, 2)
  End With
Next
End Sub
Attention, le résultat est forcément un texte.

Fichier joint.

A+
 

Pièces jointes

Re : Aide sur jeux d'icone avec ou sans VBA

Re,

Au diable l'avarice, mettons des coches sur les 3 colonnes A B C :

Code:
Sub MAJ()
Dim f As String, c As Range
f = "dd/mm/yy" 'format date, à adapter
Application.ScreenUpdating = False
With Range("A2:C" & Range("A" & Rows.Count).End(xlUp).Row)
  .Font.Name = "Calibri" 'RAZ
  .Font.ColorIndex = xlAutomatic 'RAZ
  For Each c In .Cells
    c = "ü " & Format(Mid(c, IIf(Left(c, 2) = "ü ", 3, 1)), f)
    With c.Characters(1, 1).Font
      .Name = "Wingdings"
      .ColorIndex = IIf(Cells(c.Row, "A").Font.Bold, 10, 2)
    End With
  Next
End With
End Sub
Fichier (2).

A+
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour