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 :

Mauvaise maitrise sortie procédure


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 29
    Par défaut Mauvaise maitrise sortie procédure
    Bonjour à tous,

    je bute sur un pb persistant.

    L'exécution d'un code vba ne correspond pas à mes attentes, et je "donne ma langue au chat" ....

    Inévitablement, je dois faire une erreur de logique, mais ou ?

    Ci-joint petit fichier écrit pour simuler le pb.

    Merci d'avance pour votre aide.
    Fichiers attachés Fichiers attachés

  2. #2
    Membre éclairé Avatar de zandru
    Homme Profil pro
    Ingénieur conception mécanique
    Inscrit en
    Mars 2008
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur conception mécanique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2008
    Messages : 507
    Par défaut
    Bonjour et bienvenu sur le forum,

    Nous sommes beaucoup ici à ne jamais télécharger les pièces jointes (il est plus simple et plus clair de discuter sur des bouts de code insérés dans les discussion).

    Peux-tu nous décrire ton problème et nous donner le code qui te pose problème directement dans ton message?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 29
    Par défaut
    Citation Envoyé par zandru Voir le message
    Bonjour et bienvenu sur le forum,

    Nous sommes beaucoup ici à ne jamais télécharger les pièces jointes (il est plus simple et plus clair de discuter sur des bouts de code insérés dans les discussion).

    Peux-tu nous décrire ton problème et nous donner le code qui te pose problème directement dans ton message?

    Merci de ta réponse, je vais tenter de décrire mon pb sans fichier ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Macro4()
     
    Application.EnableEvents = True
      Sheets("Of ouverts").Select
      ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotCache.Refresh
    MsgBox (Application.EnableEvents)
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Function semaine_num(ddate)
    Dim x, y
    x = Int((ddate - 2) / 7) + 0.6
    y = 52 + 5 / 28
    x = Int(x - y * Int(x / y)) + 1
    If Month(ddate) = 12 And x = 1 Then x = 53
    semaine_num = x
    End Function
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Worksheet_Change(ByVal Target As Range)
        Application.EnableEvents = False
        Sheets("Of ouverts").Select
        Range("e13:M900").Select
        Selection.Clear
        Application.EnableEvents = True
    End Sub


    Ces procédures / fonctions sont représentatives de mmon pb.

    Je lance macro4, qui recalcule un tcd, qui modifie donc des valeurs dans la feuille of ouverts, et qui active donc worksheet_change.

    Mon pb est que cette dernière procédure ne s'éxecute pas totalement. Lorsque l'instruction selection.clear s'éxecute, la fonction semaine_num est appelée directement sur y=52... et l'éxecution se stoppe --> on ne revient pas dans worksheetchange --> application.enanbleEvents ne revient pas à true, et le pg est bloqué.

    Je ne comprends pas pourquoi la fonction semaine est appelée à ce niveau, et pourquoi la sortie des enchainements se fait incorrctement.



    Merci de vos avis et bonne fin de soirée

  4. #4
    Membre éclairé Avatar de zandru
    Homme Profil pro
    Ingénieur conception mécanique
    Inscrit en
    Mars 2008
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur conception mécanique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2008
    Messages : 507
    Par défaut
    Bonjour,

    merci pour ces précisions,

    Où est appelé ta fonction "semaine_num(ddate)" ?

    Ce que je suppose c'est que une action faite dans "Private Sub Worksheet_Change(ByVal Target As Range)" crée un événement qui lui appelle ta fonction.

    Pour visualiser ton problème, il faut faire executer ton code en mode pas-à-pas.
    crée un point d'arrêt (F9) sur un de tes premières lignes de Private Sub Worksheet_Change(ByVal Target As Range)" puis regarde ce que VBA fait avec des appuis successifs sur F8.

    PS: n'oubli pas les balises code

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 29
    Par défaut
    C'est bien ce que j'ai fait, et la fonction est appelé lorsque l'instruction select.clear est éxécutée.

    Bizarre .....

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 29
    Par défaut Fonction aujourdhui
    Par contre, j'ai une zone avec la fonction aujourdhui qui me semble poser pb.
    L'idée était de faire les calculs avec la date du jour, mais il semble qu'elle contiene aussi l'heure. Cela crée peut-être des mises à jour permanentes.

    Si je fais un copier coller valeurs sur cette zone, je n'aai plus de pb.

    A cogiter

  7. #7
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonsoir.

    Après un coup d'oeil rapide, je me demande si ce n'est pas plutôt le rafraîchissement du cache qui provoque un calcul de la feuil1.

    Cordialement,

    PGZ

Discussions similaires

  1. Réponses: 3
    Dernier message: 24/08/2010, 10h40
  2. [Débutant]Procédure avec paramètres entrée / sortie
    Par jeromejanson dans le forum Langage
    Réponses: 13
    Dernier message: 10/10/2005, 08h30
  3. Format de données en sortie d'une procédure stockée
    Par Martin Sylvie dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 22/02/2005, 12h02
  4. Récupération des paramètres en sortie d'1 procédure stockée
    Par navis84 dans le forum Bases de données
    Réponses: 1
    Dernier message: 23/12/2004, 11h40
  5. Procédure stockée avec param de sortie:marchepas av ADO
    Par Fabby69 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 14/10/2004, 12h04

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