Erreur de compilation

Bonjour tout le monde,

Voilà: j' ai fait une manipulation qu' il ne fallait sur un classeur remplie de macro. je vous explique : j' ai recopié un code pris sur un forum puis j'ai fait alt F11 puis insertion puis module et là dans la fenêtre vierge qui s' est ouverte j'ai collé ce code mais ne l' ai pas validé( je ne savais pas comment faire), et depuis mes macros ne fonctionnent pas. D'ailleurs à l'ouverture et à la fermeture de mon fichier j' ai le message suivant: Erreur de compilation, instruction incorrecte à l' intérieur d' une procédure.

j' imagine que si j' arrive à enlever ce truc que j' ai collé mes macros pourront fonctionner à nouveau. Est- ce aussi simple que je le pense ?

Merci à vous

Bonjour,

Effectivement, on ne peut pas coller du code à l'aveuglette.

Alt-F11 pour entrer dans l'éditeur de macros ( VBE )

Double clique sur chacun des composants dans la colonne de gauche afin de retrouver le code que tu as collé > quand tu l'auras retrouvé > clique dedans puis Ctrl+A pour le sélectionner > "Commenter le bloc".

Si tu ne trouves pas le bouton "Commenter le bloc" ... Bouton droit sur les barres d'outils en haut et ajoute "Edition".

Une fois la macro mise en commentaire, ferme en enregistrant. Rouvre pour t'assurer que ton fichier est revenu à l'état d'avant la manipulation malencontreuse.

Si tout va bien, envoie-nous le code qui t’a posé problème ( utiliser le bouton Code [<\>] pour le mettre sous balise ... afin qu'on détermine où il devrait être placé.

ric

Rebonjour Olivier,

« j'ai fait alt F11 puis insertion puis module » : ok


« et là dans la fenêtre vierge qui s' est ouverte » : OK !!!

ça signifie que tout ce que tu as pu faire dans cette fenêtre n'a pas pu modifier le code VBA qui est dans un autre module !


« j'ai collé ce code mais ne l'ai pas validé (je ne savais pas comment faire) » : y'a pas besoin d'valider un code VBA en cliquant sur un bouton OK : juste après le copier / coller, c'est bon : il suffit d'faire de nouveau Alt F11 pour retourner sur Excel ; et comme indiqué ci-dessus ; le reste du code VBA est resté exactement le même ! ➯ OK !!!


« et depuis mes macros ne fonctionnent pas. » ... « Erreur de compilation, instruction incorrecte à l' intérieur d' une procédure. » :

l'erreur de compilation fait que tu peux être sûr à 100 % qu'aucun code VBA n'a pu être exécuté, car c'est seulement si la compilation aboutit (= elle arrive à terme sans aucune erreur) que le code VBA peut s'exécuter ! tu peux donc aussi être absolument certain que le code VBA n'a pas modifié ton classeur de façon inopportune.

la seule chose ennuyeuse est qu'il faut régler l'erreur de compilation, et c'est forcément dans le nouveau module que tu as inséré ; tu peux même supprimer tout le code de ce module que tu viens d'ajouter et ça redeviendra comme avant, sans erreur de compilation ; mais ne te trompe pas de module, hein ! car si tu changes de module et qu'tu supprime un ancien code, là ça n'ira plus !!!

de toute façon, il est toujours prudent de faire des copies de sauvegarde : sur 2 clés USB (au cas ou l'une d'elle devient HS, et ça peut malheureusement arriver, surtout sur des clés USB de mauvaise qualité, donc peu fiables) ; si en plus tu as un disque dur externe, alors profites-en pour y sauvegarder aussi tes fichiers (en plus des clés USB) !


pour régler ton erreur de compilation, tu peux donc effacer tout le code du module que tu as ajouté tout récemment, puis recommencer ton copier / coller ; montre-moi ce que tu copies au juste.

au besoin, envoie-ton fichier (sans données confidentielles) ; j'y ajouterai moi-même le code VBA.

dhany

Bonsoir ric,

Ta manipulation a fonctionné, heureusement pour moi, ça m' évite la galère de tout recommencer sur plusieurs jours. Cependant, mes macros fonctionnent à nouveau mais sont hyper lentes avec le message qui s' affiche sur la barre du bas " calcul 2 processeurs 5%, 15% " etc. A quoi cela peut-il être dû à ton avis ?

NB: pour la macro qui a posé problème c' est inutile que je la poste ici, c'est juste un test que je voulais faire, cette macro n' était pas à moi et je n' en ai pas besoin, mais merci à toi

Effectivement dhany je me suis rendu compte que les macros sont restées intactes et comme tu as pu le lire elles fonctionnent à nouveau mis à part ce problème de lenteur. Pour l' idée de sauvegarder sur clé usb je vais vraiment le faire car après c' est trop galère. MERCI d' avoir détaillé une fois de plus, maintenant je comprends un peu mieux le fonctionnement .

Excellent messieurs bravo Merci, merci

merci pour ton retour !

passe une bonne soirée !

dhany

Bonjour,

Est-ce que ce problème existait antérieurement ou est-il un dommage collatéral de la macro problématique ?

ric

ok ric, attends je te l' envoie à l' adresse que tu as donnée car il est volumineux

j' ai oublié de te préciser que ce problème existait déjà avant la mauvaise manipulation mais que c' était résolu car j' avais il me semble supprimé le classeur qui était en double ( à cause d' une coupure de courant) et depuis ça ne le faisait plus. En tout cas plus pour ce classeur ci mais pas pour un autre qui me prend encore la tête avec cette histoire de " calcul 2 processeur % ".

Bonjour,

Envoi celui en problème, je vais voir si on peut l'améliorer.

ric

ok je fais ça, d' autant plus que je viens de me rendre compte que c' est lui qu pose problème: quand il est ouvert ça fait que le premier classeur dont on parlait me marque " calcul 2 processeurs %" je te l' envoie à l' adresse indiquée, il n' a pas de mot de passe

Bonjour,

Good, je regarde cela.

ric

Bonjour,

Au début des macros, j'ai ajouté Application.ScreenUpdating = False

Ce code gèle l'écran le temps de l'exécution de la macro.

À la fin de la macro, l'actualisation de l'écran reviendra automatiquement.

Quand on tient à forcer, on met à la fin ou à l'endroit approprié selon le code :

Application.ScreenUpdating = True

J'ai enlevé des centaines de "ActiveWindow.ScrollColumn" et de "ActiveWindow.ScrollRow" inutiles.

J'ai aussi désactivé les déplacements entre "Panes" ... tu pourras réactiver au besoin.

Tu remarqueras aussi la méthode plus condensée d'écriture des formules.

Normalement, l'exécution des macros devrait être beaucoup plus rapide.

Je reste disponible.

ric

oh la la, ça semble du très bon travail ric ,merci beaucoup. je vais regarder tout ça attentivement et reviendrai te dire ce que ça a donné. En attendant je te remercie d' avoir résolu mon problème et de m'avoir accordé autant de temps, très sympa.

Une pensée aussi pour dhany bien sûr.

Rechercher des sujets similaires à "erreur compilation"