Erreur d'exécution '1004' masquer ligne

Biguf Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   -  
m@rina Messages postés 23923 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour tout le monde,

J'ai un problème sur une feuille de calcul qui utilise une macro à partir d'une checkbox pour masquer ou faire apparaître des lignes.

Je suis passé d'un format sous Excel 2007 à un Excel 2003, tout marche bien puis à la réouverture du document sous excel 2003, cette fameuse "erreur d'exécution '1004': impossible de définir la propriété Hidden de la classe Range" apparaît, et je ne peut plus masquer les lignes.

Comment résoudre ce problème?

Voici une partie de mon code :

Private Sub CheckBox1_Change()
If CheckBox1.Value = True Then
ThisWorkbook.Worksheets("General").Rows("4").EntireRow.Hidden = False
Else
ThisWorkbook.Worksheets("General").Rows("4").EntireRow.Hidden = True
End If
Private Sub CheckBox2_Change()
If CheckBox2.Value = True Then
ThisWorkbook.Worksheets("General").Rows("5").EntireRow.Hidden = False
Else
ThisWorkbook.Worksheets("General").Rows("5").EntireRow.Hidden = True
End If
End Sub
Private Sub CheckBox3_Change()
If CheckBox3.Value = True Then
ThisWorkbook.Worksheets("General").Rows("6").EntireRow.Hidden = False
Else
ThisWorkbook.Worksheets("General").Rows("6").EntireRow.Hidden = True
End If
End Sub
.
.
.
Private Sub CheckBox133_Change()
If CheckBox133.Value = True Then
ThisWorkbook.Worksheets("General").Rows("138").EntireRow.Hidden = False
Else
ThisWorkbook.Worksheets("General").Rows("138").EntireRow.Hidden = True
End If
End Sub
Private Sub CheckBox134_Change()
If CheckBox134.Value = True Then
ThisWorkbook.Worksheets("General").Rows("139").EntireRow.Hidden = False
Else
ThisWorkbook.Worksheets("General").Rows("139").EntireRow.Hidden = True
End If
End Sub

Merci d'avance pour votre aide, et bonne journée! :D
A voir également:

2 réponses

ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
bonjour

il y a au moins un pb ici
Rows("4")
4 est un numéro de ligne donc un entier et non une chaine de caractère
donc
Rows(4) devrait passer
idem pour les autres

bonne suite
0
Biguf Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour cm81

Merci, c'est déjà ça de gagné! :-p

bonne continuation
0
m@rina Messages postés 23923 Date d'inscription   Statut Contributeur Dernière intervention   11 465
 
Bonjour,

Ton code est correct, et même les guillemets ne devraient pas poser de problème.

Mais, n'aurais tu pas protégé ta feuille ? Auquel cas, effectivement la macro ne peut pas faire son boulot.

m@rina
0
Biguf Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
En effet j'avais protégé ma feuille. Mais j'aurais bien voulu la garder protéger malgré tout ^^
J'ai également essayé avec la protection qui autorise le changement de format des lignes mais rien à faire.

Finalement jme suis fait une raison! :)

Merci d'avoir pris le temps de répondre
0
m@rina Messages postés 23923 Date d'inscription   Statut Contributeur Dernière intervention   11 465
 
Bonjour

Au cas où ce ne serait pas trop tard (j'étais absente ces derniers temps), tu peux très bien déprotéger et reprotéger via la macro :

Worksheets("feuille").Unprotect "toto"
...
Worksheets("feuille").Protect "toto"


m@rina
0