Impossible de définir la propriété Hidden...

yannick64

XLDnaute Junior
Bonjour à tous,

Sur une macro excel censée me masquer certaines lignes en fonction de différents critères, j'obtiens ce message d'erreur :

Erreur 1004 :

Impossible de définir la propriété Hidden de la classe range

Si je le fait manuellement pas de problème.

Voici le code que j'ai utilisé, l'erreur se situe à la ligne 108.

Code:
Sub MasquerLignesColonnes()
' Macro enregistrée le 09/01/2012 par Yannick

'Boite de dialogue et vérification des champs obligatoires
 
    Rep = MsgBox("Avez vous complété l'ensemble des informations requises? Voulez-vous éditer les certificats ?", vbYesNo + vbQuestion, "LP CHAMPO - Information !")
    If Rep = vbYes Then
     If Range("F8").Value = "" Then
  MsgBox "Vous devez complétez la période, et relancez l'édition des certificats"
Range("F8").Select

Exit Sub

 'non vide...
End If

'Masquer la macro :
Application.ScreenUpdating = False
    
    'Ouverture de la base de données
    
      Workbooks.Open Filename:= _
        "D:\Mes documents\Lycée\Europe\Evaluations informatisées\MVA.xls"
    Windows("Evaluation PFMP BAC MVA.xls").Activate
    Sheets("FC").Select
    Rows("2:21").Select
    Selection.Copy
    Windows("MVA.xls").Activate
    Range("A2").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Windows("MVA.xls").Activate
    
    Dim i%

For i = Range("A65536").End(xlUp).Row To 1 Step -1
    If Not InStr(1, LCase(Cells(i, 1).Value), "0") = 0 Then
        Rows(i).Delete
    End If
   
Next i
    
    Windows("Evaluation PFMP BAC MVA.xls").Activate

' ____________________________________________________________________________________________

'Partie de la macro concernant le publipostage pour l'édition des fiches de présence (inutile pour les évaluations en France)

''Edition des fiches
'Nécessite d'activer la référence "Microsoft Word xx.x Object Library"
'Dim docWord As Word.Document
'Dim appWord As Word.Application
'Dim NomBase As String

'NomBase = "D:\Mes documents\Lycée\Europe\Evaluations informatisées\MVA.xls"

'Application.ScreenUpdating = False
'Set appWord = New Word.Application
'appWord.Visible = True

''Ouverture du document principal Word
'Set docWord = appWord.Documents.Open("D:\Mes documents\Lycée\Europe\Evaluations informatisées\MVA.doc")

''fonctionnalité de publipostage pour le document spécifié
'With docWord.MailMerge
''Ouvre la base de données
'.OpenDataSource Name:=NomBase, _
'Connection:="Driver={Fichier Excel via ODBC (*.xls)};" & _
'"DBQ=" & NomBase & "; ReadOnly=True;", _
'SQLStatement:="SELECT * FROM [FC$]"
''Spécifie la fusion vers l'imprimante
'.Destination = wdSendToPrinter
'.SuppressBlankLines = True
''Prend en compte l'ensemble des enregistrements
'With .DataSource
'.FirstRecord = wdDefaultFirstRecord
'.LastRecord = wdDefaultLastRecord
'End With
''Exécute l'opération de publipostage
'.Execute Pause:=False
'End With

'Application.ScreenUpdating = True

''Fermeture du document Word
'docWord.Close False
'appWord.Quit


'___________________________________________________________________________________________________________

'Fermeture de la base de données

Windows("MVA.xls").Activate
Application.DisplayAlerts = False
ActiveWorkbook.Close savechanges:=False
Application.DisplayAlerts = True


'Enregistrer le document
    Sheets("Evaluations").Select
    
    ActiveWorkbook.SaveAs Filename:="Evaluation" & " " & [G8].Value & ".xls"


'Masque les lignes d'évaluations inutiles en fonction de la période de stage
With Sheets("Evaluations")
        .Rows("12:613").EntireRow.Hidden = False
        Select Case Range("G8").Value
        Case "Première période": .Rows("62:143").EntireRow.Hidden = True '
        Case "Seconde période": Union(.Rows("45:61"), .Rows("74:143")).EntireRow.Hidden = True
        Case "Troisième période": Union(.Rows("45:73"), .Rows("86:143")).EntireRow.Hidden = True
        Case "Quatrième période": Union(.Rows("45:85"), .Rows("102:143")).EntireRow.Hidden = True
        Case "Cinquième période": Union(.Rows("45:101"), .Rows("123:143")).EntireRow.Hidden = True
        Case "Sixième période": .Rows("45:122").EntireRow.Hidden = True
        End Select
   End With
   
Sheets("RAP").Select
Dim plg As Range
With Sheets("RAP")
        .Rows("12:613").EntireRow.Hidden = False
        Select Case Range("D3").Value
        Case "Première période": Set plg = .Rows("15:54")
        Case "Seconde période": Set plg = Union(.Rows("8:15"), .Rows("21:54"))
        Case "Troisième période": Set plg = Union(.Rows("8:21"), .Rows("27:54"))
        Case "Quatrième période": Set plg = Union(.Rows("8:27"), .Rows("34:54"))
        Case "Cinquième période": Set plg = Union(.Rows("8:34"), Rows("44:54"))
        Case "Sixième période": Set plg = .Rows("8:44")
        End Select
    End With
 If Not plg Is Nothing Then plg.EntireRow.Hidden = True
    Set plg = Nothing
    End If
    

