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 :
Si je le fait manuellement pas de problème.
Voici le code que j'ai utilisé, l'erreur se situe à la ligne 108.
Merci d'avance pour votre aide.
Yannick
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