Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Macro mise en forme plusieurs conditions

  • Initiateur de la discussion Initiateur de la discussion maroche
  • Date de début Date de début

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 !

maroche

XLDnaute Nouveau
Bonjour,

Je suis plus que débutante en macro et j'ai besoin, pour la mise en forme d'un tableau d'une macro qui me permettrait de requéter plusieurs conditions:

je souhaiterai que dans une plage de A4 à A324 :
-si la valeur est "Abs" alors que la cellule devienne grise
-si la valeur est "" alors aucune remplissage
-si la valeur est inférieure 0.3 alors la cellule est verte
-si la valeur est comprise entre 0.3 et 0.59 alors la cellule est orange
- et si la valeur est supérieure à 0.59 alors la cellule est vide.

Je viens de passer plus de 3 heures à rechercher partout la macro sur les différents forums mais à chaque fois je bloque faute de connaissance en VBA.

Pourriez vous m'aider?
 
Re : Macro mise en forme plusieurs conditions

Bonjour CBernardt


Un essai ou il faut mettre le bon index couleur
(car avec Excel 2010 ce n'est plus comme avant)
VB:
Sub test()
'je souhaiterai que dans une plage de A4 à A324 :
'-si la valeur est "Abs" alors que la cellule devienne grise
'-si la valeur est "" alors aucune remplissage
'-si la valeur est inférieure 0.3 alors la cellule est verte
'-si la valeur est comprise entre 0.3 et 0.59 alors la cellule est orange
'- et si la valeur est supérieure à 0.59 alors la cellule est vide.
Dim c As Range, plg As Range
Set plg = [A4:A324]
For Each c In plg
If Not IsEmpty(c) Then
Select Case c.Value
Case Is = "Abs"
c.Interior.ColorIndex = 11
Case Is < 0.3
c.Interior.ColorIndex = 22
Case 0.3 To 0.59
c.Interior.ColorIndex = 33
Case Is > 0.59
c.ClearContents
End Select
End If
Next c
End Sub
 
Dernière édition:
Re : Macro mise en forme plusieurs conditions

En fait je vous remercie de m'avoir répondu mais entre temps j'ai trouvé avec cette solution là:
VB:
Sub MacroAbs()
Range("B4:B400").Select
Dim lacellule As Range
For Each lacellule In Selection
couleurderemplissage = lacellule
Next lacellule
Range("B4:B400").Select
Range("B4").Activate
'
End Sub

Property Let couleurderemplissage(lacellule As Range)
Dim indexcouleur As Integer
Select Case lacellule.Value

    Case ""
    indexcouleur = xlColorIndexNone
    Case "Abs"
    Selection.FormatConditions.Delete
    indexcouleur = 15
    Case Is < 0.03
    indexcouleur = 4
    Case Is >= 0.05
    indexcouleur = 3
    Case 0.03 To 0.049
    indexcouleur = 46
        
    
End Select
lacellule.Interior.ColorIndex = indexcouleur
End Property

ça fonctionne parfaitement pour ce que je voulais. Merci à tous
 
Dernière édition:
Re : Macro mise en forme plusieurs conditions

Re



Tu peux utiliser les balises BBCODE
(celle de ma signature)
ou ce bouton:


Ceci afin de rendre ton message plus agréable à lire.

Merci.

Tu peux alléger ton code ainsi

VB:
Sub MacroAbs()
Dim lacellule As Range
For Each lacellule In Range("B4:B400")
couleurderemplissage = lacellule
Next lacellule
End Sub

PS: tu aurais du chercher avant de poster ta question 😉
 
Dernière édition:
Re : Macro mise en forme plusieurs conditions

mais j'avais déjà cherché, pendant au moins 4 heures même mais c'est toujours quand on se décide à poster qu'on trouve enfin la solution. Je prends bonne note pour la mise en page de mes messages.
 
Re : Macro mise en forme plusieurs conditions

et en complément, est-il possible, à la suite de cette macro d'enchainer avec la mise en forme de la colonne E par exemple (sur la plage de données E4 à E400 mais avec des critères différents ? (par exemple rouge si valeur >60%).
 
Dernière édition:
Re : Macro mise en forme plusieurs conditions

Non c'est pas ça, je me suis mal expliquée je pense. En fait j'aimerai savoir s'il est possible qu'en générant cette macro il me fasse ma mise en forme de ma colonne A avec les conditions que j'avais énoncé plus haut, qu'ensuite il passe à la colonne E et qu'il génère une mise en page avec des critères complètement différents etc...

En fait mon tableau contient plusieurs colonnes avec des valeurs qui n'ont pas le même seuils d'alerte et pour chaque colonne je dois faire une mise en forme différente. L'idéal serait qu'en une macro unique je puisse générer la mise en forme de tout mon tableau.
 
Re : Macro mise en forme plusieurs conditions

Re


Joins un fichier exemple (<48ko , sans données confidentielles)

Ce sera plus clair pour tout le monde.

Et cela nous évitera de devoir créer un fichier de test.


PS: merci d'avoir utiliser les balises BBCODE 😉
 
Re : Macro mise en forme plusieurs conditions

Alors tu trouveras mon fichier sous ce lien:

Fichier export

en fait la macro doit effectuer la mise en forme du document comme elle le fait pour la colonne A mais elle doit aussi le faire pour la colonne E avec les critères suivants :

-Si "Abs" alors gris
-Si "" alors aucun remplissage
-Si >60% alors rouge

Ensuite d'autres conditions pour la colonne F et ainsi de suite.

J'espère que je suis plus claire.
 
Dernière édition:
Re : Macro mise en forme plusieurs conditions

Re


Comme je l'avais pourtant précisé ... 🙄
(<48ko , sans données confidentielles)
Pas besoin du fichier original, pas besoin de mise en forme, pas besoin de fioritures.

Un fichier exemple avec quelques lignes, quelques colonnes suffisaient

et tu pouvais le poster directement ici.

(En phase de test, l'essentiel suffit)

Je finis de manger d'abord
et ensuite je laisse la main aux autres membres du forum.

(Je dois aller aux champignons)
 
- 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

Réponses
4
Affichages
209
Réponses
6
Affichages
236
Réponses
2
Affichages
159
Réponses
25
Affichages
804
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…