> Tous les forumsBureautique

 propriété Locked de la classe Range ?
Statut du sujet : NON RESOLU Imprimer
 usularrakis
  Posté le 06/12/2005 @ 10:58  
 Astucien


2538 Messages
Bonjour à tous petit pb urgent sur une macro excel 2000 qui fonctionnait mais maintenant me dit : "Impossible de définir la propriété Locked de la classe Range ?" j'avais à l'origine 12 feuilles (1/mois) je ne sais pas si cela a un rapport mais j'ai rajouté une 13ème feuille que j'ai placé en 1ère position et qui contient du texte et des formules de calcul (qui reprennent des éléments sur les 12 autres feuilles) [code]Public Sub Protection() For i = 1 To 12 Worksheets(i).Range("B2:D4").Select Worksheets(i).Range("B2:D4").Locked = False Worksheets(i).Range("D11:D11").Locked = False Worksheets(i).Range("D15:G45").Locked = False Worksheets(i).Range("B13:B13").Locked = False Worksheets(i).Range("O15:P45").Locked = False If i = 1 Then Worksheets(i).Range("M11:N11").Locked = False End If Worksheets(i).Protect Password:="blablabla" Next i End Sub[/code] merci pour l'aide apportée
 Afficher le profil de usularrakisEnvoyer un message privé à usularrakis
 
 
Publicité
 galopin01  Posté le 06/12/2005 à 12:20  
Astucien

4324 Messages
bonjour, Il faut déprotéger (Unprotect) ta feuille avant A+
Afficher le profil de galopin01 Voir la configuration de galopin01Envoyer un message privé à galopin01
 Revenir en haut de la page
 usularrakis  Posté le 06/12/2005 à 12:25  
Astucien


2538 Messages
bonjour galopin j'ai une macro qui déprotège toutes les feuilles et qui fonctionne bien mais ça ne change rien [pleurer] [code]Public Sub déprotection() For i = 1 To 13 Worksheets(i).Unprotect Password:="blablabla" Next i End Sub[/code] question subsidiaire : les cellules que je ne veux pas protéger ne sont pas vérrouillées à l'origine (Format/cellule/protection/case "verrouillée" décochée) est-ce que ça pourrait venir de là ? pourtant la macro marchait bien avant !!!
Afficher le profil de usularrakisEnvoyer un message privé à usularrakis
 Revenir en haut de la page
 galopin01  Posté le 06/12/2005 à 12:41  
Astucien

4324 Messages
débogue et regarde la valeur de i avant le plantage ou met un msgbox i tout de suite après : For i = 1 To 12 msgbox i ... Quel est le dernier message ? Réponse subsidiaire : Je ne pense pas. Vérifie la protection de la feuille(i) du dernier msgbox. Je viens de vérifier. Tu ne peux pas définir une propriété Locked True ou False sur une "Sheet protected"

Modifié par galopin01 le 06/12/2005 12:49
Afficher le profil de galopin01 Voir la configuration de galopin01Envoyer un message privé à galopin01
 Revenir en haut de la page
 galopin01  Posté le 06/12/2005 à 12:55  
Astucien

4324 Messages
Unprotect au début : Public Sub Protection() For i = 1 To 12 Msgbox i Worksheets(i).Unprotect Password:="blablabla" Worksheets(i).Range("B2:D4").Select ... et analyse la différence
Afficher le profil de galopin01 Voir la configuration de galopin01Envoyer un message privé à galopin01
 Revenir en haut de la page
 usularrakis  Posté le 06/12/2005 à 13:45  
Astucien


2538 Messages
Bon ! le msgbox me donne 1 ensuite j'ai un nouveau message disant que la méthode select de la classe range a échouée si j'enlève le Range(....).Select je retombe sur le 1er message d'erreur : impossible de définir... si je change For i = 1 to 12 en For i = 2 to 12 le msgbox m'indique 2 je fais OK et là à la suite le msgbox revient avec chaque fois une nouvelle valeur 3 puis 4 puis 5 ...
Afficher le profil de usularrakisEnvoyer un message privé à usularrakis
 Revenir en haut de la page
 galopin01  Posté le 06/12/2005 à 16:53  
