Erreur d'exécution '1004' masquer ligne

Fermé
Biguf Messages postés 9 Date d'inscription mardi 3 avril 2012 Statut Membre Dernière intervention 20 avril 2012 - 12 avril 2012 à 10:23
m@rina Messages postés 20077 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 25 avril 2024 - 22 avril 2012 à 02:14
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 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
12 avril 2012 à 10:27
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 mardi 3 avril 2012 Statut Membre Dernière intervention 20 avril 2012
12 avril 2012 à 10:32
Bonjour cm81

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

bonne continuation
0
m@rina Messages postés 20077 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 25 avril 2024 11 272
12 avril 2012 à 10:37
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 mardi 3 avril 2012 Statut Membre Dernière intervention 20 avril 2012
19 avril 2012 à 17:12
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 20077 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 25 avril 2024 11 272
Modifié par m@rina le 22/04/2012 à 02:15
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