Prédéterminer un format de cellules [Résolu]

Signaler
Messages postés
11
Date d'inscription
mercredi 29 décembre 2010
Statut
Membre
Dernière intervention
7 mars 2014
-
Messages postés
11
Date d'inscription
mercredi 29 décembre 2010
Statut
Membre
Dernière intervention
7 mars 2014
-
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.

Merci d'avance



--

3 réponses

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
230
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
Messages postés
29903
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 octobre 2020
338
une sous-routine fera l'affaire
Oui.. j'y ai pensé après.. mais j'ai oublié de venir modifier mon message ^^
Messages postés
29903
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 octobre 2020
338
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

Messages postés
11
Date d'inscription
mercredi 29 décembre 2010
Statut
Membre
Dernière intervention
7 mars 2014

Merci,

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é.

Merci

--