Erreur 1004 problème selection range

Bonjour,

je sèche sur un fichier d'horaires où toutes les feuilles sont normalement identiques (copier colle pour chaque nouveau arrivant).

j'ai ajouté la feuille de Mme orane guillot en copiant collant une autre feuille qui marche et j'ai une erreur 1004 sur la protection d'un range de cellules alors que dans toutes les autres feuilles des autres personnes cela passe sans pb. exactement le même code pour tout le monde..

je n'arrive pas à voir d'où cela vient.

j'ai laissé la feuille de Mme durand qui marche.

voici le code commun :

Private Sub test()
Dim filtre As String
'Application.ScreenUpdating = False

nbfeuilles = ThisWorkbook.Sheets.Count
'MsgBox nbfeuilles

For i = 2 To nbfeuilles
Sheets(i).Visible = xlVeryHidden
Next i

Saisie = InputBox("Tapez votre mot de passe", "identifiant")

   Select Case Saisie

        Case ""
        Application.EnableEvents = True
        ThisWorkbook.Save
        ThisWorkbook.Close
        End

        Case "bonjour"
            For i = 1 To nbfeuilles
                ThisWorkbook.Sheets(i).Visible = True
                ThisWorkbook.Sheets(i).Unprotect Password:="bonjour"
            Next i

 Case "Emilia"

                Sheets("Emilia Bucur").Visible = True
                Sheets("Emilia Bucur").Activate
                Worksheets(3).Visible = True
                Worksheets(4).Visible = True
                Worksheets(6).Visible = True
                Worksheets(3).Protect Password:="bonjour"
                Worksheets(1).Protect Password:="bonjour"

           filtre = Format(Date, "mm/dd/yyyy")

            ' deprotge la feuillee

            ActiveSheet.Unprotect Password:="bonjour"

'Enleve le filtre des mois pour tout afficher l'ann_ee
    'ActiveSheet.Range("$B$22").AutoFilter Field:=1, Criteria1:="<>"

    ActiveSheet.Range("$B$22:$B$387").AutoFilter Field:=1, Operator:= _
        xlFilterValues, Criteria2:=Array(1, filtre)

' verouilles les cellules de la plage I24:L400

    ActiveSheet.Range("I24:L400").Select
    Selection.Locked = True
    ActiveSheet.Range("O24:P400").Select
    Selection.Locked = True
    ActiveSheet.Range("U24:AC400").Select
    Selection.Locked = True

'Protege la feuille et donc ne permet pas l'accs aux cellles v_rouill_es "I24:L400", "O24:P400" et "AB24:AC400"0"

  ActiveSheet.Protect Password:="bonjour", DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFiltering:=True

c'est après la ligne ActiveSheet.Range("U24:AC400").Select la ligne Selection.Locked = True qui bloque

si quelqu'un peut m'aider à passer le cap svp,

mdp pour entrer dans le fichier CosRH33

merci beaucoup,

très bonne soirée et fin de semaine,

jasserin

36heures-2018.xlsm (683.12 Ko)

Bonjour,

Ce sont les cellules fusionnées des plage "U24:AC400" qui posent problème.

Si on ajoute "On Error Resume Next" en début de macro, ça passe.

Mais je crois que ce n'est pas la meilleure méthode de gérer cela correctement.

Je ne sais pas quelle est la meilleure méthode de gérer cela.

J'espère qu'un pro passera pour suggérer quelque chose de mieux.

ric

bonjour,

merci beaucoup pour l'astuce.

ce qui me parait étrange c'est que la feuille de mme durand a bien également des cellules fusionnées..

merci beaucoup,

jasserin

Bonjour,

Ici sur ma machine, le "Case" "Nadege" donne la même erreur.

Je ne comprends pas que tu n'aies pas d'erreur aussi sur cette feuille.

ric

Rebonjour,

Observation : Sans utiliser "On Error Resume Next" qui est un peu brutal, si les colonnes "U:Z" sont masquées, il n'y a pas d'erreur dans le code > d'où la différence entre certaines feuilles "apparemment" identiques. Tu pourras faire masquer les colonnes avant les lignes "Locked".

Autre chose ... il vaut mieux, tant que c'est possible de ne pas utiliser les "Select".

Je suggère de remplacer les lignes de code :

ActiveSheet.Range("I24:L400").Select
Selection.Locked = True
ActiveSheet.Range("O24:P400").Select
Selection.Locked = True
ActiveSheet.Range("U24:AC400").Select
 Selection.Locked = True

par :

ActiveSheet.Range("I24:L400").Locked = True
ActiveSheet.Range("O24:P400").Locked = True
ActiveSheet.Range("U24:AC400").Locked = True

ric

Rechercher des sujets similaires à "erreur 1004 probleme selection range"