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 :

Des boutons qui ne fonctionnent pas & autres galères !


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 3
    Par défaut Des boutons qui ne fonctionnent pas & autres galères !
    Bonjour à tous,

    Vous ne me connaissez évidemment pas étant novice sur le forum, mais de mon côté, je crois avoir arpenté vos posts et ceux d'autres forums en long, large, travers, dessus, dessous et en profondeur sans solutionner plusieurs problèmes dans un fichier excel (http://cjoint.com/?0HBt2yQQkWj)

    Et c'est précisément là que je fais appel à vos lumières parce que si j'ai réussi à en arriver aussi loin déjà, c'est complètement grace aux différentes solutions que vous avez déjà pu proposer à d'autres ! Et je vous remercie pour ça !

    Bref, voilà le topo :
    Il s'agit d'un fichier pour des tests agronomiques

    Le fichier contient :
    - un premier onglet avec une liste de variétés et leurs répétitions (feuille Liste)
    - Une feuille (Saisie) qui contient les valeurs & un bouton ''actualiser les TCD" qui pose problèmes
    - plusieurs feuilles avec des TCD divers et variés
    - des feuilles de récap & analyse stat

    ________________________
    Le/les problèmes sont les suivants

    1/ Le bouton de la feuille Saisie
    Il m'a l'air de fonctionner nickel, la macro tourne et les tcd se mettent bien à jour et les (blank) & "" sont bien masqués, parfait
    Le soucis est que si je re-clic sur le bouton une seconde fois, il m'annonce que tout a été mis à jour sans réfléchir aussi longtemps que la première fois, et ca me parait louche... So, What's up, Doc ? Est-ce normal ?
    Par contre, si je modifie les TCD et que je reviens sur cette feuille et re-clic, alors il re-fonctionne....

    2/Des mises à jour de dates (dans un filtre tcd) qui ne se font pas
    J'ai cru voir que le probleme était récurrent, une histoire de format de date Américaine (vba) vs du_pays (excel), j'ai essayé pas mal de méthodes et rien n'y fait, j'ai beau tenter, retenter, je commence à avoir envie d'appuyer serieusement sur la détente si vous me permettez le jeu de mollet...

    Plus sérieusement :
    Dans la feuille TCD quantitatif par variété, il y a un tableau concernant la 'précocité', sur lequel il y a un filtre date. Au cours du travail, on est amené à sélectionner seulement certaines des dates (depuis la plus petite de la liste, jusqu'à une date donnée, admettons, le 9/07/2013 par exemple)

    Ce travail se fait nécessairement à la main

    Ensuite j'insère la date de pécocité (dernière date cochée du filtre de ce TCD) dans une case au dessus (K3)

    Et là ma macro ne marche pas.... Pour faire très simple je voudrais qu'elle aille dans la feuille précédente (TCD quantitatif par parcelle) et me sélectionne exactement les mêmes dates... Et c'est là que tout coince

    Dans mon fichier j'ai mis deux voies d'étude que je teste :
    - une directement dans le code vba de la page, qui démarre dès que K3 est modifiée
    - Une (Module 1 dans vba) que j'avais assigné à un bouton, et qui ne fonctionne pas non plus...

    _________________________

    Bref, je crois avoir facturé un paquet d'heures sup à ma boite, maintenant je travaille le soir chez moi, mais mon sommeil en pâti fortement d'où mon appel à vos Cognitos !


    Merci d'avance pour toute aide !

    Antoine

    Edit : Je suis sous Excel 2013 sur mon ordi perso & 2010 sur celui du bureau, et ce fichier a été créé sous Excel 2010 ... Si ça peut aider !

  2. #2
    Membre éclairé Avatar de verredewhisky
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Janvier 2013
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Janvier 2013
    Messages : 63
    Par défaut
    Et pis sinon ça va ?

    Sérieusement, faut montrer du code et poser une question à la fois sinon personne t'aidera.
    problème feuille bouton saillie, tu peux montrer le code du bouton et expliquer ce que tu aimerais faire avec ce bouton ?

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 3
    Par défaut
    Désolé si je t'ai froissé,
    Je pensais que ça n'était pas utile de copier un morceau de code directement dans le message si le fichier était joint, vu que les codes sont dedans. Mais du coup je rectifie, et je suis d'accord, un problème à la fois :

    Donc, mon soucis avec le bouton de la feuille saisie est le suivant :
    je crois qu'il fonctionne, ne tout cas il ne renvoie pas d'erreur, mais si je rajoute des valeurs dans la saisie ou que je bosse sur les TCD et que je reclique dessus, parfois il retourne, parfois il me dit direct ''c'est tout bon tout a été mis à jour", mais sans rien mettre à jour.. Comme si il y avait un délai ou une condition de réactivation, alors que j'ai pas l'impression ..
    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
     
    Sub Mise_a_jour_des_TCD()
    '_______définition des variables_______________________________________________________________________
    Dim ws As Worksheet
    Dim wb As Workbook
    Dim TCD As PivotTable
    Dim CHAMP As PivotField
    Dim p As PivotItem
    Set wb = ThisWorkbook
    '_______Conditions d'application de la macro : si il y a des données dais saisie________________________
        If Cells(11, 7) <> "" Then
    '_______Freeze de l'écran, pour ne pas trop ralentir le système_______________________________________________________________________________
            Application.ScreenUpdating = False
    '_______MAJ des TCD_____________________________________________________________________________________
                For Each ws In wb.Worksheets
                    For Each TCD In ws.PivotTables
                        For Each CHAMP In TCD.PivotFields
                            For Each p In CHAMP.PivotItems
                                If p.Name = "(blank)" Then
                                    p.Value = False
                                End If
                                If p.Name = """" Then
                                    p.Value = False
                                End If
                            Next p
                        Next CHAMP
                    Next TCD
                Next ws
    '_______défreeze de l'écran____________________________________________________________________________
            Application.ScreenUpdating = True
    '_______Message de réussite____________________________________________________________________________
            MsgBox ("Les TCD ont été mis à jour, reste à définir la précocité & vérifier les récap")
    '_______Fin des conditions_____________________________________________________________________________
        End If
    '_______Fin de la macro_____________________________________________________________________________
    End Sub
    Merci d'avance, et encore désolé.

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 3
    Par défaut
    Me revoilà,

    Pour développer un peu mon problème, voilà un bout de code qui correspond à ma première manière de coder ma macro de mise à jour :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Sheets("TCD quantitatif par parcelle").Select
                            With ActiveSheet.PivotTables("Tableau croisé dynamique8").PivotFields("N° parcelle")
                                .PivotItems("(blank)").Visible = False
                            End With
                            With ActiveSheet.PivotTables("Tableau croisé dynamique8").PivotFields("Variété")
                                .PivotItems("").Visible = False
                                .PivotItems("(blank)").Visible = False
                            End With

    En gros j'ai une macro très longue, qui sélectionnait chaque feuille, chaque tcd avec leur nom et qui changeait (blank) et "" en masqué.
    Alors j'ai voulu mieux coder et faire des boucles qui disent "Pour toutes les feuilles, pour tous les tcd, etc..." et là, ca ne fonctionne plus :

    L'erreur :
    ERREUR 1004 "Impossible de définir la propriété Visible de la classe PivotItem"

    La macro en question (celle de mon second post, mais mise à jour):

    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
     
    Sub Mise_a_jour_des_TCD()
    '_______définition des variables_______________________________________________________________________
    Dim ws As Worksheet
    Dim wb As Workbook
    Dim TCD As PivotTable
    Dim CHAMP As PivotField
    Dim p As PivotItem
    Set wb = ThisWorkbook
    '_______Conditions d'application de la macro : si il y a des données dais saisie________________________
        If Cells(11, 7) <> "" Then
    '_______Freeze de l'écran, pour ne pas trop ralentir le système_______________________________________________________________________________
            Application.ScreenUpdating = False
    '_______MAJ des TCD_____________________________________________________________________________________
                For Each ws In wb.Worksheets
                    For Each TCD In ws.PivotTables
                        For Each CHAMP In TCD.PivotFields
                            For Each p In CHAMP.PivotItems
                                If p.Value = "(blank)" Then
                                'C'est ici que tout coince ...
                                    p.Visible = False
                                End If
                                If p.Value = """" Then
                                'Idem avec celle là, logique :-)
                                    p.Visible = False
                                End If
                            Next p
                        Next CHAMP
                    Next TCD
                Next ws
    '_______défreeze de l'écran____________________________________________________________________________
            Application.ScreenUpdating = True
    '_______Message de réussite____________________________________________________________________________
            MsgBox ("Les TCD ont été mis à jour, reste à définir la précocité & vérifier les récap")
    '_______Fin des conditions_____________________________________________________________________________
        End If
    '_______Fin de la macro_____________________________________________________________________________
    End Sub

    Qu'en pensez vous ?

Discussions similaires

  1. [CS3] Boutons qui ne fonctionnent pas
    Par yacine_sy dans le forum Flash
    Réponses: 6
    Dernier message: 02/09/2009, 03h37
  2. Bouton qui ne fonctionne pas
    Par presser dans le forum Excel
    Réponses: 7
    Dernier message: 20/02/2009, 09h57
  3. [MySQL] Code PHP sur des UPDATE qui ne fonctionne pas
    Par bilou95 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 08/10/2007, 11h57
  4. [VS2003] : création des dataset qui ne fonctionne pas
    Par skystef dans le forum Visual Studio
    Réponses: 0
    Dernier message: 20/08/2007, 16h11
  5. Des tableaux qui ne fonctionnent pas ?
    Par kevinf dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 18/12/2006, 19h22

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