Astucien

4324 Messages
On revient à la case départ. Ta Feuille 1 est protégée... As-tu commencé ta boucle par un Public Sub Protection() For i = 1 To 12 Worksheets(i).Unprotect Password:="blablabla" ... Next Si oui, il n'y a pas de raison que ça plante. Normalement une macro équilibrée devrait prendre et restituer une feuille dans l'état ou elle était. Tu devrais donc déprotéger tes feuilles dans la boucle et les reprotéger en fin de travail... De toute façon tu ne risques rien à les déprotéger une fois de trop : VBA ne proteste pas... Je ne vois pas d'autre raison. Quand au Select, dans ce contexte il est bien sur inutile et n'interfère en rien dans le problème. A+
Afficher le profil de galopin01 Voir la configuration de galopin01Envoyer un message privé à galopin01
 Revenir en haut de la page
 usularrakis  Posté le 06/12/2005 à 17:07  
Astucien


2538 Messages
galopin j'ai bien déprotégé mes feuilles et la boucle commence à 1 mais ça ne marche toujours pas ! faut-il réinstaller excel ? merci
Afficher le profil de usularrakisEnvoyer un message privé à usularrakis
 Revenir en haut de la page
 galopin01  Posté le 06/12/2005 à 18:11  
Astucien

4324 Messages
tu m'envoies ton fichier? adresse en MP.
Afficher le profil de galopin01 Voir la configuration de galopin01Envoyer un message privé à galopin01
 Revenir en haut de la page
 galopin01  Posté le 06/12/2005 à 18:32  
Astucien

4324 Messages
En voyant le truc chez Cathy... Il est clair que maintenant ta macro elle travaille sur la feuille "Présentation" i = 1 : Présentation i = 2 : janvier... Le numéro d'index des Worksheets est l'ordre de tes onglets donc si tu veux travailler sur Janvier/Décembre il faut faire : For i = 2 to 13 C'est ça ?
Afficher le profil de galopin01 Voir la configuration de galopin01Envoyer un message privé à galopin01
 Revenir en haut de la page
 usularrakis  Posté le 06/12/2005 à 19:07  
Astucien


2538 Messages
j'ai essayé aussi comme ça en fait c'est la 1ère chose que j'ai faite : ça me paraissait logique mais quand j'ai eu le pb je suis revenu en arrière et comme le pb existait toujours je me suis dit que ça venait surement d'autre chose je viens de ré-essayer et toujours pareil : "impossible de définir..." et là en plus je suis chez moi donc pas avec l'Excel du boulot mais toujours en version 2000 [code]Public Sub Protection() For i = 2 To 13 Worksheets(i).Unprotect Password:="blablabla" Worksheets(i).Range("B2:D4").Locked = False Worksheets(i).Range("D11:D11").Locked = False Worksheets(i).Range("D15:G45").Locked = False Worksheets(i).Range("B13:B13").Locked = False Worksheets(i).Range("O15:P45").Locked = False If i = 1 Then Worksheets(i).Range("M11:N11").Locked = False End If Worksheets(i).Protect Password:="blablabla" Next i End Sub[/code] merci pour ton aide et ta patience je t'envois le classeur [boom][boom][boom]
Afficher le profil de usularrakisEnvoyer un message privé à usularrakis
 Revenir en haut de la page
 galopin01  Posté le 06/12/2005 à 23:05  
Astucien

4324 Messages
Sorry, il est 23:00 et je ne récupère ton truc que maintenant because un CA important. Malheureusement, je ne peux rien faire sans mot de passe. Je suis un peu frustré de ne pas avoir la totalité des macros. Car ainsi je ne peux pas examiner s'il y a des macros automatiques (Worksheet_Deactivate par exemple) en fin un tas de petite chose pour auditer ton truc à donf. Bon si t'es encore en ligne dépêche toi mes nuits sont courtes mais quand même... Nota : Tu peux passer un fichier avec macro sans affoler le système si tu le zip ! A+
Afficher le profil de galopin01 Voir la configuration de galopin01Envoyer un message privé à galopin01
 Revenir en haut de la page
 usularrakis  Posté le 07/12/2005 à 08:22  
