Re : Aide sur erreur
Salut matiousky et le forum
- "macro apprentissage": tu parles de macros faites par enregistrement?
Comme je ne sais pas les nommer, c'est comme ça que j'appelle les macro>>Nouvelle Macro
- par réattribution de code de quoi parles-tu ? Quand je dois modifier un code, je fais clic droit sur le bouton et je modifie.
ton bouton s'appelle CommandButton1 quand tu cliques sur "visualiser le code", tu crées une macro : CommandButton1_Click
Si tu renommes ton bouton (ex Cde_A_Click) la macro n'évolue pas et ne fonctionne plus. Si tu "Visualises le code", Excel crée une nouvelle macro (Cde_A_Click) qui est lancée par action sur le bouton où il faut mettre le code de la première macro pour que le fonctionnement reste identique, et supprimer l'ancienne => c'est ce que j'appelle réattribuer le code
- pourquoi dans le code que tu me proposes tu mets les variables visibles en commentaire ? (Avec un apostrophe devant)
Afficher/masquer les feuille n'a pas d'utilités pour le fonctionnement de la macro. Mais comme tu es en construction de macro, en mode pas-à-pas, ça peut être utile. Donc, plutôt que de les supprimer directement, pendant toute la durée de réglage, je les mets en commentaire. C'est plus facile que de les supprimer, et de les recréer si besoin.
De plus, quand je cherche à améliorer mon code, des fois, je supprime des lignes qui semblent inutiles, mais ce n'est pas toujours vrai ^^
Pareil : au lieu de rechercher ce qui était inscrit, je mets les lignes en commentaires, et je crées ma ligne de code "meilleure". c'est plus facile pour faire machine arrière
- a quoi sert la variable "Activate" dans le code suivant?
Range("C6,C7,C8,C9,C10").Select
Range("C10").Activate
Alors "à rien, c'est pour faire avancer le schmilblik".
Excel, dans la macro apprentissage" codifie exactement toutes les opérations effectuées. Hors, sur Excel, quand tu fais une multi-sélection, il y a toujours une cellule active => c'est ce que fait Excel.
Quand tu édites la cellule A1 en entrant"A" => pour valider l'entrée, tu appuies sur <Enter> ce qui te fais passer à la cellule en dessous : ça ne sert à rien, puisque ce que tu as voulu faire, c'est entrer une valeur
La macro apprentissage code
Range("A1")="A" => c'est effectivement ce que tu veux faire
Range("A2").Select => comme avec enter tu es passé à la ligne suivante, tu as bien sélectionné cette cellule, mais ce n'es pas ce qui t'interesses, c'est juste une instruction "parasite" pour du code VBA
- j’ai essayé de retravailler mes codes dans ton sens sur un fichier, voici le résultat:
Application.ScreenUpdating = False
With Sheets("Simulation")
.Visible = True
.Rows("135:150").Hidden = False
.Rows("137:138").Hidden = True
.Visible = False
End With
Cependant le code ne marche pas, à la 4ème ligne le message est : « Impossible de définir la propriété Hidden de la classe Range ».
Peut être dois-je réattribuer mon code ?
Aucune certitude, juste une supposition: Quand tu rend visible une feuille, Excel considère que tu sélectionnes la feuille, puis tu modifie sa propriété "visible". Ores, tu es dans un module de classe "Feuille" qui ne supporte pas que tu t'occupes d'une autre feuille que celle qui lui est liée (c'est pas beau la jalousie !) => dans ce style de problème, je mets en commentaire les instructions, puis je le re-rends actives en supprimant l'apostrophe, jusqu'à ce que je trouve l'instruction qui plante
Toujours le même principe : avant de supprimer, je m'assure que je ne le regretterais pas.
Quand j'ai un fichier de test avec un code qui buggue : je visualise les modification en mettant en commentaire et en finissant la ligne par ----- pour celles à supprimer et par +++++++ pour celles ajoutées, ou des fois par ***** (dépend de mon humeur)
quand j'ai juste le code, ce qui me semble superflu ne l'est peut-être pas => donc, je mets en commentaire, avec à charge de l'utilisateur de tester la justesse de mes modifs : ce qui marche sur un fichier chez moi ne fonctionne pas forcément chez l'utilisateur : dépend de la configuration d'Excel, de l'emplacement du code, des données réelles, etc...
Créer des macros et répondre sur un forum sont souvent différents.
Pour la création, tu maîtrises tout, et comme c'est toi qui connait, tu utlises des codes connus, des habitudes de travail et des natures des données traitées.
pour aider, on a que ce qu'on veut bien donner : est, des fois, c'est pas veaucoup ^^. Et donc, tu dois extrapoler sur ce que tu n'as pas, en pensant que si on ne te les donnes pas, c'est par manque de compétence et pas mauvaise volonté.
A+