clearcontents non suffisant

C

Cobalt

Guest
bonjours a tous,

apres maintes et maintes recherche pas arrive a resoudre mon probleme.

en fait je veux creer un bouton qui m'efface le contenu de l'ensemble de mes feuilles(qui sont de type entier) mais pas les calculs present sur ces memes feuilles de calculs...

est ce possible ou utopique...et si par miracle une solution existe pourriez vous svp me l'exposer car je galere grave...

merci a tous

:) :)
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour Cobalt, bonjour le forum,

Pas sûr d'avoir bien compris... Je te propose la macro suivante qui efface dans toutes les feuilles les cellules ne contenant pas de formule :


Sub Macro1()
Dim sh As Worksheet
Dim Cel As Range

For Each sh In Sheets
For Each Cel In sh.UsedRange
If Cel.HasFormula = False Then Cel.ClearContents
Next Cel
Next sh
End Sub
 
C

Cobalt

Guest
salut,

tout d'abord merci de ta reponse.

j'ai executé ta macro et il y a un message d'erreur m'expliquant:

erreur d'execution '1004'

impossible de modifier une cellule fusionnée

... he oui il y a des cellules fusionnées

encore merci de ton aide... si il existe une solution je suis prenneur


A+
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour Cobalt, bonjour le forum.

Je pense qu'en rajoutant un On Error Resume Next ça devrait le faire. Mais il te faudra effacer manuellement toutes les cellules fusionnées.

Sub Macro1()
Dim sh As Worksheet
Dim Cel As Range

For Each sh In Sheets
For Each Cel In sh.UsedRange
On Error Resume Next
If Cel.HasFormula = False Then Cel.ClearContents
Next Cel
Next sh
End Sub


Ou alors, cette macro qui va effacer d'office les cellules fusionnées, qu'elles contiennent des formules ou pas :


Sub Macro1()
Dim sh As Worksheet
Dim Cel As Range
Dim celMA As Range

For Each sh In Sheets
For Each Cel In sh.UsedRange
If Cel.MergeArea.Cells.Count > 1 Then
Cel.MergeArea.ClearContents
GoTo suite
End If
If Cel.HasFormula = False Then Cel.ClearContents
suite:
Next Cel
Next sh
End Sub

Mais les deux je n'y arrive pas...
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Bonjour

Pour reprendre ce qu'a fait Robert mais avec les cellules fusionnées

Sub Macro1()
Dim sh As Worksheet
Dim Cel As Range

For Each sh In Sheets
   
For Each Cel In sh.UsedRange
       
If Cel.MergeArea.Cells.Count > 1 Then
           
If Cel.MergeArea.Cells(1, 1).HasFormula = False Then Cel.MergeArea.ClearContents
       
ElseIf Cel.HasFormula = False Then Cel.ClearContents
       
End If
   
Next Cel
Next sh
End Sub


Bonne journée
 

Hervé

XLDnaute Barbatruc
Bonjour cobalt, robert, pascal


Une autre piste à creuser :


Dim ws As Worksheet

For Each ws In Worksheets
ws.Cells.SpecialCells(xlCellTypeConstants, 1).ClearContents
Next ws

salut

Edition : inconvénient de cette méthode, il faut qu'il y ait au moins un entier par feuille, solution surement par un on error.

Message édité par: hervé, à: 29/11/2005 14:18
 
C

Cobalt

Guest
merci a tous...

je peux enfin avancer...

et si je ne veux qu'effacer les chiffres (tout en gardant mes formules) mais pas les cellules de chaines de caracteres car evidement il y a des tableaux avec du texte quand meme...

en tous les cas merci a Robert, Pascal76 et Hervé pour votre aide c'et super sympa :)
 

Cobalt

XLDnaute Nouveau
Re : clearcontents non suffisant

Salut a tous,

juste une question: si on veut effacer tout sauf les formules mais pas sur toute les feuilles (car j'aimerais garder des bases de données sur 2 feuilles) comment fait on?

par avance merci a tous

C.
 

MJ13

XLDnaute Barbatruc
Re : clearcontents non suffisant

Bonjour le forum, Pierrot que je salue.

Voici un exemple en macro pour sélectionner 3 types de cellules: nombres, lettres ou formules.
 

Pièces jointes

  • selection types de cellules.xls
    25 KB · Affichages: 75

Cobalt

XLDnaute Nouveau
Re : clearcontents non suffisant

salut a tous,

moi j'ai utilisé la macro de HERVÉ

Sub clearcontent()
Dim ws As Worksheet
For Each ws In Worksheets
On Error Resume Next
ws.Cells.SpecialCells(xlCellTypeConstants, 1).ClearContents
Next ws
End Sub

mais le probleme est que je souhaiterais l'appliqué qu'a une partie des feuilles excel...
donc y a t il une solution par rapport a cela c'est pour cela que j'avais parlé d'une ligne suplementaire avec une condition (if) qui indiquerait que si ws=feuille1 pae exemple il n'afface pas le contenu des cellule de cette feuille...

Voila... mais pour arriver a l'ecrire pas evident

merci a tous..
 

Statistiques des forums

Discussions
312 489
Messages
2 088 850
Membres
103 974
dernier inscrit
chmikha