XL 2010 avoir des cellules vides

Caroline ;-))

XLDnaute Junior
Bonjour le forum !

Après avoir fait un copier/coller valeurs, je me retrouve avec des cellules qui ne sont pas vides. Or je souhaiterai que ces cellules soient réellement vides afin de réaliser d’autres traitements. Il y a donc quelques choses dans ces cellules, mais quoi ? :
- Ce n’est pas un espace car [la manip ctrl+H : remplacer espace par rien] Excel ne trouve pas d’espace
- Ce n’est pas un espace insécable car j’ai fait =SUBSTITUTE(C11 ;CAR(160) ;"") et cela ne le transforme pas en cellule vide

Donc, je ne sais pas ce qu’il y a dans ces cellules…(exemple : [C8:C28] et [C130:C296] devraient être des cellules vides)

Pour les transformer en cellules vides, j’ai trouvé 2 solutions mais uniquement manuelles ! soit :
-double clic sur la cellule
- taper sur la touche « Suppr » dans la cellule

(Pour vérifier qu’il s’agit bien d’une cellule vide : je les sélectionne > « F5 » > atteindre « cellules… » > Sélectionner « Cellules vides » > ok)

Est-ce que vous avez des idées ? Comment puis-je transformer un grand nombre de cellules (non adjacentes) en cellules vides ? (en ne sachant pas ce qu’il y a à l’intérieur)

Merci pour votre aide.
 

Pièces jointes

  • pb cellules non vide.xlsm
    17.4 KB · Affichages: 53

job75

XLDnaute Barbatruc
Re,

Ce n'est pas comme je le pensais un problème de lecture puisque ceci s'exécute chez moi en 0,025 seconde :
Code:
Sub efface()
Dim t, cel As Range, a(), n&
t = Timer
For Each cel In Cells.SpecialCells(xlCellTypeConstants)
   ReDim Preserve a(n)
   a(n) = cel.Value
   n = n + 1
Next
MsgBox "Durée pour " & n & " cellules : " & Timer - t & " seconde"
End Sub
A+
 

job75

XLDnaute Barbatruc
Re,

Pour info sur un document vierge j'ai exécuté ces 4 macros :
Code:
Sub Test1()
Dim t, c As Range
t = Timer
For Each c In [A1:A2340]
c = 0
Next
MsgBox Timer - t & " seconde" '0,06 seconde
End Sub

Sub Test2()
Dim t, c As Range
t = Timer
For Each c In [A1:A2340]
c = Empty
Next
MsgBox Timer - t & " secondes" '5,3 secondes
End Sub

Sub Test3()
Dim t, c As Range
t = Timer
For Each c In [A1:A2340]
c = ""
Next
MsgBox Timer - t & " secondes" '5,8 secondes
End Sub

Sub Test4()
Dim t, c As Range
t = Timer
For Each c In [A1:A2340]
c = "a"
Next
MsgBox Timer - t & " seconde" '0,06 seconde
End Sub

Sub Test5()
Dim t, c As Range
t = Timer
For Each c In [A1:A2340]
c.ClearContents
Next
MsgBox Timer - t & " seconde" '0,17 seconde
End Sub
Les durées d'exécution chez moi y sont indiquées.

C'est donc uniquement l'effacement qui pose problème.

Edit : ajouté Test5 avec ClearContents...

Bonne nuit.
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, le forum, job75

@job75
Test1: 0,703125 seconde
Test2: 1,476563 secondes
Test3: 1,460938 secondes
Test4: 0,5703125 seconde
Test5: 1,304688 seconde

Je ne comprends pourquoi sur certains tests mes résultats sont inférieurs aux tiens et d'autres supérieurs ?!?
(testé sur un classeur vierge - W10 64bits Excel 2013 Home 32bits - 4Go)
 

Discussions similaires

Réponses
9
Affichages
418

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 337
Messages
2 087 391
Membres
103 536
dernier inscrit
komivi