EXCEL garder uniquement les cellules utilisés

MrQuant Messages postés 56 Statut Membre -  
ccm81 Messages postés 11033 Statut Membre -
Bonjour à tous,

J'ai une feuille Excel qui affiche le réultat de plusieurs tests que je fait sur d'autres cellules dans d'autres feuilles (une sorte de tableau de bord). Dans cette feuille je ne souhaite garder que les cellules utilisés c.a.d griser toutes les autres.

Je sais que c'est possible mais je ne suis pas arrivé à le faire!

D'avance merci
A voir également:

3 réponses

MrQuant Messages postés 56 Statut Membre 1
 
y-a-il une autre façon plus propre que de:
(1) masquer les lignes et colonnes en extras
(2) fusionner les cellules non utilisés à l'interieur de mon RANGE et les colorés en gris

Ca donne exactement ce que je veux mais ce n'est pas pratique !

Jusqu'à présent je n'ai pas pensé à le faire en passant par VBA mais je crois que c'est le seul moyen de le faire automatiquement.

Qu'en dites vous ?
0
ccm81 Messages postés 11033 Statut Membre 2 433
 
bonjour,
sans VBA je ne sais pas faire,
avec VBA

Public Sub GrisePlage()
For Each cel In Selection
  If cel.Value = "" Then
    cel.Interior.ColorIndex = 15
  End If
Next cel
End Sub


tu mets ce code dans un module (Alt-F11 pour acceder a l'editeur puis un copier/coller
verifes qu'excel accepte l'ouverture des macros (sous excel 2003 outils/macros/securité et choisir moyenne)
toujours avec outils/macro choisir GrisePlage puis options et attribuer un raccourci clavier (par exemple ctrl-g)
quitter excel
reouvrir ton fichier et accepter l'ouverture des macros
selectionner la plage a traiter puis ctrl-g ou Outils/Macros/GrisePlage/executer

bonne suite

si une solution sans VBA arrive, elle sera meilleure que la mienne !
0
MrQuant Messages postés 56 Statut Membre 1
 
Salut ccm81,
Merci bien pour ton message...cqfd :)

En fait j'ai posté mon message car je ne sais pas pourquoi j'ai l'impression que j'ai déjà vu quelque part comment faire exactement la même chose sans passer par du VBA !!!

S'agissant de ton code je viens de l'essayer et lorsque je fait tourner la procédure elle met long temps avant de s'arreter ...j'ai du a chaque fois arrêter l'execution!

Est que tu a le même problême ou pas ?
0
ccm81 Messages postés 11033 Statut Membre 2 433
 
re

il doit y avoir une grande plage à traiter
en desactivant le rafraichissement de l'écran, ça devrait accelerer

Private Sub GrisePlage() 
Const plage = "A1:AA2000" 
Dim cel 
Application.ScreenUpdating = False 
For Each cel In Range(plage) 
  If cel.Value = "" Then 
    cel.Interior.ColorIndex = 15 
  End If 
Next cel 
Application.ScreenUpdating = True 
End Sub 


chez moi, pour cette plage (54 000 cellules) c'est 3 secondes

si ça te convient, et que tu veux appliquer la macro a une plage selectionnée,
- tu supprimes la ligne Const =
- tu remplaces Range(plage) par Selection
comme dans ma 1° proposition

RQ1. sans macro, j'ai le pb des cellules qui contiennent une formule et un resultat "", je supposes que toi aussi.
RQ2. question bête, mais on ne sait jamais, tes cellules "vides" sont elles vides ou sont elles comme dans RQ1

bonne suite
0