EXCEL garder uniquement les cellules utilisés
MrQuant
Messages postés
56
Statut
Membre
-
ccm81 Messages postés 11033 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
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:
- Excel griser les cellules non utilisées
- Liste déroulante excel - Guide
- Excel additionner plusieurs cellules - Guide
- Verrouiller cellules excel - Guide
- Word et excel gratuit - Guide
- Fusionner deux cellules excel - Guide
3 réponses
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 ?
(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 ?
bonjour,
sans VBA je ne sais pas faire,
avec VBA
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 !
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 !
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 ?
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 ?
re
il doit y avoir une grande plage à traiter
en desactivant le rafraichissement de l'écran, ça devrait accelerer
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
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