Mise en forme conditionnelle sur VBA

Résolu
marmotte38630 -  
 marmotte38630 -
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

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
  2. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    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
    1. marmotte38630
       
      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
    2. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
       
      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
  3. marmotte38630
     
    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
    1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      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
    2. marmotte38630
       
      merci pour les infos cela fonctionne très bien
      0