Interrogation sur CheckBox

Bonjour,

J'ai utilisé une CheckBox pour lancer une macro lorsque qu'elle est cochée.

J'aurai voulu savoir s'il était possible d’effectuer une action dans la même macro si cette Checkbox est décochée par la suite ?

Merci d'avance !

Bonjour

La checkbox est sur votre feuille ou dans une USF ?

Si sur la feuille, vous pouvez mettre un contrôle genre ceci :

If CheckBox1.Value = True Then .... Else : .....

Cordialement

Bonjour Dan,

Merci pour l'astuce !

Dans le cas ou la réponse est "False", y aurait il un moyen d'annuler l'action du "True" ?

Quelque chose du genre :

... = True Then

Else : "Annuler l'action précédente"

(Dans mon cas si c'est "True" je copie/colle des cellules et dans le cas ou c'est "False" j'aimerai supprimer les cellules copiées

Re

Dans le cas ou la réponse est "False", y aurait il un moyen d'annuler l'action du "True" ?

Possible de voir le code qui est exécuté lorsque la checkbox est à True ?

Cordialement

Bonjour Dan,

Alors voici le début de code (que j'ai fait avec mes maigres connaissances, donc il doit y avoir des aberrations pour les pros...)

Private Sub A_Click()

If A.Value = True Then

A1

'Else

'A2

End If
End Sub

Sub A1()

If Worksheets("Suivi Dimensionnel (1)").Cells(12, 1).Value = "" Then

Worksheets("Suivi Dimensionnel (1)").Visible = 1

Sheets("Suivi Dimensionnel (1)").Cells(12, 1) = Sheets("Relevé Cotes (1)").Cells(12, 1)
Sheets("Suivi Dimensionnel (1)").Range("C12:E13").Value = Sheets("Relevé Cotes (1)").Range("BS12:BU13").Value
Sheets("Suivi Dimensionnel (1)").Range("F12:I13").Value = Sheets("Relevé Cotes (1)").Range("BV12:BY13").Value
Sheets("Suivi Dimensionnel (1)").Range("J12:O13").Value = Sheets("Relevé Cotes (1)").Range("BZ12:CE13").Value

End If
End Sub

Re

Essayez avec ces 3 codes

Private Sub A_Click()
If A.Value = True Then
    Call A1
    Else: Call A2
End If
End Sub
Sub A1()
With Worksheets("Suivi Dimensionnel (1)")
    If .Cells(12, 1).Value = "" Then
        .Visible = 1
        .Cells(12, 1) = Sheets("Relevé Cotes (1)").Cells(12, 1)
        .Range("C12:E13").Value = Sheets("Relevé Cotes (1)").Range("BS12:BU13").Value
        .Range("F12:I13").Value = Sheets("Relevé Cotes (1)").Range("BV12:BY13").Value
        .Range("J12:O13").Value = Sheets("Relevé Cotes (1)").Range("BZ12:CE13").Value
    End If
End With
End Sub
Sub A2()
With Worksheets("Suivi Dimensionnel (1)")
        .Visible = 1
        .Cells(12, 1) = ""
        Union(.Range("C12:E13"), .Range("F12:I13"), .Range("J12:O13")).Clear
End With
End Sub

Si OK et terminé, n'oubliez pas de cloturer le fil lors de votre réponse en cliquant sur le V vert à coté du bouton EDITER

Cordialement

Super merci encore une fois Dan !

Avec une petite modification, cela fonctionne comme je le souhaite.

J'en demande peut être beaucoup, mais la fonction que je tente de mettre en place à de nombreuses variantes.

J'ai en effet 72 checkbox qui fonctionnent sur le même principe.

Pour la checkbox A, si elle est cochée, comme tu as du le comprendre, les cellules d'une feuille vont aller se reporter sur une autre feuille à la première ligne (que j'ai défini moi même en lignes 12/13).

Pour la B c'est pareil :

  • Si A est déjà cochée, les cellules liées à la B vont aller se coller sur les lignes 14/15 (2 ème ligne pour moi sur mon autre feuille)
  • Si A n'est pas cochée, les cellules liées à la B vont aller se coller sur les lignes 12/13 de mon autre feuille

Donc autant de variantes possibles jusqu'à la 72eme checkbox...

D'où le problème suivant pour l'exemple de la checkbox B :

Si je veux annuler l'action de la checkbox B, comment faire comprendre à la macro quelle ligne est a supprimer ? (soit les lignes 12/13, soit les lignes 14/15)

J'espère être un minimum clair dans mes explications parce que c'est un vrai casse tête pour moi...

Voici ce que j'ai codé précédemment pour la CheckboxB si ça peut aider à la compréhension (je n'y ai pas encore apporté ta nouvelle écriture)

