IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Erreur 1004 avec Range().Locked


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club  
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2009
    Messages : 8
    Points : 9
    Points
    9
    Par défaut Erreur 1004 avec Range().Locked
    Bonjour,
    Je me suis créé un simple script qui verrouille certaines cellules à l'ouverture de mon fichier Excel.

    Quand j'ouvre le fichier une première fois, mon code s'exécute à la perfection. Mais dès que je l'ouvre une seconde fois et que je le sauvegarde à nouveau, le message suivant apparaît:
    Erreur d'exécution 1004. Impossible de définir la propriété Locked de la classe Range
    Voici mon code. Peut-être y trouverez-vous l'erreur que je ne réussis pas à voir...

    Merci à l'avance!

    Alain

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    Private Sub Workbook_open()
     
    Dim y As Long
        y = 11
        For y = 11 To 895 Step 17
            Sheets("Feuil1").Range("D" & y & ":G" & y).Locked = True
        Next y
     
    Dim x As Long
        x = 28
        For x = 28 To 895 Step 17
          If Cells(x, 1).Value <= Date - 2 Then
            Sheets("Feuil1").Range("D" & x - 16 & ":F" & x - 1).Locked = True
          End If
        Next x
     
    Sheets("Feuil1").EnableOutlining = True
    Sheets("Feuil1").Protect Password:="alain", _
        UserInterfaceOnly:=True
    Sheets("Feuil2").Protect Password:="alain", _
        UserInterfaceOnly:=True
     
    End Sub

  2. #2
    Futur Membre du Club  
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2009
    Messages : 8
    Points : 9
    Points
    9
    Par défaut
    Tiens, voilà que je me réponds encore à moi même!

    Après moults essais, j'ai constaté que la fonction Range().Locked ne fonctionne uniquement que sur des cellules non protégées. Dès qu'une cellule à l'intérieur de son range est déjà protégée, la fonction plante au lieu de l'ignorer...

    Alors, comme mon script se termine en protégeant la feuille pour ne pas que les utilisateurs ruinent mes formules par mégarde; eh bien, la fonction ne fonctionnait (sic) évidemment pas lors des réouvertures subséquentes du fichier.

    Il fallait donc tout simplement débuter par:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub Workbook_open()
     
    Sheets("Feuil1").Unprotect Password:="alain"
     
    ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur 1004 sur Range(cells,cells).copy
    Par Sebastien57 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 30/10/2009, 11h33
  2. [XL-2002] Erreur 1004 avec pastespecial sur macro très simple
    Par arou dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/06/2009, 11h00
  3. j'ai une erreur 1004 avec mon vba ?
    Par isodoro dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/03/2009, 10h13
  4. [VBA][EXCEL]Erreur '1004' avec "Application.Run"
    Par Ania dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 16/01/2006, 10h50
  5. [Excel] Erreur 1004 avec un search
    Par Rakham dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 23/12/2005, 13h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo