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 macro vba excel 2007


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 4
    Points : 1
    Points
    1
    Par défaut erreur macro vba excel 2007
    Bonjour,
    Novice en langage VBA sous excel 2007, je recherche de l'aide pour corriger ma macro qui ne fonctionne pas. Cette dernière a pour objet de laisser s'executer une mise à jour des données sous un tableau croisé dynamique protégé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub MacroavecfeuilleProtect()
    ActiveSheet.Unprotect "mdp"
    Private Sub Worksheet_Activate()
    ActiveSheet.PivotTables(1).PivotCache.Refresh
    ActiveSheet.Protect "mdp", True, True, True
    End Sub
    Dans l'attente, de votre aide. Merci

  2. #2
    Membre émérite
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 186
    Points : 2 502
    Points
    2 502
    Par défaut
    Bonjour,

    Pour une raison obscure, il y a une déclaration de fonction Private Sub Worksheet_Activate() au milieu de la fonction MacroavecfeuilleProtect.

    Essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub MacroavecfeuilleProtect()
       ActiveSheet.Unprotect "mdp"
       ActiveSheet.PivotTables(1).PivotCache.Refresh
       ActiveSheet.Protect "mdp", True, True, True
    End Sub

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Merci BlueMonkey
    Néanmoins subsiste un petit probleme : je suis obligé sur la feuille protégée de lancer l'execution de la macro et j'aurai souhaité une mise à jour automatique en d'autres termes un lancement automatique de la macro. Dans l'attente Bien cordialement,

  4. #4
    Membre émérite
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 186
    Points : 2 502
    Points
    2 502
    Par défaut
    Bonjour,

    Si le nom de la feuille contenant le TCD s'appelle Feuil1, ajoute la fonction ci-dessous dans le code associé au classeur ThisWorkBook

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Workbook_Open()
       With Worksheets("Feuil1")
             .Unprotect "mdp"
             .PivotTables(1).PivotCache.Refresh
             .Protect "mdp", True, True, True
       End With
    End Sub

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Bonsoir BlueMonkey
    Comme je l'ai déjà signalé je suis un vrai débutant et lorsque je copie cette macro, que vous m'avez gentiment corrigé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub MacroavecfeuilleProtect()
       ActiveSheet.Unprotect "mdp"
       ActiveSheet.PivotTables(1).PivotCache.Refresh
       ActiveSheet.Protect "mdp", True, True, True
    End Sub
    et que je l'applique sur d'autres feuilles toujours liées au même TCD, la macro ne fonctionne que sur la premiere feuille soit Janvier mais il reste 11 feuilles à protéger et à rafraichir dès que les données changent. et franchement je bloque. merci d'avance.

  6. #6
    Membre émérite
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 186
    Points : 2 502
    Points
    2 502
    Par défaut
    Bonsoir,

    Pour exécuter la macro sur l'ensemble des feuilles du classeur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Workbook_Open()
        Dim ws As Worksheet
        For Each ws In Worksheets
            If ws.PivotTables.Count > 0 Then
                With ws
                 .Unprotect "mdp"
                 .PivotTables(1).PivotCache.Refresh
                 .Protect "mdp", True, True, True
               End With
            End If
        Next ws
    End Sub
    P.S :
    Quelques conseils qui, si tu les suis, t'aiderons à recevoir de l'aide sur le forum :
    - lorsqu'on insère du code, on utilise la balise # (voir exemple ici)
    ca aide beaucoup à la lecture. Plus c'est lisible, plus tu auras de chance de trouver du support.
    - lorsque tu souhaite répondre à un message, utilise le bouton <Ajouter une réponse>, (le bouton <Citer> doit est réservé aux situations
    où la citation apporte quelque chose au message.)

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Bonjour BlueMonkey.
    Je vous remercie encore de votre précieuse aide mais malheureusement la dernière macro ne me donne pas le résultat attendu. J'ai une erreur 1004.
    Je ne voudrai pas vous faire prendre votre temps mais franchement je suis complètement dépassé et m'y prends surement très mal. Pourrai je vous faire parvenir le fichier excel afin que vous y puissiez repérer l'anomalie. Ci joint le fichier. je vous remercie par avance.

  8. #8
    Membre émérite
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 186
    Points : 2 502
    Points
    2 502
    Par défaut
    Bonsoir,

    Sauf erreur de ma part, il n'y a pas de fichier joint.
    S'il est volumineux, il est préférable de le compresser et/ou de le poster sur un site d'hébergement (http://www.yousendit.com/)

Discussions similaires

  1. vb6 ou vba - lenteur execution macro sur excel 2007
    Par Enigme dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 26/03/2010, 13h50
  2. Erreur 400 après lancement Macro VBA Excel
    Par ananar dans le forum Macros et VBA Excel
    Réponses: 36
    Dernier message: 23/08/2008, 14h33
  3. Macro VBA EXCEL 2003 vers 2007
    Par Jacques13170 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/04/2008, 19h23
  4. Probléme de compatibilté macro vba excel 2007 vers 2002
    Par cedric59dk dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/03/2008, 10h55
  5. VBA Excel 2007 - Insertion d'images avec Enregistreur de Macros
    Par PhilC dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 26/10/2007, 02h05

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