Question d'esthétique...

L

Luc Billaux

Guest
Bonjour à tout le monde,

D'abord un grand merci pour votre aide qui m'a permis de progresser dans mon projet.

actuellement j'essaye de régler quelques problèmes d'esthétique!!!

Je m'explique:

Dans ma feuille de calcul j'ai créé plusieurs zones nommées. Une macro me permet d'appeler telle ou telle zone par son nom et d'aller se positionner sur celle ci. Mais toute la plage selectionnée est "grisée" ( couleur par défaut bleue comme lorsqu'on selectionne plusieurs cellules avecla souris).

Peut on configurer cette couleur de sélection? l'annuler? Faire en sorte que la zone reste de couleur normale (cad noir et blanc)?

Merci par avance de votre coup de main

Luc
 
@

@+Thierry

Guest
Bonjour Luc

La couleur des zones sélectionnées dépend de Windows et pas d'Excel. (Au même titre que la couleur des barres de fenêtres etc (Affichage/Apparence) Donc en fonction des personnalisations de ton Windows peut-être arriveras-tu à changer cette couleur (sans en être certain)

Bon Samedi
@+Thierry
 
L

Luc Billaux

Guest
Merci @+Thiérry,

Effectivement je ne vais pas aller changer les parametres de tout Windows!!!!!

Entre temps j'ai trouvé une solution au problème



Application.ScreenUpdating = False
Range("k1").Select ' selectionne une cellule de la zone en cours
cel = ActiveCell
Range(cel).Select
Application.ScreenUpdating = True



Dé cidemment çà devient amusant VBA


Merci encore de ta reponse

Luc
 
@

@+Thierry

Guest
Bonsoir Luc,

Heureux que tu aies trouvé une solution mais ce que tu as écrit au dessus ne sert pas vraiment à grand chose...

Application.ScreenUpdating est en effet une solution. Mais souvent c'est d'éviter de sélectionner les cellules qui est la solution. On a souvent tendance à mettre du "Select" à toutes les sauces car c'est ce que l'on voit en premier dans toutes les macros de l'enregistreur.

Voici un exemple, je veux effacer le contenu d'une plage de cellules...

Avec l'enregistreur ce qui donne :
Sub Macro1()
'
' Macro2 Macro
' Macro enregistrée le 15/02/2003 par Thierry
'
'
Selection.ClearContents
Range("B3").Select
Selection.ClearContents
Range("C3").Select
Selection.ClearContents
Range("D3").Select
Selection.ClearContents
Range("D14").Select
Selection.ClearContents
End Sub

Ou encore ceci dans le meilleur des cas:
Sub Macro2()
'
' Macro2 Macro
' Macro enregistrée le 15/02/2003 par Thierry
'

'
Range("B3,C3,D3,D14").Select
Range("D14").Activate
Selection.ClearContents
End Sub

Pour éviter que celà ne clignotte et soit visible au yeux de l'utilisateur on peut utiliser :

Sub Macro2Bis()
Application.ScreenUpdating = False
Range("B3,C3,D3,D14").Select
Range("D14").Activate
Selection.ClearContents
Application.ScreenUpdating = True

End Sub


Mais la véritable solution consiste en VBA à aller droit au but comme ceci :

Sub ClearPlage()
Range("B3,C3,D3,D14").ClearContents
End Sub

Si on travaille sur multi feuille par contre on précisera quelle feuille
Sheets("Toto").Range("B3,C3,D3,D14").ClearContents

C'est plus simple et surtout plus rapide d'exécution.

Bon Samedi Soir
@+Thierry
 
L

luc

Guest
Merci Thierry pour cette leçon de VBA.
Effectivement, quand on debute comme moi de le language, on se sert bcp de l'enregistrement automatique de macro, et çà fait plusieurs fois que je me rends compte qu'un certains nombres de lignes sont inutiles.... mais au début! lesquelles???? On ose pas trop en faire sauter.

En tout cas, une fois de plus j'ai pu avancer dans mon problème et apprendre pleins d'astuces.

A bientôt.... pour la prochaine question


Luc
 

Membres actuellement en ligne

Statistiques des forums

Discussions
314 645
Messages
2 111 536
Membres
111 184
dernier inscrit
amiko