Case à cocher pour passer à une autre feuille

zazi -  
Raymond PENTIER Messages postés 58219 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je voudrais que à la fin de chaque feuilles excel, cocher une case pour confirmer que le "contrôle" a été fait, afin d'activé ma feuille suivante.

Pouvez-vous me venir en aide svp ?
Merci.

3 réponses

  1. danielc0 Messages postés 2201 Date d'inscription   Statut Membre Dernière intervention   291
     
    Bonjour,

    Est-ce que tu peux préciser ? La fin de chaque feuille ? Ou exactement ?

    Daniel
    0
    1. Zazi
       
      Avoir une feuille, et cocher OK la case en bas à droit, qui nous ferais activer une feuille suivante.
      0
  2. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
     
    Bonjour,

    Places cette macro dans un module standard :
    Option Explicit
    Sub AjoutCheckBoxs()
    Const n$ = "chkValidation"  'Nom de la case à cocher
    Dim w As Worksheet          'Feuille
    Dim o As OLEObject          'OLE case à cocher
    Dim s As Shape              'Forme
    Dim c As Range              'Cellule
    Dim m As String             'Texte de la macro
    Dim d As Integer            'Début de la macro
    Dim x As Integer            'nombre de lignes
    
      ' Nettoyer chaque feuille :
      For Each w In Worksheets
        With w
          ' - supprimer le checkbox s'il existe
          For Each s In .Shapes
            If s.Name = "chkValidation" Then s.Delete
          Next s
          ' - supprimer la macro _Click() du checkbox
          With ThisWorkbook.VBProject.VBComponents(.CodeName).CodeModule
            On Error Resume Next
              d = .ProcStartLine(n & "_Click", 0)
              x = .ProcCountLines(n & "_Click", 0)
              .DeleteLines d, x
            On Error GoTo 0
          End With
        End With
      Next w
      
      ' Définir la macro
      m = ""
      m = m & "Sub " & n & "_Click()" & vbCrLf
      m = m & "  With Me" & vbCrLf
      m = m & "    If ." & n & ".value Then" & vbCrLf
      m = m & "      If .Index < Worksheets.Count Then" & vbCrLf
      m = m & "        Worksheets(.Index + 1).Activate" & vbCrLf
      m = m & "      Else" & vbCrLf
      m = m & "        MsgBox ""Dernière feuille""" & vbCrLf
      m = m & "      End If" & vbCrLf
      m = m & "    End If" & vbCrLf
      m = m & "  End With" & vbCrLf
      m = m & "End Sub"
      
      ' Sur chaque feuille :
      For Each w In Worksheets
        With w
          ' - ajouter le chekbox à la fin de la feuille
          Set c = .Cells(Val(Split(.UsedRange.Address & "$A$1", "$")(4)) + 2, "A")
          Set o = .OLEObjects.Add(ClassType:="Forms.CheckBox.1")
          With o
            .Name = n
            .Left = 15
            .Top = c.Top
            .Width = 60
            .Height = 18
            .ShapeRange.Fill.ForeColor.SchemeColor = 64
            With .Object
              .Caption = "Validation"
              .BackColor = RGB(192, 255, 192)
            End With
          End With
        End With
        ' - ajouter la macro _Click du CheckBox
        With ThisWorkbook.VBProject.VBComponents(w.CodeName).CodeModule
          x = .CountOfLines + 1
          .InsertLines x, m
        End With
      Next w
    
    End Sub

    Et exécutes-le :
    Il place une case à cocher en bas de chaque feuille (avec sa macro)
    0
  3. Raymond PENTIER Messages postés 58219 Date d'inscription   Statut Contributeur Dernière intervention   17 485
     
    Bonjour zazi ,

    à ta place, j'aurais créé un bouton contenant un lien hypertexte, tout simplement.
    0
    1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
       
      Bonjour Raymond,

      Le lien hypertexte ne permet pas de « confirmer que le "contrôle" a été fait »

      Cordialement
      Patrice
      0
    2. Raymond PENTIER Messages postés 58219 Date d'inscription   Statut Contributeur Dernière intervention   17 485
       
      Mais tel n'est pas le but que je recherche, cher Patrice ...
      En effet zazi a demandé comment "cocher une case pour confirmer que le contrôle a été fait", et pas comment "cocher une case pour effectuer le contrôle" ...
      0