Astucien


2538 Messages
salut Galopin01 les macros sont dans mon fichier PERSO.XLS il n'y a rien dans ThisWorkbook ni dans les Feuill ce sont celles qui sont disponibles sur le forum et le mdp est celui inscrit (blablabla): [code]Public Sub Protection() For i = 2 To 13 'ou For i = 1 To 12 Worksheets(i).Unprotect Password:="blablabla" Worksheets(i).Range("B2:D4").Locked = False Worksheets(i).Range("D11:D11").Locked = False Worksheets(i).Range("D15:G45").Locked = False Worksheets(i).Range("B13:B13").Locked = False Worksheets(i).Range("O15:P45").Locked = False If i = 1 Then Worksheets(i).Range("M11:N11").Locked = False End If Worksheets(i).Protect Password:="blablabla" Next i End Sub[/code] déprotection : [code]Public Sub déprotection() For i = 1 To 13 Worksheets(i).Unprotect Password:="blablabla" Next i End Sub[/code] merci beaucoup
Afficher le profil de usularrakisEnvoyer un message privé à usularrakis
 Revenir en haut de la page
 galopin01  Posté le 07/12/2005 à 13:33  
Astucien

4324 Messages
ben, c'est la première chose que j'ai essayée ! Mais que nibe : ça déprotège rien du tout... Bon j'avais peut-être l'esprit un peu engormi car j'avais une réunion interminable hier, mais j'y vois quand même un peu zarbi ton afffaire ! Enfin... je peux pas être catégorique car je n'ai pas le fichier sous les yeux : je suis au boulot, je vais me rebrancher dessus à 17:00 A*
Afficher le profil de galopin01 Voir la configuration de galopin01Envoyer un message privé à galopin01
 Revenir en haut de la page
 usularrakis  Posté le 07/12/2005 à 14:00  
Astucien


2538 Messages
OK Galopin01 alors je te renvois un fichier zippé avec les macros dans un module ne vas pas te casser trop la tête là-dessus quand même ;-) je peux toujours ré-enregistrer une macro de protection mais j'aimerai bien comprendre le pourquoi !!! surtout que la syntaxe est correcte et fonctionnait bien !!! merci encore
Afficher le profil de usularrakisEnvoyer un message privé à usularrakis
 Revenir en haut de la page
 galopin01  Posté le 07/12/2005 à 17:29  
Astucien

4324 Messages
Bonsoir, Ce sont tes cellules fusionnées qui fichent le bazard. Tu as le même problème de cellules fusionnées en Octobre D42:G43. Je n'ai pas regardé le reste... Les cellules fusionnées et VBA ne font pas bon ménage : il faut les réserver à des prèsentation ou des entêtes de pages immuables et encore. Personnellement je ne m'en sert jamais, il y a toujours une meilleure solution... A+
Afficher le profil de galopin01 Voir la configuration de galopin01Envoyer un message privé à galopin01
 Revenir en haut de la page
 usularrakis  Posté le 08/12/2005 à 08:52  
Astucien


2538 Messages
OK galopin01 tout ça pour ça ! je vais voir si je peux trouver une solution "élégante" pour mes cellules fusionnées merci beaucoup pour ton aide
Afficher le profil de usularrakisEnvoyer un message privé à usularrakis
 Revenir en haut de la page
Haut de la page 
Inscrivez-vous !
- Posez vos questions

- Résolvez vos problèmes

- Aidez les autres

- Participez et créez vos discussions

- Dialoguez en privé avec d'autres membres

- Suivez vos sujets préférés

- Affichez les signatures des membres

TOUT EST GRATUIT !

Je crée mon compte




Vous avez besoin d'aide ?
Des centaines d'experts sont à votre disposition sur les forums PC Astuces pour vous aider gratuitement, 24h/24, 7j/7.

Les derniers sujets résolus !
 

 > Tous les forumsBureautique

 
Forum PC Astuces© 1997-2008 WebastucesAller en haut de la page