Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

VBS [Excel] : Mettre un ligne épaisse autour d'un groupe de cellules

12 réponses
Avatar
o.0
Bonjour,

Après avoir sélectionné un "Range" de cellules sous excel en VBS, comment
formater ces cellules afin d'avoir un cadre épais autour de ce lot de
cellules (et pas sur toutes les cellules)

Merci pour vos réponses,

Sachant que le code suivant me met un cadre fin autour de chaque cellule (ce
n'est donc pas le résultat escompté) :


Set objExcel = CreateObject("Excel.Application")
Set objRange = objExcel.Range(objExcel.Cells(Cells_Mission_Start,Column) ,
objExcel.Cells(Cells_Mission_End,Column))
objRange.Select
objExcel.Selection.Borders.LineStyle = 1 ---------> ?? que mettre ?
objExcel.Selection.Interior.ColorIndex = 0

10 réponses

1 2
Avatar
Stephane D
Bonjour,

Après avoir sélectionné un "Range" de cellules sous excel en VBS, comment
formater ces cellules afin d'avoir un cadre épais autour de ce lot de
cellules (et pas sur toutes les cellules)

Merci pour vos réponses,


Tu vas dans excel
tu passes en enregistrement de macro
tu fais ta bordure large
tu arretes l'enregistrement
tu regarde le code généré automatiquement
tu adaptes

Stephane

Avatar
Stephane D

Bonjour,

Après avoir sélectionné un "Range" de cellules sous excel en VBS, comment
formater ces cellules afin d'avoir un cadre épais autour de ce lot de
cellules (et pas sur toutes les cellules)

Merci pour vos réponses,



Je veins de xyeuter a priori faut que tu mettes la valeur 4.
C'est super simple avec le mode pas à pas et l'inspecteur d'objet.

Stephane


Avatar
Jean-Claude BELLAMY
Dans le message news: ,
o.0 s'est ainsi exprimé:

Bonjour,

Après avoir sélectionné un "Range" de cellules sous excel en VBS,
comment formater ces cellules afin d'avoir un cadre épais autour de
ce lot de cellules (et pas sur toutes les cellules)

Merci pour vos réponses,

Sachant que le code suivant me met un cadre fin autour de chaque
cellule (ce n'est donc pas le résultat escompté) :


Set objExcel = CreateObject("Excel.Application")
Set objRange > objExcel.Range(objExcel.Cells(Cells_Mission_Start,Column) ,
objExcel.Cells(Cells_Mission_End,Column))
objRange.Select
objExcel.Selection.Borders.LineStyle = 1 ---------> ?? que mettre ?
L'épaisseur est définie par la propriété "Weight "

Et il faut indiquer quels "borders" sont concernés !

objExcel.Selection.Interior.ColorIndex = 0


const xlDiagonalDown=5
const xlDiagonalUp=6
const xlEdgeLeft=7
const xlEdgeTop=8
const xlEdgeBottom=9
const xlEdgeRight
const xlContinuous=1
const xlThick=4
const xlAutomatic=&HFFFFEFF7
xlInsideHorizontal
xlNone=&HFFFFEFD2

Set objExcel = CreateObject("Excel.Application")
Set objRange = objExcel.Range(objExcel.Cells(Cells_Mission_Start,Column) ,
objExcel.Cells(Cells_Mission_End,Column))
objRange.Select

objExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone
objExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
objExcel.Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
With objExcel.Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThick
.ColorIndex = xlAutomatic
End With
With objExcel.Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThick
.ColorIndex = xlAutomatic
End With
With objExcel.Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThick
.ColorIndex = xlAutomatic
End With
With objExcel.Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThick
.ColorIndex = xlAutomatic
End With



--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
*

Avatar
o.0
Merci pour ton aide mais non.
LE 4 donne des pointillés... et autour de chaque cellule...
Avatar
Stephane D
Merci pour ton aide mais non.
LE 4 donne des pointillés... et autour de chaque cellule...

T'a pas essayé de faire avec la macro !

Tu modifies la mauvaise valeur
.LineStyle = xlContinuous 'type de trait
.Weight = 4 'taille du trait
.ColorIndex = xlAutomatic 'couleur du trait

@+ Stephane

Avatar
Fred
Dans le message :,
o.0 disait :
Merci pour ton aide mais non.
LE 4 donne des pointillés... et autour de chaque cellule...


Bonjour,
Bon, j'ai fait la macro avec l'enregistreur (sous XL 2003)

8<--------------
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
8<-------------------

Quand tu affectes un style de ligne à Borders, tu le fait pour toutes les
bordures.
Donc fais le en 4 fois avec les 4 bordures concernées.
Atention, en vbs il faut remplacer les constantes xl...... par leur valeur
ou bien les déclarer.

--
Fred

Avatar
papou
Bonjour
Pour faire au plus court :
objRange.BorderAround LineStyle:=xlContinuous, _
Weight:=xlMedium, ColorIndex:=xlColorIndexAutomatic

A adapter éventuellement

Cordialement
Pascal


"o.0" a écrit dans le message de news:

Bonjour,

Après avoir sélectionné un "Range" de cellules sous excel en VBS, comment
formater ces cellules afin d'avoir un cadre épais autour de ce lot de
cellules (et pas sur toutes les cellules)

Merci pour vos réponses,

Sachant que le code suivant me met un cadre fin autour de chaque cellule
(ce
n'est donc pas le résultat escompté) :


Set objExcel = CreateObject("Excel.Application")
Set objRange = objExcel.Range(objExcel.Cells(Cells_Mission_Start,Column) ,
objExcel.Cells(Cells_Mission_End,Column))
objRange.Select
objExcel.Selection.Borders.LineStyle = 1 ---------> ?? que mettre ?
objExcel.Selection.Interior.ColorIndex = 0




Avatar
Georges MAUREL
Bonjour,
Stéphane a raison, le mode pas à pas est très simple.
Voici donc ce qu'il faut mettre pour avoir un bord épais autour de la
sélection

objExcel.Selection.Borders.LineStyle = 1
objExcel.Selection.Borders.Weight = -4138
objExcel.Selection.Borders(11).LineStyle = -4142
objExcel.Selection.Borders(12).LineStyle = -4142
objExcel.Selection.Interior.ColorIndex = 0

Cordialement
Georges


"Stephane D" a écrit dans le message de
news:d89kg5$tvb$

Bonjour,

Après avoir sélectionné un "Range" de cellules sous excel en VBS,
comment



formater ces cellules afin d'avoir un cadre épais autour de ce lot de
cellules (et pas sur toutes les cellules)

Merci pour vos réponses,



Je veins de xyeuter a priori faut que tu mettes la valeur 4.
C'est super simple avec le mode pas à pas et l'inspecteur d'objet.

Stephane




Avatar
o.0
MERCI un grand merci pour toutes vos réponses !

=)
Avatar
o.0
Parfait mais il manque el cadrillage à l'intérieur, je m'explique :

Un cadrillage classique fin sur toutes les cellules et tout autour cette
bordure grasse.


Merci pour votre aide.
1 2