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:=Truec'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
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 = Truepar :
ActiveSheet.Range("I24:L400").Locked = True
ActiveSheet.Range("O24:P400").Locked = True
ActiveSheet.Range("U24:AC400").Locked = Trueric