VBA en mode pas à pas je suis parasité par des fonctions

Mouftie Messages postés 234 Statut Membre -  
Mouftie Messages postés 234 Statut Membre -
Bonjour,
Je suis en auto-formation vba, et je suis régulièrement parasitée par des fonctions que j'ai copiées dans mon personal.xlsb ou qui sont sur un ficher excel ouvert en parallèle.

Aujourd'hui, j'ai un classeur 1 où je fais des exercices dans un module 1 et en parallèle, j'ai le fichier d'exercices 'VBA pour EXCEL 2003 - Pour les Nuls.xls' (qui contient pleins de macros et de fonctions).
je viens d'écrire une macro :
Sub remplissageSelonDde()
Dim ValDep As Integer, ValFin As Integer, Cmpt As Long
ValDep = InputBox("A combien voulez-vous commencer ?")
ValFin = InputBox("Combien de cellules voulez-vous saisir ?")
For Cmpt = 1 To ValFin
ActiveCell.Offset(Cmpt - 1, 0) = ValDep + Cmpt - 1
Next Cmpt
End Sub
et quand je la lis en mode pas à pas, je pars sans arrêt sur les fonctions pour les Nuls ; j'ai voulu passer la fonction en mode commentaire, pour continuer ma lecture, mais il est parti sur une autre. je ne voudrai pas fermer / ouvrir sans arrêt les Nuls...
Y a t-il une solution svp ?
Merci

