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 :

Bug sur un fichier contenant des TCD


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    473
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 473
    Points : 493
    Points
    493
    Par défaut Bug sur un fichier contenant des TCD
    Bonjour à tous

    Voici un autre problème sur mon fichier.
    Dans ce fichier qui comprend des macros et plusieur Tableaux croisés dynamiques (5 sur des feuilles différentes), il arrive régulièrement que le fichier plante lorsque je suis sur une feuille qui contient un TCD, et il se ferme complètement à en perdre les données juste réalisées. Je ne sais pas quoi faire!

    Il faut que j'apporte une petite précision: lorsque j'installe ce fichier sur mon ordi je ne connais pas ce problème! Alors je me demande si cela ne proviendrais pas de l’ordi (mais c'est le cas sur plusieurs ordi) ou alors qu'il manque quelque chose sur Excel! Mais quoi?

    Ou alors ces mon code qui est faut que je réalise avant d'entrer ds une feuille contenant un TCD
    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
    Dim LaFeuille As Worksheet
    For Each LaFeuille In ActiveWorkbook.Worksheets
          LaFeuille.Unprotect
    Next
     
     
    Dim MaFeuille As Worksheet
     
    For Each MaFeuille In ActiveWorkbook.Worksheets
         MaFeuille.Visible = xlSheetVisible
     
    Next
    Sheets("GL_Ana").Select
     
        ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotCache.Refresh
        ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
            , AllowUsingPivotTables:=True
        Range("A1:H1").Select
    Dim a As Worksheet
      For Each a In ActiveWorkbook.Worksheets
          a.Visible = (a.Name = "GL_Ana")
      Next a
    Merci à vous!

  2. #2
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Je pense que le code entier n'est pas que ça.
    Dans cet ordre:
    1. Je dé protège toutes les feuilles
    2. je les rends toutes visibles
    3. je sélectionne la feuille "GL_ana"
    4. je rafraichi le TCD
    5. je protège cette feuille
    6. je cache toutes les autres feuilles
    à méditer

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    473
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 473
    Points : 493
    Points
    493
    Par défaut
    J'ai bien modifié l'ordre du code est ce que cela te semble + cohérant, mais cela ne m'explique pas pourquoi ça marche sur mon ordi et plante sur d'autre!
    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
    32
    33
    34
    35
    36
    37
    38
    39
    Private Sub CommandButton15_Click()
    ' je déprotèje toutes les feuilles
    Dim LaFeuille As Worksheet
    For Each LaFeuille In ActiveWorkbook.Worksheets
          LaFeuille.Unprotect
    Next
     
     
    ' je les rend tts visible
    Dim MaFeuille As Worksheet
     
    For Each MaFeuille In ActiveWorkbook.Worksheets
         MaFeuille.Visible = xlSheetVisible
     
    Next
     
    ' je rafraichi le TCD
     
    Sheets("GL_Ana").Select
     
        ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotCache.Refresh
        ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
            , AllowUsingPivotTables:=True
    ' je protège la feuille
     
        ActiveSheet.Protect ' protection de la feuille
    Range("a1").Select
     
    'je rends la feuille GL_Ana visible
     
    Dim a As Worksheet
      For Each a In ActiveWorkbook.Worksheets
          a.Visible = (a.Name = "GL_Ana")
      Next a
     
     
     
    Unload UserForm8
    End Sub

  4. #4
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    à part un ActiveSheet.protect double
    ça à l'aire de fonctionner.
    mon dernier post était pour comprendre le but.
    quelle version d'Excel tu as? dans les 2 pc

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    473
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 473
    Points : 493
    Points
    493
    Par défaut
    Oui c juste j'ai bien 2 protection, je modifie ça.

    pour ta 2ème question , c'est bien des 2007 je regarde demain si c'est pas un problème de mise à jour et te donne ma réponse, ce doit-être ça qui me pose problème.

    Merci encore et à demain!

  6. #6
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Je suis assez sur que dans un 2003, ça fonctionnerait sans souci. j'avais rencontré un problème similaire avec une autre personne. mais bon, j'en sais rien.

Discussions similaires

  1. [XL-2010] blocage et des bugs sur un fichier excel qui baisse 4MO
    Par a.ouguerzam dans le forum Macros et VBA Excel
    Réponses: 23
    Dernier message: 05/05/2015, 12h12
  2. [WD-2007] Comment alléger fichier contenant des effets sur les images
    Par otarie10 dans le forum Word
    Réponses: 11
    Dernier message: 18/09/2010, 12h09
  3. Compilation d'un fichier contenant des accents
    Par LG59 dans le forum Langage
    Réponses: 9
    Dernier message: 26/05/2006, 15h56
  4. Réponses: 2
    Dernier message: 22/05/2006, 00h07
  5. Renommer des fichiers contenant des espaces
    Par MatRem dans le forum Linux
    Réponses: 6
    Dernier message: 28/04/2006, 08h21

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