OVH Cloud OVH Cloud

Besoin de conseil

3 réponses
Avatar
Keawee
Bonjour,

J'aimerais avoir votre aide. J'utilise cette fonction pour=20
d=E9finir les Borders de ma cellule ou de mes cellules dans=20
une selection.

Sub DrawLine(aEdge)
With Selection.Borders(aEdge)
.LineStyle =3D xlContinuous
.Weight =3D xlThin
.ColorIndex =3D xlAutomatic
End With
End Sub

Je fais appel de cette fa=E7on =E0 cette fonction:

DrawLine (xlEdgeLeft)
DrawLine (xlEdgeTop)
DrawLine (xlEdgeBottom)
DrawLine (xlEdgeRight)
'DrawLine (xlInsideVertical)
'DrawLine (xlInsideHorizontal)

Quand je n'ai qu'une cellule =E0 encadrer, je ne peux pas=20
utiliser xlInsideVertical et xlInsideHorizontal. Comment=20
faire pour dire=20

- si je n'ai qu'une seule cellule =E0 encadrer alors=20
n'utilise pas xlInsideVertical et xlInsideHorizontal

- si j 'ai deux cellule l'une au dessus de l'autre tu peux=20
utiliser xlInsideHorizontal

- si j 'ai deux cellule l'une =E0 c=F4t=E9 de l'autre tu peux=20
utiliser xlInsideVertical=20

- - si j 'ai Quatre cellules quit sont en contact alors tu=20
peux utiliser xlInsideVertical et xlInsideHorizontal

Est ce que c'est faisable?

Keawee

3 réponses

Avatar
Frédéric Sigonneau
Bonjour,

Essaye de modifier ta procédure comme ceci :

'===================== Sub DrawLine(aEdge)
With Selection
Select Case .Count
Case 1:
If aEdge = xlInsideVertical Or aEdge = xlInsideHorizontal _
Then Exit Sub
Case 2:
If .Columns.Count = 1 And aEdge = xlInsideVertical Then Exit Sub
If .Rows.Count = 1 And aEdge = xlInsideHorizontal Then Exit Sub
Case Is > 2:
If .Areas.Count = 1 Then
With .Borders(aEdge)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
End If
End Select
End With
End Sub
'=====================
NB : Ça ne fonctionnera pas correctement si la sélection à mettre en forme est
discontinue (composée de plusieurs plages distinctes). Si c'est ton besoin, ça
nécessitera plus de code, mais ça devrait être possible malgré tout.

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonjour,

J'aimerais avoir votre aide. J'utilise cette fonction pour
définir les Borders de ma cellule ou de mes cellules dans
une selection.

Sub DrawLine(aEdge)
With Selection.Borders(aEdge)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
End Sub

Je fais appel de cette façon à cette fonction:

DrawLine (xlEdgeLeft)
DrawLine (xlEdgeTop)
DrawLine (xlEdgeBottom)
DrawLine (xlEdgeRight)
'DrawLine (xlInsideVertical)
'DrawLine (xlInsideHorizontal)

Quand je n'ai qu'une cellule à encadrer, je ne peux pas
utiliser xlInsideVertical et xlInsideHorizontal. Comment
faire pour dire

- si je n'ai qu'une seule cellule à encadrer alors
n'utilise pas xlInsideVertical et xlInsideHorizontal

- si j 'ai deux cellule l'une au dessus de l'autre tu peux
utiliser xlInsideHorizontal

- si j 'ai deux cellule l'une à côté de l'autre tu peux
utiliser xlInsideVertical

- - si j 'ai Quatre cellules quit sont en contact alors tu
peux utiliser xlInsideVertical et xlInsideHorizontal

Est ce que c'est faisable?

Keawee


Avatar
-----Message d'origine-----

Bonjour,

J'aimerais avoir votre aide. J'utilise cette fonction
pour

définir les Borders de ma cellule ou de mes cellules dans
une selection.

Sub DrawLine(aEdge)
With Selection.Borders(aEdge)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
End Sub

Je fais appel de cette façon à cette fonction:

DrawLine (xlEdgeLeft)
DrawLine (xlEdgeTop)
DrawLine (xlEdgeBottom)
DrawLine (xlEdgeRight)
'DrawLine (xlInsideVertical)
'DrawLine (xlInsideHorizontal)

Quand je n'ai qu'une cellule à encadrer, je ne peux pas
utiliser xlInsideVertical et xlInsideHorizontal. Comment
faire pour dire

- si je n'ai qu'une seule cellule à encadrer alors
n'utilise pas xlInsideVertical et xlInsideHorizontal

- si j 'ai deux cellule l'une au dessus de l'autre tu
peux

utiliser xlInsideHorizontal

- si j 'ai deux cellule l'une à côté de l'autre tu peux
utiliser xlInsideVertical

- - si j 'ai Quatre cellules quit sont en contact alors
tu

peux utiliser xlInsideVertical et xlInsideHorizontal

Est ce que c'est faisable?

Keawee
.



Avatar
gb
Bonjour.

Je crois que tu peux simplement ajouter une commande On Error Resume Next
dans la procédure DrawLine:

Sub DrawLine(aEdge)
On Error Resume Next
With Selection.Borders(aEdge)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
End Sub

gb

"Frédéric Sigonneau" wrote in message
news:
Bonjour,

Essaye de modifier ta procédure comme ceci :

'===================== > Sub DrawLine(aEdge)
With Selection
Select Case .Count
Case 1:
If aEdge = xlInsideVertical Or aEdge = xlInsideHorizontal _
Then Exit Sub
Case 2:
If .Columns.Count = 1 And aEdge = xlInsideVertical Then Exit Sub
If .Rows.Count = 1 And aEdge = xlInsideHorizontal Then Exit Sub
Case Is > 2:
If .Areas.Count = 1 Then
With .Borders(aEdge)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
End If
End Select
End With
End Sub
'===================== >
NB : Ça ne fonctionnera pas correctement si la sélection à mettre en forme
est

discontinue (composée de plusieurs plages distinctes). Si c'est ton
besoin, ça

nécessitera plus de code, mais ça devrait être possible malgré tout.

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonjour,

J'aimerais avoir votre aide. J'utilise cette fonction pour
définir les Borders de ma cellule ou de mes cellules dans
une selection.

Sub DrawLine(aEdge)
With Selection.Borders(aEdge)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
End Sub

Je fais appel de cette façon à cette fonction:

DrawLine (xlEdgeLeft)
DrawLine (xlEdgeTop)
DrawLine (xlEdgeBottom)
DrawLine (xlEdgeRight)
'DrawLine (xlInsideVertical)
'DrawLine (xlInsideHorizontal)

Quand je n'ai qu'une cellule à encadrer, je ne peux pas
utiliser xlInsideVertical et xlInsideHorizontal. Comment
faire pour dire

- si je n'ai qu'une seule cellule à encadrer alors
n'utilise pas xlInsideVertical et xlInsideHorizontal

- si j 'ai deux cellule l'une au dessus de l'autre tu peux
utiliser xlInsideHorizontal

- si j 'ai deux cellule l'une à côté de l'autre tu peux
utiliser xlInsideVertical

- - si j 'ai Quatre cellules quit sont en contact alors tu
peux utiliser xlInsideVertical et xlInsideHorizontal

Est ce que c'est faisable?

Keawee