12 réponses

  1. foo
     
    bonjour

    mettre au debut de ta macro

    Application.EnableEvents=False

    et a la fin

    Application.EnableEvents=True

    je pense que ca doit etre ca sinon un mdel de ton fichier serait plus simple
    pour voir ton probleme

    A+

    Maurice
    1
  2. Mouftie Messages postés 234 Statut Membre 17
     
    Bonsoir Maurice,
    Je pense aussi que tu as vu le pb ; c'est pas la première fois que je post cette question, tu es le 1er à répondre qq chose qui fonctionne.
    Si tu pouvais m'expliquer ce qui se passe, ce serait sympa, vu que F1 ne m'éclaire pas vraiment.

    J'ai essayé sur 4 macros différentes, je ne suis plus embêtée...
    Merci
    0
  3. Mouftie Messages postés 234 Statut Membre 17
     
    Bonjour,
    Est-ce que mentionner
    Application.EnableEvents=False 
    en débute de la 1ère procédure et
    Application.EnableEvents=true
    à la fin de la dernière procédure module suffit ?
    Ou bien faut-il mettre les 2 dans chacune des procédures ?
    Et si on les met dans les fonctions, est-ce que ça sert à qq chose ?
    Merci
    0
  4. foo
     
    Bonjour

    on mes Application.EnableEvents pour desactiver les code qui se trouve dans les feuilles

    moi je fait que des Modules donc j'ais pas besoin de mettre ca

    A+

    Maurice
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Mouftie Messages postés 234 Statut Membre 17
     
    Bonsoir Maurice,
    Merci pour ta réponse,
    moi aussi, je ne fait que des modules ??
    D'ailleurs, je viens de vérifier sur une grosse application que j'ai faite au bureau, qui a ce pb quand je fais du pas à pas...
    Il n'y a aucun code dans les feuilles et je suis toujours "parasité" avec une fonction.
    J'ai ajouté des
    Application.EnableEvents
    à toutes mes procédures mais ça ne fonctionne pas.
    C'est une application que je traîne comme un boulet ; c'est l'une des premières que j'ai écrite pour récupérer des données qui viennent d'outils de requête.
    Comme je ne maîtrise pas les array, ça mouline bien ! et ça bug de temps en temps, car je dois croiser des données par nom et par date (avec des noms qui ne sont pas normalisés).
    Impossible de la mettre en ligne, je ne sais plus quoi faire, à part maîtriser les array...
    Merci quand même
    0
  7. foo
     
    re
    donne un model pour voir si je trouve le probleme

    A+
    Maurice
    0
  8. Mouftie Messages postés 234 Statut Membre 17
     
    Merci Maurice,
    mais je ne vois vraiment pas comment en faire un modèle (sans faire de jeux de mots laids),
    il y a 19 pages A4 de code, sur un an de données, il y a 15 000 lignes sur 22 colonnes ; enfin, elle fait 6 800 Ko.
    Ce n'est pas le fichier en lui-même qui pose pb, puisque ce n'est que des TCD, c'est la mise à jour de la base de données, où j'ouvre 3 fichiers, l'un après l'autre.
    Sur chacun, je traite les noms (avec des find), je convertis les données, recopie les dates pour chaque noms.
    Une fois les 3 fichiers traités, je prends le premier que j'utilise comme point de départ, puis j'ouvre le second et là commence le pb, je vérifie date / nom et j'insère des lignes à chaque fois qu'il y discordance.
    J'ouvre le 3ème fichier et je recommence ma vérification.
    A la sortie, je vérifie à la main car j'ai pleins d'erreur de date / nom identique sur 2 lignes mais avec les données également sur 2 lignes.
    Enfin j'ajoute cette base de donnée à celle de l'application et je mets à jour mes TCD.

    j'ai bien pensé utiliser une table agents (qui contient 225 personnes), y ajouter tous les jours travaillés du mois à traiter et ensuite remplir les données par des formules du style Index Equiv, mais je vais me retrouver avec pleins de lignes vides de données si les gens sont absents...
    Ça me ferait un fichier de 46 000 lignes au lieu de 15 000, sur un an.
    Remarque je pourrais toujours faire une routine pour supprimer les lignes inutiles...
    le pb, c'est de générer pour chaque nom les jours ouvrés du mois n-1 ; ça je ne sais pas faire...
    0
  9. foo
     
    re
    tu fait un model avec quelque nom et la macro que tu veux faire

    et on avance pas a pas

    A+
    Maurice
    0
  10. Mouftie Messages postés 234 Statut Membre 17
     
    Bonsoir Maurice,
    Tu m'as boustée, le fait d'avoir rédiger ce qui me trottait dans la tête, mais que j'avais un peu la flemme de reprendre, et surtout tes encouragements m'ont donnée envie de m'y remettre.
    Pour l'instant, je suis bien partie, j'ai réussi à monter ma base de données sur une semaine de jours ouvrés, ensuite je récupère les données avec des sommeProd. et comme je travaille avec des tableaux (Excel) on écrit une formule et la colonne se remplit...
    Demain, j'essaie de trouver le temps d'insérer par une procédure la semaine suivante.
    Enfin, quand je reprendrai les fichiers réels, je verrai bien si le pb revient, avec notamment, la fonction qui traite les noms en enlevant tous les signes et accents...
    Je me permettrai de te tenir au courant.
    Merci encore
    "et on avance pas a pas " Tu as beaucoup d'humour...
    ;>
    0
  11. Mouftie Messages postés 234 Statut Membre 17
     
    Bonsoir Maurice,
    Comme promis je te tiens au courant ;
    J'ai réécrit mon application, ça semble tourner beaucoup mieux ; demain je fais les tests avec les vrais fichiers, mais c'est sur la bonne voie enfin...

    mais cela ne m'empêche pas d'être tout le temps interrompue avec une fonction qui met les Noms Prénoms en majuscule ; je suis obligée soit de faire mon pas à pas avec des stops (F9) soit de bloquer la fonction avec des apostrophes...
    Quelque soit le poste de travail, quelque soit l'application sur laquelle je travaille, quelque soit la fonction présente, s'il y a une fonction dans projet, elle me parasite...
    le pire c'est que ce n'est pas à chaque fois... et pas toujours sur la même macro...

    En tout cas merci de m'avoir "bougée".
    0
  12. foo
     
    Bonjour

    Pour tes majuscules donne au moins un model pour voir ce que tu à fait

    A+

    Maurice
    0
  13. Mouftie Messages postés 234 Statut Membre 17
     
    Bonjour foo,
    Désolée de ne pas avoir répondu, mais je doit absolument finir mon projet.
    Je reviendrai sur ce pb dès que j'aurai fini.
    Encore merci
    0