Mise en forme conditionnelle sur VBA

Résolu/Fermé
marmotte38630 - 31 janv. 2012 à 12:53
 marmotte38630 - 31 janv. 2012 à 14:48
Bonjour,
Je suis en train de faire un tableur de suivi de réponse pour ma recherche d'emploi.
J'aimerai donc créer une macro qui hachure la ligne correspondante à la valeur "non" dans une colonne. ce que je veux faire c'est si dans la colonne G je tape non sur une ligne alors cette ligne se hachure
Pour le moment ma macro ressemble à cela mais ma partie "if select range = non then" n'est pas correct apparemment comment la modifier.

Sub réponse()
Dim i As Integer
For i = 2 To 100
Range("g" & i).Select
if select range = non then
Range(g & i).Activate
With Selection.Interior
.Pattern = xlLightUp
.PatternColorIndex = xlAutomatic
.ColorIndex = xlAutomatic
.TintAndShade = 0
.PatternTintAndShade = 0
End With
End If
End Sub

en vous remerciant par avance

3 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 303
31 janv. 2012 à 13:50
Bonjour,

bien que j' approuve totalement l'opinion et sa démonstration de ligne entière en MEFCde l'ami Vaucluse

ci joint proposition en VBA
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Columns("G")) Is Nothing Then
     If Target = "non" Then
          Rows(Target.Row).Interior.Pattern = xlLightUp
     Else
          Rows(Target.Row).Interior.Pattern = xlNone
     End If
End If
End Sub


macro événementiellement à copier-coller dans le module VBA de la feuille concernée

M... puissance 13 pour ta recherche de boulot
1
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 395
Modifié par Vaucluse le 31/01/2012 à 12:56
Bonjour
pourquoi une macro alors qu'Excel permet de la faire avec les MFC et la formule, pour un nom en G1 et un tableau de A1 à Z100 par exemple:
sélectionnez le tableau complet
MFC par formule
=$G1="non"
format hachuré.
(s'il s'agit d'Excel, bien sur)
crdlmnt
Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
0
marmotte38630
31 janv. 2012 à 12:58
d'une part parce qu'avec les MFC je peux pas faire hachurer la ligne et d'autre part avant je savais manipuler VBA et que je suis en train de m'y remettre
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 395
Modifié par Vaucluse le 31/01/2012 à 13:11
tout à fait d'accord pour vos objectifs concernant VBA, quant au fait que l'on ne peut hachurer en MFC, c'est un autre sujet!!
Voyez ici:
https://www.cjoint.com/?BAFnjMg17wl

bonne route

crdlmnt
0
bonjour, michel_m

merci pour l'idée de macro, pourrais tu éclairer ma lanterne car je comprends en gros la macro mais je connais pas "target" à quoi cela correspond-t il.

j'ai essayé la macro mais j'arrive pas à la lancer, comment dois'je faire.
existe-t-il une autre solution sans passer par une private sub?
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
31 janv. 2012 à 14:43
La macro est une macro événementielle et est à installer dans un module feuille. manière simple
tu fais un copier du code
clic droit sur l'onglet (en bas de l'cran XL) de la feuille concernée
visualiser le code
coller

target est un des param^tres de la macro
Private Sub Worksheet_Change(ByVal Target As Range)
déclarée en cellule(range) et désigne la cellule active

existe-t-il une autre solution sans passer par une private sub?
fais déjà marcher celle que je t'ai proposée: tu pourras alors juger si c'est intéressant d'appuyer sur un bouton
0
marmotte38630
31 janv. 2012 à 14:48
merci pour les infos cela fonctionne très bien
0