Sélection de plusieurs cellules pour y appliquer mise en forme

Le
Christian de BXL
Bonsoir à tous,
Lorsqu'on veut mettre en couleur plusieurs cellules d'un seul coup, il est
possible de les sélectionner successivement en maintenant la touche Ctrl
enfoncée, puis de leur appliquer une couleur de remplissage.
J'ai créé une macro permettant de mettre une couleur de remplissage et une
barre oblique dans une cellule sélectionnée. Comment faire pour pouvoir
sélectionner plusieurs cellules et y appliquer cette mise en forme d'un seul
coup comme dans l'application de la couleur de remplissage.
En essayant la touche Ctrl, la macro ne s'applique qu'à une seule cellule.
En essayant l'enregistreur de macro, il m'enregistre les coordonnées des
cellules sélectionnées de façon formelle.
Y a-t-il une solution?
Merci
Ma macro est la suivante:

Sub Oblique_Couleur_une_cellule2()

ActiveCell.Offset.Range("A1").Select
With Selection.Borders(xlDiagonalUp)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = 15
End With
With Selection.Interior
.ColorIndex = 34
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With

End Sub
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Philippe.R
Le #5338981
Bonsoir,
Chez moi, ta macro, allégée de :

ActiveCell.Offset.Range("A1").Select

applique la mise en forme sur l'ensemble des cellules sélectionnées
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"Christian de BXL" le message de news:
Bonsoir à tous,
Lorsqu'on veut mettre en couleur plusieurs cellules d'un seul coup, il est
possible de les sélectionner successivement en maintenant la touche Ctrl
enfoncée, puis de leur appliquer une couleur de remplissage.
J'ai créé une macro permettant de mettre une couleur de remplissage et une
barre oblique dans une cellule sélectionnée. Comment faire pour pouvoir
sélectionner plusieurs cellules et y appliquer cette mise en forme d'un
seul
coup comme dans l'application de la couleur de remplissage.
En essayant la touche Ctrl, la macro ne s'applique qu'à une seule cellule.
En essayant l'enregistreur de macro, il m'enregistre les coordonnées des
cellules sélectionnées de façon formelle.
Y a-t-il une solution?
Merci
Ma macro est la suivante:

Sub Oblique_Couleur_une_cellule2()

ActiveCell.Offset.Range("A1").Select
With Selection.Borders(xlDiagonalUp)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = 15
End With
With Selection.Interior
.ColorIndex = 34
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With

End Sub


MichDenis
Le #5338971
En supposant que ta plage de cellule est continue :

Ta macro va s'appliquer sur toute la plage A1:A10 de la feuille
active du classeur actif.
'-------------------------------
Sub Oblique_Couleur_une_cellule2()

With Range("A1:C10")
With .Borders(xlDiagonalUp)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = 15
End With
With .Interior
.ColorIndex = 34
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
End With
End Sub
'-------------------------------

Si tu as des plages discontinue, tu peux faire ceci :
Il arrive que ce type de syntaxe Range("A1:C10,G1:G15")
bogue sans que l'on sache pourquoi... voir l'autre méthode plus bas !
'------------------------------------
Sub Oblique_Couleur_une_cellule2()

With Range("A1:C10,G1:G15")
With .Borders(xlDiagonalUp)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = 15
End With
With .Interior
.ColorIndex = 34
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
End With
End Sub
'------------------------------------


Mais je te conseille plutôt ceci :

'---------------------------------------
Sub Oblique_Couleur_une_cellule2()

Dim Arr()
'Tu listes tes plages de cellules
Arr = Array("A1:C10", "G1:G15", "H45", "K32", "B40:C45")

For Each elt In Arr
With Worksheets("Feuil1") 'nom feuille à adapter
With .Range(elt)
With .Borders(xlDiagonalUp)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = 15
End With
With .Interior
.ColorIndex = 34
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
End With
End With
Next
End Sub
'---------------------------------------



"Christian de BXL"
Bonsoir à tous,
Lorsqu'on veut mettre en couleur plusieurs cellules d'un seul coup, il est
possible de les sélectionner successivement en maintenant la touche Ctrl
enfoncée, puis de leur appliquer une couleur de remplissage.
J'ai créé une macro permettant de mettre une couleur de remplissage et une
barre oblique dans une cellule sélectionnée. Comment faire pour pouvoir
sélectionner plusieurs cellules et y appliquer cette mise en forme d'un seul
coup comme dans l'application de la couleur de remplissage.
En essayant la touche Ctrl, la macro ne s'applique qu'à une seule cellule.
En essayant l'enregistreur de macro, il m'enregistre les coordonnées des
cellules sélectionnées de façon formelle.
Y a-t-il une solution?
Merci
Ma macro est la suivante:

Sub Oblique_Couleur_une_cellule2()

ActiveCell.Offset.Range("A1").Select
With Selection.Borders(xlDiagonalUp)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = 15
End With
With Selection.Interior
.ColorIndex = 34
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With

End Sub
PMO
Le #5337161
Bonjour,

Essayez le code suivant :

'***********
Sub Oblique_Couleur_Selection()
Dim R As Range
Set R = Selection
With R.Borders(xlDiagonalUp)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = 15
End With
With R.Interior
.ColorIndex = 34
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
Set R = Nothing
End Sub
'***********

Cordialement.

PMO
Patrick Morange
MichDenis
Le #5337131
| Set R = Selection

Avant d'utiliser cette ligne de code, il faudrait quand même
que tu testes à savoir si l'objet sélectionné est une plage de
cellules... Selection est un terme générique pour peu importe
le type d'objet sélectionné dans l'application...

If TypeName(Selection) = "Range" Then

(un peu d'ergotage en ce lundi matin)



"PMO" <patrickPOINTmorangeAROBASElapostePOINTnet> a écrit dans le message de news:

Bonjour,

Essayez le code suivant :

'***********
Sub Oblique_Couleur_Selection()
Dim R As Range
Set R = Selection
With R.Borders(xlDiagonalUp)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = 15
End With
With R.Interior
.ColorIndex = 34
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
Set R = Nothing
End Sub
'***********

Cordialement.

PMO
Patrick Morange
PMO
Le #5337071
Bonjour,

Vous avez parfaitement raison et il est donc plus
que nécessaire d'inclure ce test pour éviter un bug.

Cordialement.

PMO
Patrick Morange
Christian de BXL
Le #5337031
Bonsoir à tous,
Merci pour vos solutions.
Celle de Philippe, la plus simple, fonctionne parfaitement et me convient.
Elle me permet de sélectionner plusieurs cellules contigues ou non, dans ma
feuille et de leur appliquer ma mise en forme den une seule fois.
Encore merci
Christian
Publicité
Poster une réponse
Anonyme