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 d 'exécution '1004' avec feuille protégée


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Conseiller/formateur en risques prof.
    Inscrit en
    Mars 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Conseiller/formateur en risques prof.
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2012
    Messages : 41
    Par défaut Erreur d 'exécution '1004' avec feuille protégée
    Bonjour,
    lors de la modification de la feuille 36, je souhaites mettre à jour la date de modification en Range("I3") sur une feuille protégée par mot de passe, mais ça bug !!
    Message d'erreur VBA :
    "Erreur d 'exécution '1004':"
    "Erreur définie par l'application ou par l'objet."

    En test sur Excel version 97 ou 2010 même problème sur fichier en .xls.
    J'ai aussi eu 1 fois ou 2 : "erreur : espace pile insuffisant"

    Hors la mise à jour de cellules par exemple en F9, J8... ne pose pas de problème (via un USF)
    J'ai cherché différentes solutions mais ne comprend pas le problème.

    Voici le code :
    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
    25
    26
    27
    28
    29
    30
    31
     
     
    '-----------------------------
    'Dans ThisWorkbook
    '-----------------------------
    Private Sub Workbook_Open()
        Dim sh As Worksheet
        Application.ScreenUpdating = False
        Application.CommandBars("Control Toolbox").Controls(1).Enabled = True  'False
        'PageProtec = Sheets("Parametres").Range("X48")
     
        'boucle sur toutes mes feuilles :
        For Each sh In Sheets
        'Mot de passe pour toutes les feuilles
            sh.Visible = True  ''Attention si feuille non visible, MdP peut-être différent
            sh.Protect Password:=Sheets("Parametres").Range("PageProtect"), UserInterfaceOnly:=True
        Next sh
        Application.ScreenUpdating = True
    End Sub
     
    '-----------------------------
    'Dans feuil36
    '-----------------------------
    Private Sub Worksheet_Change(ByVal Target As Range)
        With ActiveSheet
            .Unprotect Password:=Sheets("Parametres").Range("PageProtect"), UserInterfaceOnly:=True
            .Range("I3") = Date
            .Protect Password:=Sheets("Parametres").Range("PageProtect"), UserInterfaceOnly:=True
        End With
     
    End Sub
    Merci pour vos conseils

  2. #2
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour,
    quand tu protèges une feuille, comme ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sh.Protect Password:=Sheets("Parametres").Range("PageProtect"), UserInterfaceOnly:=True
    " UserInterfaceOnly" te permet les modifications par macro, mais pas sur la feuille directement

    je ne vois pas l'intérêt d'ajouter " UserInterfaceOnly" quand tu enlèves la protection
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  3. #3
    Membre averti
    Homme Profil pro
    Conseiller/formateur en risques prof.
    Inscrit en
    Mars 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Conseiller/formateur en risques prof.
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2012
    Messages : 41
    Par défaut
    Bonjour Casefayere,

    merci pour l'info,
    mais mon problème n'est pas résolu, si tu as une idée je suis preneur.
    En fait j'alimente les feuilles et revise les données à l'aide plusieurs USF tous fonctionne bien sauf dans la feuille 36 ou la macro pour la date de mise à jour pose problème. D’ailleurs, c'est l'instruction qui enlèves la protection qui bloque

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Unprotect Password:=Sheets("Parametres").Range("PageProtect")
    avec ou sans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    , UserInterfaceOnly:=True
    Merci.

  4. #4
    Membre averti
    Homme Profil pro
    Conseiller/formateur en risques prof.
    Inscrit en
    Mars 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Conseiller/formateur en risques prof.
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2012
    Messages : 41
    Par défaut
    Bonsoir tous,
    j'ai trouvé mon erreur, en faite ma macro modifiée bien la cellule I3, ce qui relancait la macro et ce sans fin.

    Voici ma solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub Worksheet_Change(ByVal Target As Range)
     
        If Not Intersect(Target, Range("F6:I65000")) Is Nothing Then
            Range("I3") = Date
        End If
    Merci encore à tous

  5. #5
    Membre Expert
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Septembre 2013
    Messages
    783
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 783
    Par défaut
    Je pense que nous avons tous fait ce genre d'erreur ....
    Le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If BdebugMode Then Application.EnableEvents = False
    peut servir .....

    Bonne continuation

  6. #6
    Membre averti
    Homme Profil pro
    Conseiller/formateur en risques prof.
    Inscrit en
    Mars 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Conseiller/formateur en risques prof.
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2012
    Messages : 41
    Par défaut Merci
    Merci vinc_bilb,
    je retiens la commande pour dé-buguer.
    A plus

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

Discussions similaires

  1. [XL-2010] Erreur d'exécution 1004 - Batch avec actualisation requêtes QUERY
    Par lllll7 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 26/01/2016, 17h53
  2. [XL-2007] erreur d'exécution 1004 lors de protection de feuille
    Par free air dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 22/10/2012, 17h19
  3. Erreur d'exécution '1004' lors d'une mise en page
    Par alex.a dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/06/2007, 09h00
  4. [VBA-E] Erreur d'exécution '1004'
    Par bibi5883 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 13/03/2007, 14h31
  5. [VBA-E] erreur d'exécution 1004 ?
    Par toy dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 24/05/2006, 13h15

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