Aide macro excel

Résolu
maroche Messages postés 35 Date d'inscription   Statut Membre Dernière intervention   -  
maroche Messages postés 35 Date d'inscription   Statut Membre Dernière intervention   -
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.

4 réponses

  1. Mytå Messages postés 4246 Date d'inscription   Statut Contributeur Dernière intervention   958
     
    Salut le forum

    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å
    0
  2. maroche Messages postés 35 Date d'inscription   Statut Membre Dernière intervention   1
     
    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.
    0
    1. Mytå Messages postés 4246 Date d'inscription   Statut Contributeur Dernière intervention   958
       
      Re le forum

      Maroche, qu'est-ce que tu ne comprends pas ?

      Il ne faut pas abandonner aussi facilement . . .

      Mytå
      0
  3. maroche Messages postés 35 Date d'inscription   Statut Membre Dernière intervention   1
     
    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.
    0
    1. Mytå Messages postés 4246 Date d'inscription   Statut Contributeur Dernière intervention   958
       
      Re le forum

      Maroche, je n'ai fais que passer les valeurs minimum et maximum a ton code.

      couleurderemplissage(0.03, 0.049) = lacellule
      SI 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å
      0
    2. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      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...
      0
    3. Mytå Messages postés 4246 Date d'inscription   Statut Contributeur Dernière intervention   958
       
      Re le forum

      «en fait comme je m'auto-forme en macro (ce qui n'est pas évident)»

      Maroche, nous avons tous commencé un jour un peu comme toi.

      Il faut perséverer, Rome ne c'est pas bâti en un jour.

      Il y aura toujours un bénévole sur le site près à t'aider dans ton apprentissage de VBA.

      Mytå
      0
  4. maroche Messages postés 35 Date d'inscription   Statut Membre Dernière intervention   1
     
    Désolée de ne pas avoir répondu plus tôt mais j'ai eu une grosse semaine. Mytå je te remercie je pense qu'avec ce que tu m'as réécris je vais réussir à trouver ce que je cherche. Merci de ton aide et bonne continuation.
    0