x_all Posté(e) le 7 juillet 2011 Posté(e) le 7 juillet 2011 bonjour ils ont un gros soucis à la compta... un fichier à soudain péter les plomb... 12mo le fichier excel... en le regardant de mon poste qui à plus de mémoire que le pauvre ordi le la compta j'ai trouver tout en tas de ''zone de texte'' vide placé aléatoirement sur les feuilles du classeur... l'anti virus râle pas, j'ai désactivé les macro, mais le mal est fait le fichier est trop lourd il devient ingérable... Y a til un moyen pour ''purger'' le fichier? peu on envisager un code en vba pour effacer toutes les zones de texte... merci d'avance... quelques trucs sur autocad
rom1_am Posté(e) le 8 juillet 2011 Posté(e) le 8 juillet 2011 Bonjour, Le site Excellabo permet de trouver des bons exemples sur excel. Sinon, pour ton problème, le code suivant te permet de supprimer tous (attention, méthode barbare) les objets qui se trouve sur une feuille excel (pas seulement les zones de texte) ActiveSheet.Shapes.SelectAll Selection.Delete Tu peux tester cela en sauvegardant bien le fichier avant, sinon tu trouvera sûrement dans l'aide d'Excel de quoi faire un code plus propre mais en tout cas les zones de texte se trouvent dans la collection 'Shapes'. a+ _______________________________R.A.Développeur AutoCAD C#.netwww.danialu.fr
didier Posté(e) le 8 juillet 2011 Posté(e) le 8 juillet 2011 Coucou le même esprit mais un peu moins "barbare" Sub eff_ZoneTexte() Dim img As Object For Each img In Worksheets(1).Shapes Test = Left(img.Name, 9) If Test = "ZoneTexte" Then img.Delete End If Next End Sub amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
x_all Posté(e) le 8 juillet 2011 Auteur Posté(e) le 8 juillet 2011 pou lala moi qui ai du mal à digérer le lisp me voila bien avec ça... alors j'ai fini par comprendre comment activer les macro et comment les écrire dans l'éditeur, la 1ere macro (celle de rom1_am) soit je n'ai pas compris soit je rajoute sub toto() et le endsud et alors quand je l'exécute ça plante excel... pour celle de didier, elle ne semble avoir aucun effet...pourrai tu me dire stp si quand je lance (avec F5) depuis l'éditeur le code est valable sur toutes les feuilles du classeur (il y en a une 15saine) ou faut il le lancer dans chaque feuille... merci quelques trucs sur autocad
rom1_am Posté(e) le 8 juillet 2011 Posté(e) le 8 juillet 2011 Salut, La macro de Didier ne fonctionne pas non plus chez moi, je pense que cela dépend de la version d'excel. J'ai modifié sa fonction qui devrait normalement fonctionner car elle vérifie le type de l'objet et j'ai ajouté une boucle pour parcourir toutes les feuilles. Sub eff_ZoneTexte() Dim zone As Object Dim Feuille As Worksheet For Each Feuille In ActiveWorkbook.Worksheets 'boucle sur les feuilles For Each zone In Feuille.Shapes 'boucle sur les formes If zone.Type = msoTextBox Then zone.Delete End If Next zone Next Feuille End Sub a+ _______________________________R.A.Développeur AutoCAD C#.netwww.danialu.fr
x_all Posté(e) le 8 juillet 2011 Auteur Posté(e) le 8 juillet 2011 you hoo !!! effectivement cette fois ça mouline, et même sacrément bien le fichier passe de 12 mo à 3.5 mo... merci beaucoup une fois de plus aux coudeurs fou quelques trucs sur autocad
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant