Gestion d'un range multiple de colonnes à formater

zazou5908

XLDnaute Nouveau
Quelqu'un peut-il me dire pourquoi avec ce code

Range("G:G,M:M,P:p,U:U").Select
Range("U1").Activate
Selection.EntireColumn.Hidden = True

Excel me masque toute les colonnes de G => U

Et qu'avec celui-ci

Range("B:B,I:I,Q:Q").Select
Range("Q1").Activate
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
Selection.Interior.ColorIndex = xlNone

Excel effectue le formatage demandé sur les colonnes de B => Q

Je précise que ce code est récupéré de l'enregistreur de macro !!!

Je suis pas un grand spécialiste de VBA mais je sèche sur ce problème depuis plus de 2 heures.

Merci à ceux ou celles qui apporteront un nouveau sourire à mon visage actuellement contrarié. :D
 

Pierrot93

XLDnaute Barbatruc
Re : Gestion d'un range multiple de colonnes à formater

Bonjour Zazou

c'est normal les actions sont appliquées sur la selection comme tu le demande dans ton code :

Range("B:B,I:I,Q:Q").Select
' là tu viens de selectionner les colonnes B, et I a Q

Range("Q1").Activate
'ici tu actives Q1, mais pas utilie

Selection.Borders(xlDiagonalDown).LineStyle = xlNone
'et là tu applique l'instruction à la selection précédemment effectuée a savoir colonnes B, et I a Q

en espérant avoir été clair...

bon après midi
@+
 

zazou5908

XLDnaute Nouveau
Re : Gestion d'un range multiple de colonnes à formater

Bonjour Pierrot,

Avec l'enregistreur de macro, j'ai sélectionné dans:

le premier cas

les colonnes G, M, P, U et Excel m'effectue le masquage des colonnes G à U (sans rien oublier entre :D )

le second cas

les colonnes B, I, Q et excel m'effectue la mise en forme sur le contenu des colonnes B à Q !!! (aussi sans rien oublier :D )

Pourquoi lors de la création de la macro, cela fait ce que l'on demande et que tout foire quand on exécute la macro !

Là je commence à désespérer car cela dépasse mes maigres connaissance en VBA

A+ et merci
 

Pierrot93

XLDnaute Barbatruc
Re : Gestion d'un range multiple de colonnes à formater

Re

que veux tu faire exactement ? Sur quelles cellules ou colonnes veux tu executer le code ?
tu peux sans doute enlever les ligne de code avec "Range("Q1").Activate"

@+
 

zazou5908

XLDnaute Nouveau
Re : Gestion d'un range multiple de colonnes à formater

Rebonjour Pierrot,

Dans le premier cas, le veux cacher les colonnes G, M, P et U
Dans le seconf cas, je veux formater (comme c'est décrit dans le code) les colonnes B, I et Q

Ce qui me perturbe beaucoup, c'est que le même code de sélection multiple fonctionne pour l'ajustement automatique de la largeur des colonnes.

Ci-dessous, le code complet.

Range("C:H,J:O,R:W").Select
Range("R1").Activate
Selection.Columns.AutoFit

Range("G:G,M:M,P:p,U:U").Select
Range("U1").Activate
Selection.EntireColumn.Hidden = True

Range("B:B,I:I,Q:Q").Select
Range("Q1").Activate
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
Selection.Interior.ColorIndex = xlNone

Désolé de t'empêcher d'aller prendre l'apéro !:)
 

Pierrot93

XLDnaute Barbatruc
Re : Gestion d'un range multiple de colonnes à formater

Re

essaye comme ceci :

Code:
Range("C:H,J:O,R:W").Columns.AutoFit
Range("G:G,M:M,P:P,U:U").EntireColumn.Hidden = True
Range("B:B,I:I,Q:Q").Borders.LineStyle = xlNone

ok, j'arrive pour l'apéro...:)
@+
 

zazou5908

XLDnaute Nouveau
Re : Gestion d'un range multiple de colonnes à formater

T'es génial !! Cela roule nickel.

Comme je veux mon " .Interior.ColorIndex = xlNone "

J'ai du rajouter une ligne complète

Range("B:B,I:I,Q:Q").Interior.ColorIndex = xlNone

car juste .Interior.ColorIndex = xlNone plante Excel quand j'appelle ma macro !

On ne peut pas enchaîner différentes propriétés avec n'importe quelle fonction ?

En tout cas, merci pour cet éclair de génie !

Et pour l'apéro, pourquoi pas un jour ou on arrivera à se mettre d'accord sur un lieu et un jour ! Paris vaut bien un apéro (Euh Seine Saint Denis, c'est bien sur Paris ?):confused:
 

Pierrot93

XLDnaute Barbatruc
Re : Gestion d'un range multiple de colonnes à formater

Re

pour enchainer il autrait fallu codé comme ceci par exemple, a l'interieur d'un bloc "With"

Code:
Range("C:H,J:O,R:W").Columns.AutoFit
Range("G:G,M:M,P:P,U:U").EntireColumn.Hidden = True
With Range("B:B,I:I,Q:Q")
    .Borders.LineStyle = xlNone
    .Interior.ColorIndex = xlNone
End With

Oui, 93 pas très loin de Paris

bonne soirée et bon week end.
 

zazou5908

XLDnaute Nouveau
Re : Gestion d'un range multiple de colonnes à formater

Pierrot,

Un tout grand merci pour ton temps et tes explications !

Ma petite application est terminée et fonctionne Super.
Je viens de l'installer sur le réseau ou elle a été convertie en anglais par la version Anglaise d'Excell.

D'ailleurs j'ai découvert une petite différence entre Excell 2003 FR et GB car la fonction SOMME traduite par SUM ne réagit pas de la même façon ! Mais bon j'ai trouvé une solution !!

Encore merci et bon W.E.
 

Discussions similaires

Statistiques des forums

Discussions
312 488
Messages
2 088 858
Membres
103 978
dernier inscrit
bderradji