Aide macro excel
Résolu
maroche
Messages postés
36
Statut
Membre
-
maroche Messages postés 36 Statut Membre -
maroche Messages postés 36 Statut Membre -
Bonjour,
Voici une macro que j'utilise pour effectuer la mise en forme d'une colonne avec plusieurs conditions :
Sub MacroAbs()
Dim lacellule As Range
For Each lacellule In Range("B4:B400")
couleurderemplissage = lacellule
Next lacellule
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
J'aimerai savoir s'il est possible, à la suite de cette macro d'enchainer avec la mise en forme d'une autre colonne qui aurait des conditions différentes?
J'ai essayé et cela me génère des messages d'erreur.
Voici une macro que j'utilise pour effectuer la mise en forme d'une colonne avec plusieurs conditions :
Sub MacroAbs()
Dim lacellule As Range
For Each lacellule In Range("B4:B400")
couleurderemplissage = lacellule
Next lacellule
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
J'aimerai savoir s'il est possible, à la suite de cette macro d'enchainer avec la mise en forme d'une autre colonne qui aurait des conditions différentes?
J'ai essayé et cela me génère des messages d'erreur.
A voir également:
- Aide macro excel
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
4 réponses
Salut le forum
Maroche, tu peux utiliser la Property Let avec plus d'un paramètre.
Mytå
Maroche, tu peux utiliser la Property Let avec plus d'un paramètre.
Sub MacroAbs()
Dim lacellule As Range
For Each lacellule In Range("B4:B10")
couleurderemplissage(0.03, 0.049) = lacellule
Next lacellule
For Each lacellule In Range("D4:D10")
couleurderemplissage(3, 5) = lacellule
Next lacellule
End Sub
Property Let couleurderemplissage(minimum As Double, maximum As Double, lacellule As Range)
Dim indexcouleur As Integer
Select Case lacellule.Value
Case ""
indexcouleur = xlColorIndexNone
Case "Abs"
Selection.FormatConditions.Delete
indexcouleur = 15
Case Is < minimum
indexcouleur = 4
Case Is > maximum
indexcouleur = 3
Case minimum To maximum
indexcouleur = 46
End Select
lacellule.Interior.ColorIndex = indexcouleur
End Property
Mytå
N'étant que novice en macro ça va trop loin pour moi ... tant pis je m'en passerai. Merci beaucoup d'avoir voulu m'aider.
en fait comme je m'auto-forme en macro (ce qui n'est pas évident) et que je ne connais le langage VBA je me sers du visuel surtout pour reproduire, dans un cas comme celui ci je ne vois pas comment creér la macro et les propriétés. Ne souhaitant pas importuner plus avec ma demande, c'est pour cette raison que je ne pousse pas plus loin.
Re le forum
Maroche, je n'ai fais que passer les valeurs minimum et maximum a ton code.
Tu peux en avoir plusieurs :
Mytå
Maroche, je n'ai fais que passer les valeurs minimum et maximum a ton code.
couleurderemplissage(0.03, 0.049) = lacelluleSI cette solution ne te conviens pas, il suffit de créer de nouvelle Propriety Let
Tu peux en avoir plusieurs :
Property Let Couleur1(LaCellule As Range) '... End Property Property Let Couleur2(LaCellule As Range) '... End Property
Mytå
Bonjour maroche,
Tu as fait la démarche de sonner chez "CommentCaMarche" pour un coup de main en VBA, tu as bien fait. Il y a ici des champions du codage dans ce langage (et dans bien d'autres également...). De plus, l'ami Myta (excellent entre nous) s'occupe de toi. Pour continuer ton auto-formation, je te conseille vivement d'écouter ce qu'il te dit et ... d'apprendre.
A ta place je reformulerais ma question, sans replacer ton code, il est dans ta question initiale.
Bon courage et bonne journée.
ps: j'ai placé ce post comme "Non résolu" car, pour moi, il ne l'est pas...
Tu as fait la démarche de sonner chez "CommentCaMarche" pour un coup de main en VBA, tu as bien fait. Il y a ici des champions du codage dans ce langage (et dans bien d'autres également...). De plus, l'ami Myta (excellent entre nous) s'occupe de toi. Pour continuer ton auto-formation, je te conseille vivement d'écouter ce qu'il te dit et ... d'apprendre.
A ta place je reformulerais ma question, sans replacer ton code, il est dans ta question initiale.
Bon courage et bonne journée.
ps: j'ai placé ce post comme "Non résolu" car, pour moi, il ne l'est pas...