GénérerTablesMensuellesMMR ne s'exécuté pas

Bonjour,

Mis à part les chiffres erronés, la table mensuelle de février 2025 ne se remplit pas. La colonne mois est incorrectement remplie pour Janvier 2o25 (1 au lieu de janvier 2025).

Sauf erreur de ma part, il me semble bien que le mois en entier est en colonne 38 et non 36, donc:

            Tablo(N)(Tj(N), 8) = tBDMenus(I, 38)

Cdlt

Bonjour Arturo83,

Donc c'et toujours l'histoire des chiffres erronés. Et pour le supplément de commentaires ?

Et pour le supplément de commentaires ?

Voyons, réfléchissons deux secondes.
Vous cherchez à reproduire par vous-même des codes déjà élaborés par d’autres — ce qui montre clairement votre volonté de comprendre leur fonctionnement. Très bonne démarche !

Alors, allons un peu plus loin dans cette envie de maîtrise :
puisque le code fonctionne correctement, il vous suffit de l’exécuter pas à pas (avec F8), d’observer les effets produits après chaque ligne (ou groupe de lignes), puis de noter ces observations sous forme de commentaires.

Je suis convaincu que ce travail d’analyse personnelle vous sera bien plus bénéfique que si quelqu’un d’autre vous faisait ces commentaires à votre place.
Croyez-moi, vous en sortirez grandi — et surtout plus autonome dans vos futurs développements.

Cdlt

Je vous remercie mais je ne suis pas convaincu que je vais arriver à voir le fonctionnement avec f8. Je vais cependant essayer, je verrai cz que cela va donner.

Débogage, clic sur pas à pas détaillé : le curseur revient au début de la procédure : que dois-je faire maintenant ? Faut-il ouvrir la fenêtre d'exécution (comment l'ouvre-t-on ) ?

C’est déjà très bien d’essayer, c’est exactement comme ça qu’on progresse !
Ne vous inquiétez pas si, au début, vous ne voyez pas tout de suite ce qui se passe avec F8.
L’important, c’est d’observer pas à pas : regardez quelles cellules changent, quelles variables prennent quelles valeurs, et petit à petit, vous commencerez à comprendre la logique du code.

C’est normal que ce soit un peu flou au départ, mais c’est un excellent exercice — c’est en le faisant que tout devient plus clair.

tBDMenus = Range("TabBDMenus").Value 'on le rempli en récupérant les données de la plage.

je suis sur cette ligne. Que devrais-je voir et où ? Et pour la fenêtre Exécution ?

Bonjour à tous,

@Budgets, Il me semble que le sujet à déjà été abordé.

Vous devriez faire apparaître toutes les fenêtre utiles pour la programmation :

Je lance le code en mettant le curseur dans la procédure Générer_TablesMensuellesMMR() et je tape F8

Je fais du pas à pas jusqu’à la ligne For I = 1 To 12 par exemple.

Voici la capture :

excel hs3uao8xmt

Maintenant je peux visualiser dans mes fenêtres de variables locales et espions la valeurs des variables. (Bon moi j'ai un double écran c'est plus facile je n'est pas Docker le fenêtres)

jq95vssmu0

Dans la fenêtre des variables locales vous pouvez voir par exemple la valeur de tEntêteMMR

image

ou bien de tBDMenus.....

Allez j'ai continuer l'exécution de la procédure jusqu'à : With P

  • F8 exécute le code ligne par ligne
  • CTRL + F8 exécute le code jusqu’au curseur (Il faut préalablement sélectionner une ligne du code.)
image

Vous pouvez aussi ajouter un espion, Par exemple vous voulez savoir ce que contient P.Range("A1").Value.

Cliquez sur Menu/Debogage/Ajouter un espion.

image

Ensuite vous ajouter l'expression de l'espion

image

Et voilà vous avez les informations de votre espion dans la fenêtre des espions

image

Quelques conseils maintenant sur le code en général. Je le dis et le redis, vous devez :

  • Donner des noms explicites à vos variables (Une variable qui se nomme "P" c'est juste pas possible) Penser aux gens qui vont lire le code, ils ne sont pas dans votre tête.
  • Soyer explicites aussi dans le chemins des procédure
    • MGestionTablesMensuelles.Générer_TablesMensuellesMMR sera plus explicite que :
    • Générer_TablesMensuellesMMR (Ici on doit chercher la procédure dans tous les modules)
  • Éviter les accents VBA est Anglais et cela peut poser des problèmes.
  • Au lieux de travailler avec les noms de feuilles, utiliser plutôt leurs CodeName, ou bien utiliser des constantes cela vous permettra de ne changerqu'à un seul endroit le noms des feuilles utilisées. Ceci est aussi valable pour les tableaux.

Voilà pour ce premier jet...

Petit édit concernant la fenêtre exécution.

Elle peut permettre pas mal de chose des exemple ci-dessous :
Voir le résultat d'une fonction intégrée à VBA ici Format

image

Vous pouvez aussi lancer une procédure publique :

image

Et bien d'autres encore...

Bonjour Jean-Paul,

Merci pour ces précieux renseignements. Pour la fenêtre exécution, comment procéder pour la faire apparaître (en supposant que cela soit possible avec la version professionnelle 2024) ? Pour ce qui est des noms, par exemple P, c'est begood qui a écrit cela. Personnellement, je sis pour des noms plus explicites.

Re,

Toute les fenêtres sont disponibles dans le menu Affichage :

image

Si votre PC est assez puissant, je vous conseille de télécharger Rubberduck ici : https://rubberduckvba.com/

Il peut vous permettre de faire pas mal de choses, y compris de renommer vos variables.

Après avoir apporté les modifications qui s'imposaient un peu partout, la génération tables mensuelles MMR s'exécute correctement. Merci à tous.

dddddd = permet d'avoir une date longue (jeudi 06 novembre 2025 par exemple)

Bien,

Et, peut-on voir ce fameux code finalisé ?

dddddd = permet d'avoir une date longue (jeudi 06 novembre 2025 par exemple)

Un peu de lecture : https://learn.microsoft.com/fr-fr/office/vba/language/reference/user-interface-help/format-function-...

14menus.xlsm (287.03 Ko)

Bon très bien?

Pouvez-vous nous dire ce qu'est censé faire cette procédure ? Car en l'état actuel elle répète 12 fois le même code.

Pour l'instant ce n'est qu'un test pour voir si elle fonctionne correctement en créant les douze tables. Autrement, pour chaque mois, chaque ligne, ce sera très différent. Voir le fichier BeGood joint dans mon message initial, feuille tables MMR.

J'ai fait quelques tests : j'ai afficher les fenêtres Espions, Exécution et Variables locales. Pour l'instant, toutes sont vides. En étant sur for i = 1 to 12, que devrais-je voir ou saisir dans chacune des fenêtres ?

Rechercher des sujets similaires à "generertablesmensuellesmmr execute pas"