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

Mise en forme de résultats

jcay49

XLDnaute Nouveau
Bonjour,

J'effectue régulièrement des taches de mise en forme de résultats sous excel afin d'avoir un aspect visuel en fonction des données.
Je souhaiterais par conséquent réaliser une macro pour cette mise en couleur (MFC, ne suffit pas puisque j'ai plus que 3 conditions de couleurs ). J'ai cherché sur la toile mais il me manque à chaque fois des infos pour finir la macro.

Brievement je souhaiterais avoir une boite de dialogue avec une plage RefEdit.
Et que la plage ainsi sélectioner adopte ma mise en forme de couleur de fond :
- Valeurs inférieures à 20 en couleur 5
- Valeurs entre 20 et 25 en couleur 41
- Valeurs entre 25 et 30 en couleur 33
- Valeurs entre 30 et 32 en couleur 37
- Valeurs supérieures à 32 en couleur 34
- Valeurs notées "X" en couleur 15
- Valeurs notées "A" en couleur 16

Si quelqu'un sait faire cela je le remercie d'avance
 

RENAUDER

Nous a quitté
Repose en paix
Re : Mise en forme de résultats

Bonjour,
Regarde si ça te va
Code:
Sub MFC()
    Set MaPlage = Application.InputBox("Sélectionnez un plage", "Sélection d'une plage de données", Type:=8)
    For Each Cell In MaPlage
        Select Case Cell
        Case Is < 20
            Cell.Interior.ColorIndex = 5
        Case 20 To 25
            Cell.Interior.ColorIndex = 41
        Case 26 To 30
            Cell.Interior.ColorIndex = 33
        Case 31 To 32
            Cell.Interior.ColorIndex = 37
        Case Is > 32
            Cell.Interior.ColorIndex = 34
        End Select
        If Cell.Value = "X" Then Cell.Interior.ColorIndex = 15
        If Cell.Value = "A" Then Cell.Interior.ColorIndex = 16
    Next Cell
End Sub
 

jcay49

XLDnaute Nouveau
Re : Mise en forme de résultats

Je souhaiterais améliorer cette macro qui me va à ravir ! En fait juste corriger des erreurs pour une utilisation optimale...

Quand je lance la macro et que je sélectionne la zone à mettre en forme tout marche correctement ...

Mais

-si je clique sur le bouton "annuler", cela ce met en erreur.
-si rien n'est sélectionner et qu'on clique sur Ok, cela se met en erreur aussi.

y a t'il moyen de corriger cela, pour que la fenetre se ferme simplement si on clique sur annuler, et qu'un message s'affiche pour dire que l'on a rien sélectionner avant de cliquer sur Ok ?

(je vois à peu près les commandes qu'il faut mettre, mais ça ne fonctionne pas comme je veux : If MaPlage = "" Then MsgBox "Veuillez sélectionner une plage !", je dois pas l'incorporer correctement)
 

RENAUDER

Nous a quitté
Repose en paix
Re : Mise en forme de résultats

Bonjour,
Pour le bouton Annuler j'ai corrigé mais pour le OK, le message affiché lorsque l'on fait OK et qu'aucune sélection n'est faite, Excel ne génère pas un message d'erreur mais un message d'avertissement. Je ne peux pas récupèrer le N° d'erreur. J'ai mis $A$1 par défaut dans l'InputBox.
Code:
Sub MFC()
    Dim MaPlage As Range
    On Error Resume Next
    [A1].Select
    Set MaPlage = Application.InputBox("Sélectionnez un plage", "Sélection d'une plage de données", "$A$1", Type:=8)
    If Err.Number = 424 Then Exit Sub
    For Each Cell In MaPlage
        Select Case Cell
        Case Is < 20
            Cell.Interior.ColorIndex = 5
        Case 20 To 25
            Cell.Interior.ColorIndex = 41
        Case 26 To 30
            Cell.Interior.ColorIndex = 33
        Case 31 To 32
            Cell.Interior.ColorIndex = 37
        Case Is > 32
            Cell.Interior.ColorIndex = 34
        End Select
        If Cell.Value = "X" Then Cell.Interior.ColorIndex = 15
        If Cell.Value = "A" Then Cell.Interior.ColorIndex = 16
    Next Cell
End Sub
 

jcay49

XLDnaute Nouveau
Re : Mise en forme de résultats

Encore merci, j'ai fait les modifications ! il n'y a effectivement plus de messages d'erreur ou d'avertissement...

Mais la macro fonctionne pas, du moins pas la mise en forme .
J'ai donc remis Type:=8 à la place de $A$1.
Evidement si aucune sélection n'est faite cela met un avertissement... Tant pis, ce n'est pas très grave.

L'important est que le message d'erreur en cliquant sur "Annuler" soit résolu !


Merci Renauder et bonne soirée
 

RENAUDER

Nous a quitté
Repose en paix
Re : Mise en forme de résultats

Bonjour,
Ta remarque: J'ai donc remis Type:=8 à la place de $A$1.
Non il te faut les deux:
- Type:=8 signifie que l'on a une référence de cellule, sous la forme d'un objet Range.

- $A$1 rempli l'InputBox par défaut (évite l'avertissement quand on clique sur OK).

Ci-joint fichier
 

Pièces jointes

  • MFC-jcay49.xls
    28 KB · Affichages: 48
Dernière édition:

Discussions similaires

Réponses
12
Affichages
454
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…