Macro pour changer couleur d'une ligne avec une case à cocher

Résolu
D277 Messages postés 38 Statut Membre -  
D277 Messages postés 38 Statut Membre -
Bonsoir à tous,

Voilà, pour un suivi de consommables, j'aimerai installer une colonne avec des cases à cocher, une par ligne.
Chaque ligne correspondant à une commande. Le but étant que lors de la réception de la commande, il suffit de cocher la case de la ligne correspondante pour changer de couleur et si on la décoche, qu'elle redevienne blanche.

J'arrive à faire une partie du boulot mais je n'arrive pas à intégrer l'argument correspondant à l'état "FAUX" de la case à cocher. J'ai essayé avec la case à cocher "Formulaire", mais est-ce que je dois travailler plutôt avec celle de la boîte à contrôle, ou appelée ActiveX ?

Merci d'avance

Bonne soirée

D277

3 réponses

  1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

    tu devrais surtout travailler avec des X dans une colonne.
    L'effet est le même, c'est plus simple que 500 case à cocher à gérer et surtout beaucoup plus léger pour excel.
    En 4 lignes tu gères tout. Ex :
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
        If Target.Column <> 2 Or Target.Row = 1 Then Exit Sub
        Cancel = True
        If Target = "" Then Target = "X" Else Target = ""
        Cells(Target.Row, 1).Resize(, 6).Interior.ColorIndex = IIf(Target = "", xlNone, 35)
    End Sub

    Double-cliquer en B.

    eric
    0
  2. D277 Messages postés 38 Statut Membre
     
    Bonjour Eric,

    Déjà merci de ta réponse. Je comprends ton idée mais je ne comprends pas totalement ta macro. Je réserve donc la colonne B pour mettre des X mais l'histoire de ton double clic, je pige pas. Peux-tu m'en dire plus ?

    Sinon, depuis hier, j'essaie tant bien que mal de créer une macro mais avec celle-ci, il me dis qu'il manque l'objet :

    Sub Caseàcocher1_QuandClic()
    LRéf = Selection.Row
    If ["Caseàcocher1"].Value = True Then
    Sheets("Feuil1").Select
    Range(Cells(LRéf, 3), Cells(LRéf, 6)).Then
    With Selection.Interior
    .ColorIndex = 15
    .Pattern = xlSolid
    End With
    End If
    If ["Caseàcocher1"].Value = False Then
    Sheets("Feuil1").Select
    Range(Cells(LRéf, 3), Cells(LRéf, 6)).Then
    Selection.Interior.ColorIndex = xlNone
    End If
    End Sub

    J'ajoute que j'ai travaillé avec un contrôle formulaire.

    Bonne journée

    D277
    0
  3. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Tu mets le code dans le module de la feuille concernée, un double-clic en B pose ou enlève le X et la couleur.
    https://www.cjoint.com/c/DFDtS33SaYT

    eric
    0
    1. D277 Messages postés 38 Statut Membre
       
      En effet, très bonne alternative. Je te remercie, je vais utiliser ce que tu as proposé.

      Bonne journée

      D277
      0