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 lors de protection de feuille [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 11
    Points : 8
    Points
    8
    Par défaut erreur d'exécution 1004 lors de protection de feuille
    Bonjour ,
    j'ai une macro qui fonctionne très bien lorsque la feuille est non protégée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub TRI_01()
    '
    ' TRI_01 Macro
    ' Macro enregistrée le 10/11/2007 par  Utilisateur
    '
     
    '
        Range("A12:C41").Select
        Selection.Sort Key1:=Range("B12"), Order1:=xlAscending, Key2:=Range("A12" _
            ), Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
            False, Orientation:=xlTopToBottom
    End Sub
    mais qui ne fonctionne pas quand je protège la feuille.
    le message suivant apparait :
    Erreur d’exécution '1004':
    La méthode Sort de la classe Range a échoué.


    quel est le problème et comment je peux le résoudre ?

    merci de votre aide

  2. #2
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 207
    Points : 14 362
    Points
    14 362
    Par défaut
    Bonjour,

    Tu ne peux pas trier sur une feuille protégée, même si tu as autorisé le tri... Tu peux contourner le problème en utilisant le parametre "userinterface:=true" de la méthode "Protect".

  3. #3
    Futur Membre du Club
    Inscrit en
    Janvier 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Bonjour Daniel.C,
    merci de te pencher sur mon problème. Mes connaissances en excel et VBA sont très limitées.
    par contre désolé de te contredire mais il est possible de faire des tris dans des pages protégées.
    d'ailleurs je te remercie, cela m'a permi d'aller comparer dans un fichier ou cela marche, les différences entre les 2 macros.
    Comme je comprends pas grand chose à tous ce langage, j'ai simplement fait un copié-collé en changement les numéro de cellules... ce qui au final marche très bien
    voici la macro de substitution:

    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
    Sub TRI_01()
    '
    ' TRI_01 Macro
    '
     
    '
        Range("A12:C26").Select
        ActiveWorkbook.Worksheets("GESTION").Sort.SortFields.Clear
        ActiveWorkbook.Worksheets("GESTION").Sort.SortFields.Add Key:=Range("B12:B41" _
            ), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        ActiveWorkbook.Worksheets("GESTION").Sort.SortFields.Add Key:=Range("A12:A241" _
            ), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        With ActiveWorkbook.Worksheets("GESTION").Sort
            .SetRange Range("A12:C41")
            .Header = xlGuess
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
    End Sub
    j'ai 16 macro de ce type dans mon fichier, il va donc falloir que je modifie les 15 autres... sauf si je comprends pourquoi, dans un fichier l'enregistrement de mes macros c'est fait correctement et pas dans l'autre???
    il doit s'agir d'une mauvaise manip de ma part toute bête, mais j'arrive pas à mettre le doigt dessus....
    si quelqu'un a une solution???

  4. #4
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 207
    Points : 14 362
    Points
    14 362
    Par défaut
    par contre désolé de te contredire mais il est possible de faire des tris dans des pages protégées.
    Faut pas être désolé, au contraire, c'est formateur pour nous deux. Tu peux uniquement trier des cellules non verrouillées. A partir du moment ou tu autorises le tri, on pourrait s'attendre à ce qu'on puisse le faire...
    Le tri, tel que tu l'as publié dans ton premier message fonctionne ici. Le problème doit venir de ta feuille. Est-ce que tu poster un classeur de test - sans données confidentielles - en pièce jointe ?

  5. #5
    Futur Membre du Club
    Inscrit en
    Janvier 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Bonjour

    voici les 2 fichiers :
    - le fichier minimes fonctionne sans problème
    - le fichier poussines pose problème.
    j'ai désactivé les protections.

    Je vois pas pourquoi cela diffère entre les 2
    Fichiers attachés Fichiers attachés

  6. #6
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 207
    Points : 14 362
    Points
    14 362
    Par défaut
    Bonjour,

    En protégeant la feuille GESTION, j'ai une erreur avec le bouton TRI 2. C'est normal vu que certaines cellules du tri (H41 par exemple) sont verrouillées. Tu dois les déprotéger pour pouvoir trier.

  7. #7
    Futur Membre du Club
    Inscrit en
    Janvier 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    merci Daniel.C de te pencher sur mon pb qui commence à me rendre

    en fait c'est normal que :
    - les cellule de la colonne H soit verrouillées. Le but étant que seules les cellules en blanc puissent être modifiées, et toutes les autres sont protégées afin d'éviter certaine manip malheureuse de l'utilisateur.
    - le tri01 marche puisque je j'ai fait un copié-collé du code de celui des minimes.
    ce que je n'ai pas fait pour le tri02, le tri03.... le code n'est donc pas le même. En tri02 cela marche quand la feuille n'est pas protégée mais ne marche pas avec la protection de feuille.

    En fait ce que je ne comprends pas c'est ce qui a différé entre la conception du fichier minime et de celui poussines.
    Nb : mes macros sont créées par enregistrement de l'action a réalisée (le code s'écrivant donc tout seul).
    lors de la création ou après la création, est-ce que je dois faire quelque chose en particulier pour que la macro officie avec la protection de feuille

  8. #8
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 207
    Points : 14 362
    Points
    14 362
    Par défaut
    Génial !

    Le tri "XL2007" arrive bien à trier des cellules verrouillées ! Maintenant, si tu ne veux pas tout modifier, exécute cette macro, une fois pour toutes (ou à chaque fois que tu déprotégeras / protégeras la feuille :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub Protege()
        Sheets("GESTION").Unprotect Password:="MDP"
        Sheets("GESTION").Protect Password:="MDP", AllowSorting:=True, Contents:=True, userfaceinterfaceonly:=True
    End Sub
    ou alors, mets cette ligne en début de chaque tri :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("GESTION").Unprotect Password:="MDP"
    et celle-ci en fin d macro :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("GESTION").Protect Password:="MDP"

  9. #9
    Futur Membre du Club
    Inscrit en
    Janvier 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par Daniel.C Voir le message
    Génial !
    pas mieux

    un grand grand


    Juste par curiosité, pourquoi faut-il que je tape ce code dans chaque macro. cela ne peut-il pas se faire automatiquement lors de l'enregistrement des actions ?

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

Discussions similaires

  1. remplissage zone de liste (Combobox) : Erreur d'exécution 1004 !?
    Par ln0331 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/02/2008, 17h02
  2. Réponses: 13
    Dernier message: 29/06/2007, 18h03
  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