Rapport de message :*
 

Re: archivage avec userform

Titre du sujet : Re: archivage avec userform
par Guy le 31/10/2009 16:53:55

Bonjour,

Tu dis avoir recopié le code alors comment se fait-il que la procédure UserForm_Initialize() est nommée UserForm_Initialise() ?
Or c'est dans cette procédure que sont référencées les valeurs de liste de cboRefProduit.
Cette procédure, mal  nommée, n'est jamais exécutée : aucune liste n'est par conséquent chargée dans le contrôle.

Corrige le nom de la procédure et ajoute, dans cette même procédure, la valeur du calendrier Calendar1.Value = Date.

Voilà pour ces deux points de ce post.

Le prochain post risques fort d'être : «Je reçois un message d'erreur Erreur de compilation. Variable non définie.»
Et pas qu'une erreur de compilation
      1- Tu as écrit ClaseurSource au lieu de ClasseurSource
      2- Tu as écrit ThisWorkbooks au lieu de ThisWorkbook

Même en corrigeant ces deux erreurs de transcription, je ne dis pas copie je dis bien transcription, tu posteras une énième question comme : «Je reçois un message d'erreur Erreur d'exécution '9' : L'indice n'appartient pas à la sélection.»
Pourquoi? Parce que tu es passé du format de classeur 2007 (.xlsm) au format de classeur 97-2003 (.xls) et que le classeur source Saisie.xlsm n'existe pas, tout simplement pas, dans la liste des classeurs ouverts!

Dans ton profil tu as indiqué travailler avec Excel 2007? Oui? Alors laisse le fichier au format 2007.
Si tu tiens pour des raisons de compatibilité à enregistrer le classeur Saisie.xlsm et tous les classeurs produits au format 97-2003 alors modifie tous les .xlsm en .xls dans le code. Une fois cette modification effectuée ne passe pas ton temps à basculer d'un format à l'autre sinon tu posteras encore et encore des «pouvez-vous m'aider».

Je n'ai relevé que ces quelques points. Il y en a peut-être d'autres, chépas.

N'écris pas les procédure événementielles à la main mais, dans l'éditeur VBA section de code, sélectionne dans la liste déroulante de gauche le nom du contrôle désiré  puis dans la liste déroulante de droite l'événement désiré.

Aussi utilise, jusqu'à l'user s'il le faut, le bouton de menu Débogage/Compiler VBAProject et s'il y a des erreurs de compilation elles apparaitront au débogage pas à l'exécution. Lorsque les variables sont mal écrites, comme c'est le cas ici, VBA ne corrige pas les fautes d'orthographe.
C'est ton boulot d'écrire correctement les noms de variables, d'objets et de procédures.

Toutefois tu peux avantageusement te servir de l'Intellisense comme suit, par exemple :
      1- Tape les premières lettres de Thiswo
      2- En laissant le curseur texte tout à côté du o, tape Ctrl+Espace et une liste déroulante de tout ce qui commence par Thiswo s'affiche.
      3- Sélectionne dans cette liste le mot entier qui te convient. Par exemple ThisWorkbook.

Le procédé s'applique à toutes les variables et tous les objets visibles dans la portée en cours.

Voilà.

Guy