Private Sub B_Click()
If B.Value = True Then

B1

'Else

'B2

End If
End Sub

Sub B1()

If Worksheets("Suivi Dimensionnel (1)").Cells(12, 1).Value = "" Then

Worksheets("Suivi Dimensionnel (1)").Visible = 1

Sheets("Suivi Dimensionnel (1)").Cells(12, 1) = Sheets("Relevé Cotes (1)").Cells(14, 1)
Sheets("Suivi Dimensionnel (1)").Range("C12:E13").Value = Sheets("Relevé Cotes (1)").Range("BS14:BU15").Value
Sheets("Suivi Dimensionnel (1)").Range("F12:I13").Value = Sheets("Relevé Cotes (1)").Range("BV14:BY15").Value
Sheets("Suivi Dimensionnel (1)").Range("J12:O13").Value = Sheets("Relevé Cotes (1)").Range("BZ14:CE15").Value

Else

Sheets("Suivi Dimensionnel (1)").Cells(14, 1) = Sheets("Relevé Cotes (1)").Cells(14, 1)
Sheets("Suivi Dimensionnel (1)").Range("C14:E15").Value = Sheets("Relevé Cotes (1)").Range("BS14:BU15").Value
Sheets("Suivi Dimensionnel (1)").Range("F14:I15").Value = Sheets("Relevé Cotes (1)").Range("BV14:BY15").Value
Sheets("Suivi Dimensionnel (1)").Range("J14:O15").Value = Sheets("Relevé Cotes (1)").Range("BZ14:CE15").Value

End If
End Sub

Re

S'il y a 72 cases à cocher cela va devenir ingérable !

Est-ce que je peux voir le fichier afin de mieux visualiser le souci

Cordialement

Voici mon fichier encore en GROSSE ébauche.

Si besoin, je peux expliquer en détail le fonctionnement du fichier

Merci !

Edit : J'ai pensé à une sorte de recherche V pour détecter la ligne dans laquelle apparaît la ligne collée grâce à la lettre de la checkbox qui est liée. Mais je ne sais pas si cela est réalisable via une macro...

Re

Pour l'explication du fichier, ce serait bien. A première vue si je prends la feuille Releves cotes 1, on complète les cellules jaunes et une fois terminé, on clique sur la case à cocher en colonne P ?

Une chose ou plutôt conseil, évite les fusions quand c'est possible. cela met le souc dans les codes quelques fois et est moins facile à gérer. Là je vois la colonne A et B fusionnée, pourquoi ??

Cordialement

Tu as tout bon,

Pour résumer en très gros il faut dans un premier temps choisir dans le déroulant en A40:BX41, ensuite remplir les cases jaunes et selon le cas, activer ou non la checkbox qui correspond en bout de ligne. De ce fait apparaîtra une nouvelle feuille "suivi dimensionnel" où une partie de la ligne sera copiée/collée...

A certains endroits les colonnes A et B sont fusionnées tout simplement parce qu'à la création d'un ancien document j'en avait eu besoin. J'ai repris cet ancien document en base pour mon nouveau fichier sans trop modifier la mise en page.

Du coup est ce qu'une sorte de recherche V (dans les colonnes A & B des feuilles suivi dimensionnel) serait réalisable ?

Par exemple, pour la CheckBox B si jamais elle a été cochée, on la décoche et la macro recherche "B" dans les Colonnes A:B de la feuille de suivi dimensionnel (et supprime cette ligne)

Merci !

Rechercher des sujets similaires à "interrogation checkbox"