'Masquer les lignes et colonnes
    Sheets("Evaluations").Select
     Columns("O:O").Select
    Range(Selection, Selection.End(xlToRight)).Select
    Selection.EntireColumn.Hidden = True
    Columns("AB:AB").Select
    Selection.EntireColumn.Hidden = True
    'Rows("125:125").Select
    'Range("C125").Activate
    'Range(Selection, Selection.End(xlDown)).Select
    'Selection.EntireRow.Hidden = True
   ' ActiveWindow.SmallScroll Down:=-129
   ' ActiveWindow.ScrollColumn = 2
    'ActiveWindow.ScrollColumn = 1
    
    Sheets("FC").Select
    ActiveWindow.SelectedSheets.Visible = False

'Afficher la macro :
Application.ScreenUpdating = True

Sheets("Evaluations").Select
    Range("A1").Select
    Range("G9").Select



     
'Boite d'info
'Fin:

'        MsgBox "Complétez les informations et relancez l'édition des certificats", vbOKOnly + vbInformation, "LP CHAMPO - Information !"
    
 
'Protéger la feuille : Désactivé car bloque l'insertion de la signature
 'ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        False

End Sub

Merci d'avance pour votre aide.
Yannick
 

Paf

XLDnaute Barbatruc
Re : Impossible de définir la propriété Hidden...

bonjour

Voici le code que j'ai utilisé, l'erreur se situe à la ligne 108
.

Pas sûr que quelqu'un s'amuse à compter les lignes !! J'ai arrêté de m'amuser à 3 ....

Précisez dans le code la ligne concernée, ou mieux joignez le classeur sans données confidentielles.

A+
 

ROGER2327

XLDnaute Barbatruc
Re : Impossible de définir la propriété Hidden...

Bonsoir à tous.


Pas facile de tester un code sans son support ! Ce qui est sûr, c'est que ce code fonctionne :​
Code:
Sub tata()
    With Sheets("Onglet 1")
        .Rows("12:613").EntireRow.Hidden = False
        Select Case Range("G8").Value
        Case "Première période": .Rows("62:143").EntireRow.Hidden = True '
        Case "Seconde période": Union(.Rows("45:61"), .Rows("74:143")).EntireRow.Hidden = True
        Case "Troisième période": Union(.Rows("45:73"), .Rows("86:143")).EntireRow.Hidden = True
        Case "Quatrième période": Union(.Rows("45:85"), .Rows("102:143")).EntireRow.Hidden = True
        Case "Cinquième période": Union(.Rows("45:101"), .Rows("123:143")).EntireRow.Hidden = True
        Case "Sixième période": .Rows("45:122").EntireRow.Hidden = True
        End Select
   End With
End Sub
dans un classeur contenant un onglet nommé Onglet 1 et dont la cellule G8 de la feuille active contient l'une des valeurs
  • Première période
  • Seconde période
  • Troisième période
  • Quatrième période
  • Cinquième période
  • Sixième période
  • (vide)


Bonne soirée.


ℝOGER2327
#7599


Mercredi 4 Haha 142 (Sainte Berthe de Courrière, égérie - fête Suprême Quarte)
18 Vendémiaire An CCXXIII, 7,0178h - sarrasin
2014-W41-4T16:50:34Z
 

yannick64

XLDnaute Junior
Re : Impossible de définir la propriété Hidden...

merci pour vos réponses. Je ne peux pas envoyer le fichier il est trop volumineux pour le forum. Roger ce code ne marche pas dans mon classeur...

J'essaye de modifier le classeur pour qu'il passe sur le forum.

Bonne soirée
Yannick
 

Staple1600

XLDnaute Barbatruc
Re : Impossible de définir la propriété Hidden...

Re

yannick64
T’inquiètes donc pas.
On a le temps d'attendre ton fichier exemple.

Et j'ai personnellement ma vaisselle à faire.

Donc cela tombe bien ;)

Prends ton temps pour nous faire un beau fichier Excel, tout comme je vais prende le mien pour avoir une vaisselle bien propre et étincelante.
(vaisselle que je fais en Option Explicit, tout à la main, quoi ;))
 

ROGER2327

XLDnaute Barbatruc
Re : Impossible de définir la propriété Hidden...

Re...


(...) Roger ce code ne marche pas dans mon classeur...
(...)
Le problème vient donc certainement du classeur. Je joins mon classeur d'essai.​


Bonne nuit à tous.


ℝOGER2327
#7600


Mercredi 4 Haha 142 (Sainte Berthe de Courrière, égérie - fête Suprême Quarte)
18 Vendémiaire An CCXXIII, 9,1941h - sarrasin
2014-W41-4T22:03:57Z
 

Pièces jointes

  • Masquage de lignes.xlsm
    20.7 KB · Affichages: 36

yannick64

XLDnaute Junior
Re : Impossible de définir la propriété Hidden...

j'ai résolu mon problème, bon la méthode n'est pas très "propre"...

En fait j'ai supprimé la ligne
Code:
.Rows("12:613").EntireRow.Hidden = False
qui me servait à réinitialiser la cache des cellules.

Je ne sais pas pourquoi sur ce classeur cette ligne de code me bloque.

Merci pour vos conseils !
Yannick
 

Discussions similaires

Statistiques des forums

Discussions
312 195
Messages
2 086 082
Membres
103 112
dernier inscrit
cuq-laet