Cases à cocher ActiveX et action sur autre feuille

Bonjour,

Malgré mes longues recherches, je n'ai pas trouvé la solution.

Est-il possible qu'une case à cocher commande une action sur une autre feuille que celle sur laquelle est présente ?

Explications :

Sur la feuille 1, j'ai inséré des cases à cocher ActiveX

Si la première est cochée, je peux réduire la largeur des colonnes de la feuille sur laquelle la case à cocher est présente :

Private Sub CheckBox1_Click()
If CheckBox1 = True Then
Columns("E:F").Select
Selection.ColumnWidth = 0
Else
Columns("E:F").Select
Selection.ColumnWidth = 30
End If
End Sub

Maintenant, si je souhaite que la deuxième case à cocher (toujours sur la feuille 1) agisse sur les colonnes de la feuille 2, j'ai :

Private Sub CheckBox2_Click()
If CheckBox2 = True Then
Sheets("Feuil2").Select
Columns("E:F").Select
Selection.ColumnWidth = 0
Else
Sheets("Feuil2").Select
Columns("E:F").Select
Selection.ColumnWidth = 30
Sheets("Feuil1").Select
End If
End Sub

Dans ce cas, j'ai un message d'erreur "Erreur d'exécution '1004': La méthode Select de la classe Range a échoué

Une idée ?

Merci à ceux qui en ont !

Bonjour, vous n'avez pas besoin de vous rendre sur l'onglet concerné et faire des sélections etchanger la taille des colonnes.

Il suffit d'indiquer quoi - ou - et que faire :

Private Sub CheckBox2_Click()
If CheckBox2 = True Then
Sheets("Feuil2").Range("E:F").ColumnWidth = 0
Else
Sheets("Feuil2").Range("E:F").ColumnWidth = 30
End If
End Sub

Cette rédaction est valable aussi pour la feuille la chekbox1 en changeant le nom de la feuille.

Bonjour,

Tu n'indiques pas sur quelle ligne se produit l'erreur 1004 mais avec le code suivant, cela fonctionne :

Private Sub CheckBox1_Click()
   If CheckBox1 = True Then
      Columns("E:F").ColumnWidth = 0
   Else
      Columns("E:F").ColumnWidth = 30
   End If
End Sub

Private Sub CheckBox2_Click()
   If CheckBox2 = True Then
      Sheets("Feuil2").Columns("E:F").ColumnWidth = 0
   Else
      Sheets("Feuil2").Columns("E:F").ColumnWidth = 30
   End If
End Sub

J'ai seulement condensé l'écriture en ôtant les ".Select" et "Selection" (qui résultent souvent de l'utilisation de l'enregistreur de macro, outil très très pratique mais il faut retoucher le code car il utilise très (trop ?) volontiers les Select et Selection)

Cdlt

Merci à vous deux, cela fonctionne parfaitement !

Cela semble si simple alors que j'ai passé tellement de temps...

Cà deviendra simple à force d'utiliser il faut se forcer au début dans la mesure du possible a rédiger sur une seule ligne

Rechercher des sujets similaires à "cases cocher activex action feuille"