Case à cocher pour passer à une autre feuille

Fermé
zazi - 18 juin 2018 à 12:14
Raymond PENTIER Messages postés 58720 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 10 novembre 2024 - 22 juin 2018 à 00:03
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

danielc0 Messages postés 1253 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 11 novembre 2024 141
18 juin 2018 à 12:53
Bonjour,

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

Daniel
0
Avoir une feuille, et cocher OK la case en bas à droit, qui nous ferais activer une feuille suivante.
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 778
18 juin 2018 à 21:54
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
Raymond PENTIER Messages postés 58720 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 10 novembre 2024 17 233
19 juin 2018 à 15:20
Bonjour zazi ,

à ta place, j'aurais créé un bouton contenant un lien hypertexte, tout simplement.
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 778
20 juin 2018 à 00:33
Bonjour Raymond,

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

Cordialement
Patrice
0
Raymond PENTIER Messages postés 58720 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 10 novembre 2024 17 233
22 juin 2018 à 00:03
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