Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Autres Code VBA supression formule classeur Excel 2007

  • Initiateur de la discussion Initiateur de la discussion otarc
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

otarc

XLDnaute Junior
Bonjour,

Je voudrai un code VBA pour supprimer toutes les formules de toutes les feuilles de mon classeur excel, est-ce que cela est possible ?
Cependant, les valeurs doivent rester malgrè la disparition des formules.

En pratique excel, ça équivaut à copier+collage spécial valeur

Je vous remercie pour votre retour,

Bien cordialement
 
Solution
Bonjour,

Quelque chose comme ça peut-être :
VB:
Sub SansFormule()
    Dim ws As Worksheet
    For Each ws In ThisWorkbook.Worksheets
        ws.UsedRange.Value = ws.UsedRange.Value
    Next
End Sub

Cordialement
Bonjour
quelque chose comme ceci ?
VB:
Dim sh As Worksheet, plage As Range
For Each sh In ActiveWorkbook.Worksheets
  On Error Resume Next ' -->> pour le cas où aucune formule
  Set plage = sh.Cells.SpecialCells(xlCellTypeFormulas)
  If Not plage Is Nothing Then plage.Value = plage.Value
  On Error GoTo 0
Next
 
Bonjour,

Quelque chose comme ça peut-être :
VB:
Sub SansFormule()
    Dim ws As Worksheet
    For Each ws In ThisWorkbook.Worksheets
        ws.UsedRange.Value = ws.UsedRange.Value
    Next
End Sub

Cordialement
 
Il ne m'est pas possible de ne pas réagir au choix ainsi fait.
La méthode retenue peut exposer (selon le classeur) à de graves insuffisances de mémoire.
Celle que j'ai proposée n'est d'ailleurs pas non plus totalement à l'abri de ce genre de mésaventure, mais énormément moins.
Ce ne sont pas toujours les codes les plus simples qui sont les moins risqués.
 
Bonjour,

@jmfmarques :il y a toujours quelque chose à dire sur une méthode ou l'autre. La réponse faite était à la hauteur du peu d' informations données par le demandeur, qui aura tout loisir de choisir ce qu'il veut, d'apprendre, modifier et perfectionner.

Sur votre méthode je pourrais dire que 'ActiveWorkbook' , sans demande de confirmation, la rend dangereuse en cas de lancement inopportun.

Réagissez, réagissez, mais vos assertions, assénées comme vérités restent cependant très relatives.

Bonne continuation
 
Dernière édition:
Désolé, Roblochon, mais il ne s'agit :
- ni de simples "assertions"
- ni de particularités exceptionnelles du classeur
Le code qui a été accepté tombera tout simplement en erreur (mémoire insuffisante), dès lors que le Usedrange est important.
Je viens d'en faire le test : sur ma machine et avec l'une des feuilles allant jusqu'à la colonne "XX" et la ligne 500000 (très loin d'être exceptionnel, hein ...)-->> sortie brutale en debug pour mémoire insuffisante. Cette insuffisance de mémoire pourra de surcroît intervenir à des niveaux de usedrange différents selon à la fois la machine et ce qu'il y reste de mémoire disponible au moment de l'opération
Ne pas en faire état serait, de ma part, manquer d'honnêteté, voire trahir.
Sur ce ...
 
Dernière édition:
Re,

Oui, c'est vrai, vous avez raison j'ai oublié qui vous êtes et votre état de devin, que vous connaissiez tout des besoins et conditions particulières des demandeurs.

Bref, vous êtes le meilleur.

C'est pourquoi et sur ce ... je vous souhaite la bonne journée.
 
A Roblochon
Je n'ai en général rien à faire des états d'âme.
Mon rôle a ici été d'alerter sur les conséquences du code adopté, dès lors que l'une des feuilles du classeur était volumineuse (et pas vraiment nécessairement très volumineuse, d'ailleurs).
Je ne veux pas être responsable, en me taisant, d'un plantage intervenant éventuellement plus tard (lorsque, ayant été abondée, l'une -il suffit d'une - des feuilles sera devenue importante en occupation de lignes et colonnes.
Je réitère donc tout ce que j'ai dit et prie pour que ce soit lu et compris par tout éventuel visiteur de la présente discussion.
Bonne journée.
 
Ah bon?! Ce n'en est pas un ceci :
Absolument pas. C'est, comme d'ailleurs dit, une réaction nécessaire, à ce qui pourrait générer un bug dès que le usedrange de n'importe laquelle des feuilles devient important (du fait de données ajoutées) 🙂
Il importe à mon sens que tout lecteur de cette discussion sache tout du risque non négligeable couru

otarc, que j'ai pris la peine de contacter par MP m'ayant répondu que son classeur n'était composé que de six petites feuilles avec peu de données, le code adopté est sans danger pour lui.
Il en reste toutefois un de manière plus générale (et bien plus fréquente), raison pour laquelle j'insiste sur tout ce que j'ai dit plus haut. Et ce d'autant que, sans cette alerte, le prochain visiteur pourrait se laisser avoir ...
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
542
Réponses
12
Affichages
1 K
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
370
Réponses
22
Affichages
1 K
Réponses
10
Affichages
635
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…