Aller au contenu

excel pas excelent...


Messages recommandés

Posté(e)

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...

Posté(e)

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#.net

www.danialu.fr

Posté(e)

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

 

 

 

 

Posté(e)

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#.net

www.danialu.fr

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité