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 :

Faire fonctionner une macro liée à un onglet masqué


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Pilotage des performances
    Inscrit en
    Novembre 2015
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Pilotage des performances
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2015
    Messages : 41
    Par défaut Faire fonctionner une macro liée à un onglet masqué
    Bonjour à tous ,

    Une fois encore j'ai besoin de votre expertise pour résoudre une problème .

    J'utilise deux macro pour pouvoir modifier un graphique (un coup pourcentage et l'autre coup valeur). Jusque là tout va bien.

    Pour ce faire je m'appuie sur un second onglet "base calcul", hors comme tous projet une fois terminé on masque la base.
    Et là, la ma macro ne fonctionne plus.

    J'ai donc essayé de la reprendre en effectuant l'affichage de l'onglet, l'opération nécessaire, puis de masquer à nouveau l'onglet (puis arrêt de l'enregistrement).

    Mais cela ne fonctionne pas, j'ai une erreur d’exécution 1004 qui s'affiche.

    Que dois-je faire ? :/

    Merci d'avance

  2. #2
    Membre expérimenté

    Homme Profil pro
    Technical Account Manager
    Inscrit en
    Avril 2015
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Technical Account Manager

    Informations forums :
    Inscription : Avril 2015
    Messages : 224
    Billets dans le blog
    1
    Par défaut
    Salut,

    Peux-tu nous mettre en commentaire le code de ta macro ?

    Sans oublier la balise

  3. #3
    Membre averti
    Homme Profil pro
    Pilotage des performances
    Inscrit en
    Novembre 2015
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Pilotage des performances
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2015
    Messages : 41
    Par défaut
    Bonjour

    Alors en fait j'ai peut-être trouvé une alternative.

    Plutôt que de changer d'onglet je peux modifier les valeurs directement sur mon graphique (car lié à un TCD).
    Cependant la macro m'affiche également une erreur 1004.

    Voila le code de la macro

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub Bouton8_Cliquer()
    '
    ' Bouton8_Cliquer Macro
    '
     
    '
        ActiveSheet.ChartObjects("Graphique 22").Activate
        With ActiveSheet.PivotTables("Tableau croisé dynamique15").PivotFields( _
            "Nombre de sortis")
            .Calculation = xlNormal
            .NumberFormat = "Standard"
        End With
    End Sub
    La partie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    With ActiveSheet.PivotTables("Tableau croisé dynamique15").PivotFields( _
            "Nombre de sortis")
    est soulignée en jaune :/

  4. #4
    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
    Bonjour, Que vaut activeSheet au moment où ça plante? Est-elle protégée?

    Pouvez-vous rajouter par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        Debug.Print ActiveSheet.Name, ActiveSheet.Visible, ActiveSheet.ProtectContents

  5. #5
    Membre expérimenté

    Homme Profil pro
    Technical Account Manager
    Inscrit en
    Avril 2015
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Technical Account Manager

    Informations forums :
    Inscription : Avril 2015
    Messages : 224
    Billets dans le blog
    1
    Par défaut
    Mmmh... A ta place je ferai simplement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    btn_Click()
       Worksheets("TCD").EntireRow.Hidden= False 
       'Ton code
       '...
       '...
       '...
       '...
       Worksheets("TCD").EntireRow.Hidden= True
    End Sub

  6. #6
    Membre averti
    Homme Profil pro
    Pilotage des performances
    Inscrit en
    Novembre 2015
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Pilotage des performances
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2015
    Messages : 41
    Par défaut
    Bonjour désolé de ma réponse tardive,

    Alors je tiens a précisé que je suis très nul en VBA j'ai aucune base

    Donc j'ai essayé avec le code de xelas 57 de cette façon :
    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
    Sub Bouton7_Cliquer()
    '
    ' Bouton7_Cliquer Macro
    '
     
    '
        Worksheets("TCD").EntireRow.Hidden = False
        Range("D75").Select
        ActiveSheet.ChartObjects("Graphique 22").Activate
        With ActiveSheet.PivotTables("Tableau croisé dynamique15").PivotFields( _
            "Nombre de sortis")
            .Calculation = xlPercentOfRow
            .NumberFormat = "0%"
        End With
     Worksheets("TCD").EntireRow.Hidden = True
    End Sub
    Lorsque je lance la macro j'ai erreur d’exécution n°9 l'indice n'appartient pas à la sélection. :/

    vinc_bilb je ne sais pas te répondre :/

    Si ça peut vous aidez ma macro consiste en à modifié les valeur de mon graphique en %, et je ferais ensuite l'inverse pour les afficher en valeur.
    Ainsi l'utilisateur pourra afficher à son bon vouloir valeur/%.
    Le problème vient t-il du fait que le TCD est sur un autre onglet? (masqué)

    Merci pour votre aide.

  7. #7
    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
    Bonjour,

    Dans quelle sheet est le 'Graphique 22'?
    Vous gérez celà sur la sheet active ..... mais êtes vous bien sur que c'est la bonne?


    Proposition

    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
    Sub Bouton7_Cliquer()
    '
    ' Bouton7_Cliquer Macro
    '
    Dim WshTCD As Worksheet, WshGRAPH As Worksheet
    Set WshTCD = ThisWorkbook.Worksheets("TCD")
    Set WshGRAPH = ThisWorkbook.Worksheets("xxx") 'à modifier
    '
        WshTCD .EntireRow.Hidden = False
        'Range("D75").Select
        WshGRAPH .ChartObjects("Graphique 22").Activate
        With WshGRAPH .PivotTables("Tableau croisé dynamique15").PivotFields( _
            "Nombre de sortis")
            .Calculation = xlPercentOfRow
            .NumberFormat = "0%"
        End With
     WshTCD. EntireRow.Hidden = True
    End Sub

Discussions similaires

  1. [XL-2010] faire excécuter une macro dans plusieurs onglets
    Par fibule38 dans le forum Excel
    Réponses: 2
    Dernier message: 19/11/2015, 13h11
  2. Améliorer et faire fonctionner une macro !
    Par laurent481826 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 26/01/2015, 16h08
  3. Comment faire fonctionner une macro à une heure precise
    Par dreloman dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 29/06/2008, 00h46
  4. Faire fonctionner une application monoposte en réseau
    Par obon dans le forum Bases de données
    Réponses: 3
    Dernier message: 30/04/2006, 10h26
  5. Comment faire fonctionner une scroll bar ???
    Par toto4650 dans le forum MFC
    Réponses: 10
    Dernier message: 18/07/2005, 16h47

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