Re: Rajout de lignes |
Titre du sujet : Re: Rajout de lignes par Guy le 21/09/2009 14:36:57 Bonjour, Le classeur uht2.xls ne roule pas. Feuille lundi A69:R71 = #VALEUR Feuille Feuil20 une vingtaine de #REF Dans le code Bouton de la feuille lundi GRAPH -> Module1, fonction trier() "Variable non définie" : xlSortValues. AutoFilter n'a pas de méthode Sort. Et ActiveWorkbook.Worksheets("jeudi") donne évidemment des maux de tête au compilateur; pas de feuille "jeudi", néant, zéro, aucune. Et pourquoi ActiveWorkBook, as-tu l'intention de travailler sur un autre classeur ailleurs dans le code? Bouton de la feuille lundi RETOUR -> Module3, fonction RETOUR4() Sheets("ACCUEIL").Select "L'indice n'appartient pas à la sélection". Normal, pas de feuille "ACCUEIL". Aussi, pourquoi écrire Range("C4").Select Selection.ClearContents au lieu de Range("C4").Clearcontents C'est une (mauvaise) habitude très répendue de cibler des plages en les activant et en les sélectionnant. Au lieu d'écrire Worksheets("toto").Activate Worksheets("toto").Range("A1:IV35").Select Selection.ClearContents ne vaut-il pas mieux écrire, avec le nom de code de la feuille "toto" que nous supposerons être Machin : Machin.Range("A1:IV35").ClearContents De même Sheets("ACCUEIL").Select dans RETOUR4, Module3 sélectionne une feuille en vue d'un traitement avec des Range("...").Quelquechose Ce qui rend le code très difficile à suivre. Alors que travailler directement avec le nom de code des feuilles simplifie grandement le débroussaillage du code et l'intention du codeur. Machin.Range("A1:IV35").ClearContents cible directement la feuille au nom de code Machin alors que Range("A1:IV35").ClearContents rencontré ici ou là dans le code ne donne aucune information sur la feuille actuellement visée et entraine un effort considérable et bien inutile pour le réviseur de code. Cordialement, Guy |
Forums