bmpailli
Messages postés11Date d'inscriptionmercredi 29 décembre 2010StatutMembreDernière intervention 7 mars 2014
-
12 févr. 2014 à 17:24
bmpailli
Messages postés11Date d'inscriptionmercredi 29 décembre 2010StatutMembreDernière intervention 7 mars 2014
-
12 févr. 2014 à 18:36
Bonjour,
Je me pose une question pour l'instant sans réponse, concernant le formatage de plages de cellules dans un classeur Excel.
j'ai plusieurs plages de cellules déterminées par des variables, et selectionnées dans plusieurs parties du code, qui doivent être formatées de la même manière : police, alignement, etc. Peut-on prédéterminer un format, qui sera applicable à ces plages ?
Si oui, comment ?
Si non, suis-je obligé de me taper toutes les données à chaque fois qu'une plage est selectionnée ?
Par exemple, j'ai :
Range("x1:x12").select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = XlCenter
.Orientation = 0
End With
Range ("Y25;Y350").Select
With Selection
.HorizontalAlignment =xlCenter
.VerticalAlignment = xlCenter
.Orientation = 0
End With
(En vrai, c'est beaucoup plus long que ça). J'aurais voulu pouvoir prédéfinir le format (With ... End With) et l'appeler au moment où la plage est selectionnée.
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018212 12 févr. 2014 à 18:07
Bonjours
j'éviterais personnellement ce select (inutile, dès lors que l'on passe déjà une plage à la procédure) et l'utilisation de deux variables (x et y) qui ne serviront nulle part ailleurs ==>> une sous-routine fera l'affaire ===>>
Private Sub formatage1(maplage As Range) With maplage .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter .Orientation = 0 End With End Sub
Sub test() formatage1 Range("A1:A10") formatage1 Range("C1:C10") End Sub
jordane45
Messages postés37726Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention27 septembre 2023342 12 févr. 2014 à 18:20
une sous-routine fera l'affaire
Oui.. j'y ai pensé après.. mais j'ai oublié de venir modifier mon message ^^
jordane45
Messages postés37726Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention27 septembre 2023342 12 févr. 2014 à 17:40
Bonjour,
C'est le principe des fonctions...
Tu créés une fonction qui fera ta mise en forme et tu l'appelles lorsque tu en as besoins sur les cellules qui t'interesse..
Function formatage1(maplage As Range)
maplage.Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.Orientation = 0
End With
End Function
Sub test()
x = formatage1(Range("A1:A10"))
y = formatage1(Range("C1:C10"))
End Sub
En fait, en attendant la réponse, j'ai tenté le coup en créant une Sub calendrier, qui reprend les données de formatage, et en l'appelant par "Call sub calendrier" dès la sélection de la plage concernée.
Ça allège le code et ça marche, mais c'est peut-être une abomination. Je ne suis pas encore familier des fonctions.
Edit :
Je réponds tard, je viens de lire les réponses suivantes, je ne suis pas loin de la vérité.
12 févr. 2014 à 18:20