Macro mise en forme conditionnelle
Résolu/Fermé
AnthonyCK
Messages postés
14
Date d'inscription
lundi 16 novembre 2015
Statut
Membre
Dernière intervention
4 décembre 2015
-
16 nov. 2015 à 13:05
AnthonyCK Messages postés 14 Date d'inscription lundi 16 novembre 2015 Statut Membre Dernière intervention 4 décembre 2015 - 17 nov. 2015 à 18:29
AnthonyCK Messages postés 14 Date d'inscription lundi 16 novembre 2015 Statut Membre Dernière intervention 4 décembre 2015 - 17 nov. 2015 à 18:29
A voir également:
- Macro mise en forme conditionnelle
- Mise en forme conditionnelle excel - Guide
- Mise en forme tableau word - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro word - Guide
- Mise a jour chrome - Accueil - Applications & Logiciels
5 réponses
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
16 nov. 2015 à 13:44
16 nov. 2015 à 13:44
Bonjour
4 coUleurs ou 1 seule (45?) ?
4 coUleurs ou 1 seule (45?) ?
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
Modifié par michel_m le 16/11/2015 à 14:08
Modifié par michel_m le 16/11/2015 à 14:08
Cela fait plusieurs années que je n'ai pas touché à VBA
Réjouis toi,tu es parti pour une 2° jeunesse !
a compléter et choisir les coluleurs
Michel
Réjouis toi,tu es parti pour une 2° jeunesse !
Option Explicit
'---------------
Sub conditionner_format()
Dim Lig As Byte, Etat As String
Application.ScreenUpdating = False
'nettoyage
Range("G5:G135").Font.ColorIndex = -4142
'affectation couleur
For Lig = 5 To 135
Etat = Cells(Lig, "G")
Select Case Etat
Case "Appel'd'offres"
Cells(Lig, "G").Font.ColorIndex = 5
Case "Etude de faisabilité"
Cells(Lig, "G").Font.ColorIndex = 7
'etc.....
End Select
Next
End Sub
a compléter et choisir les coluleurs
Michel
AnthonyCK
Messages postés
14
Date d'inscription
lundi 16 novembre 2015
Statut
Membre
Dernière intervention
4 décembre 2015
16 nov. 2015 à 14:18
16 nov. 2015 à 14:18
Merci Michel pour cette réponse.
En revanche, je ne souhaite pas colorer la colonne G mais les lignes à partir de la ligne 5 jusqu'à 135, sur les colonnes de A à I.
Dans votre réponse, je ne comprends pas le "=-4142".
Merci d'avance.
En revanche, je ne souhaite pas colorer la colonne G mais les lignes à partir de la ligne 5 jusqu'à 135, sur les colonnes de A à I.
Dans votre réponse, je ne comprends pas le "=-4142".
Merci d'avance.
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
>
AnthonyCK
Messages postés
14
Date d'inscription
lundi 16 novembre 2015
Statut
Membre
Dernière intervention
4 décembre 2015
16 nov. 2015 à 14:49
16 nov. 2015 à 14:49
Excuse moi j'avais mal interprété. je dois m'absenter et je regarderai au retour si OK
en attendant pour les couleurs de cellule et non les caractères remplace partout "Font" par "interior"
pour les colonnes A àI
en attendant pour les couleurs de cellule et non les caractères remplace partout "Font" par "interior"
Range("G5:G135").Font.ColorIndex = -4142-4142 ---> aucun remplissage
devient
Range("G5:G135").interior.ColorIndex = -4142
pour les colonnes A àI
Case "Appel'd'offres"
Range("A" & lig & ":I" & lig).Interior.ColorIndex = 3
AnthonyCK
Messages postés
14
Date d'inscription
lundi 16 novembre 2015
Statut
Membre
Dernière intervention
4 décembre 2015
16 nov. 2015 à 18:26
16 nov. 2015 à 18:26
Pas de problème, merci de l'aide déjà apportée :)
Voilà où je suis désormais bloqué; Il semble que la couleur ne change pas lorsque le statut change...
Private Sub ConditionnerFormat()
Dim Lig As Byte, Etat As String
Range("G5:G135").Interior.ColorIndex = -4142
'affectation couleur
For Lig = 5 To 135
Etat = Cells(Lig, "G")
Select Case Etat
Case "Appel'd'offres"
Range("A" & Lig, "I" & Lig).Interior.ColorIndex = 34
Case "Etude de faisabilité"
Range("A" & Lig, "I" & Lig).Interior.ColorIndex = 34
Case "En cours"
Range("A" & Lig, "I" & Lig).Interior.ColorIndex = 4
Case "Perdu"
Range("A" & Lig, "I" & Lig).Interior.ColorIndex = 3
Case "Terminé"
Range("A" & Lig, "I" & Lig).Interior.ColorIndex = 15
End Select
Next
End Sub
Ou ai-je faux ?
Merci encore :)
Voilà où je suis désormais bloqué; Il semble que la couleur ne change pas lorsque le statut change...
Private Sub ConditionnerFormat()
Dim Lig As Byte, Etat As String
Range("G5:G135").Interior.ColorIndex = -4142
'affectation couleur
For Lig = 5 To 135
Etat = Cells(Lig, "G")
Select Case Etat
Case "Appel'd'offres"
Range("A" & Lig, "I" & Lig).Interior.ColorIndex = 34
Case "Etude de faisabilité"
Range("A" & Lig, "I" & Lig).Interior.ColorIndex = 34
Case "En cours"
Range("A" & Lig, "I" & Lig).Interior.ColorIndex = 4
Case "Perdu"
Range("A" & Lig, "I" & Lig).Interior.ColorIndex = 3
Case "Terminé"
Range("A" & Lig, "I" & Lig).Interior.ColorIndex = 15
End Select
Next
End Sub
Ou ai-je faux ?
Merci encore :)
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
17 nov. 2015 à 08:21
17 nov. 2015 à 08:21
Bonjour
Merci de mettre tes codes entres les balises "code" <> en haut et à droite du message
pour ce que tu demandes il faut une macro événementielle à installer dans le module feuille concerné (feuil1 par ex)
Merci de mettre tes codes entres les balises "code" <> en haut et à droite du message
pour ce que tu demandes il faut une macro événementielle à installer dans le module feuille concerné (feuil1 par ex)
Option Explicit
'--------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Lig As Byte, Etat As String
If Not Intersect(Target, Range("G5:G135")) Is Nothing Then
'le code....
End If
End Sub
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
>
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
17 nov. 2015 à 09:58
17 nov. 2015 à 09:58
ERRAta
Tu avais mis une boucle ce qui m'a mal aiguillé
le code "à la volée"
Tu avais mis une boucle ce qui m'a mal aiguillé
le code "à la volée"
Option Explicit
'-----------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Lig As Byte, Etat As String
If Not Intersect(Target, Range("G5:G135")) Is Nothing Then
'-----------------affectation couleur
Etat = Target
Lig = Target.Row
Select Case Etat
Case "Appel d'offres"
Range("A" & Lig, "I" & Lig).Interior.ColorIndex = 34
Case "Etude de faisabilité"
Range("A" & Lig, "I" & Lig).Interior.ColorIndex = 34
Case "En cours"
Range("A" & Lig, "I" & Lig).Interior.ColorIndex = 4
Case "Perdu"
Range("A" & Lig, "I" & Lig).Interior.ColorIndex = 3
Case "Terminé"
Range("A" & Lig, "I" & Lig).Interior.ColorIndex = 15
Case Else
Range("A" & Lig, "I" & Lig).Interior.ColorIndex = -4142
End Select
End If
End Sub
AnthonyCK
Messages postés
14
Date d'inscription
lundi 16 novembre 2015
Statut
Membre
Dernière intervention
4 décembre 2015
17 nov. 2015 à 11:53
17 nov. 2015 à 11:53
Merci beaucoup pour ce support.
La macro fonctionne (nouvelle macro en gras), en revanche j'ai un problème de rafraichissement des data au moment où la macro tourne, ce qui donne un code global :
Avant d'ajouter la macro pour la mise en forme conditionnelle, aucun problème de délai lorsque la macro tournait.
Quelqu'un aurait-il une piste pour m'aider à réduire le temps perdu pour les utilisateurs de l'outil ? :)
Aussi, vous remarquerez que je n'ai pas ajouté "Option Explicit" comme vous me l'aviez indiqué, car je ne comprends pas son intérêt.
Merci d'avance.
La macro fonctionne (nouvelle macro en gras), en revanche j'ai un problème de rafraichissement des data au moment où la macro tourne, ce qui donne un code global :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Target.Column = 1 And Target.Row > 3 Then
If Target.Value = Empty Then
Target.Offset(0, 4).Hyperlinks.Delete
Else
Set hy = Target.Offset(0, 4).Hyperlinks.Add(Target.Offset(0, 4), "", "'" & Me.Name & "'!" & Target.Offset(0, 4).Address)
Target.Offset(0, 4).FormulaR1C1 = Target.Offset(-1, 4).FormulaR1C1
Target.Offset(0, 4).Font.Name = "Wingdings"
Target.Offset(0, 4).HorizontalAlignment = xlCenter
Target.Offset(0, 4).BorderAround xlSolid, xlThin
End If
Exit Sub
End If
Dim Lig As Byte, Etat As String
Application.ScreenUpdating = False
Range("G5:G135").Interior.ColorIndex = -4142
'affectation couleur
For Lig = 5 To 135
Etat = Cells(Lig, "G")
Select Case Etat
Case "Appel d'Offres"
Range("A" & Lig, "I" & Lig).Interior.ColorIndex = 34
Case "Etude de faisabilité"
Range("A" & Lig, "I" & Lig).Interior.ColorIndex = 34
Case "En cours"
Range("A" & Lig, "I" & Lig).Interior.ColorIndex = 4
Case "Perdu"
Range("A" & Lig, "I" & Lig).Interior.ColorIndex = 3
Case "Terminé"
Range("A" & Lig, "I" & Lig).Interior.ColorIndex = 15
Case Else
Range("A" & Lig, "I" & Lig).Interior.ColorIndex = -4142
End Select
Next
Application.ScreenUpdating = True
End Sub
Avant d'ajouter la macro pour la mise en forme conditionnelle, aucun problème de délai lorsque la macro tournait.
Quelqu'un aurait-il une piste pour m'aider à réduire le temps perdu pour les utilisateurs de l'outil ? :)
Aussi, vous remarquerez que je n'ai pas ajouté "Option Explicit" comme vous me l'aviez indiqué, car je ne comprends pas son intérêt.
Merci d'avance.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
17 nov. 2015 à 18:20
17 nov. 2015 à 18:20
C'EST DU N'IMOPRTE QUOI !
POURQUOI NE PAS EXPLIQUER LE PROBLEME EN ENTIER AU DEPART ?
--
je n'ai pas ajouté "Option Explicit" comme vous me l'aviez indiqué, car je ne comprends pas son intérêt.
!!!!! ARCHI-NUL
Essaies le macramé, ca ira peut-^tre mieux
Michel
POURQUOI NE PAS EXPLIQUER LE PROBLEME EN ENTIER AU DEPART ?
--
je n'ai pas ajouté "Option Explicit" comme vous me l'aviez indiqué, car je ne comprends pas son intérêt.
!!!!! ARCHI-NUL
Essaies le macramé, ca ira peut-^tre mieux
Michel
AnthonyCK
Messages postés
14
Date d'inscription
lundi 16 novembre 2015
Statut
Membre
Dernière intervention
4 décembre 2015
17 nov. 2015 à 18:29
17 nov. 2015 à 18:29
L'objectif était d'aller à l'essentiel dans la description de mon problème pour ne pas repousser les éventuels lecteurs de ce post.
Merci de la réaction constructive, je vais essayer de me débrouiller quand même :)
Merci de la réaction constructive, je vais essayer de me débrouiller quand même :)
16 nov. 2015 à 13:48