Fonction pour faire des Borders/Tableaux

Klaas

XLDnaute Nouveau
Bonjour.

J'ai une macro avec plein de cas, qui donne des valeurs sur ma feuille excel. A la fin je souhaite mettre en page le tableau et l'encadré. Pour cela, je selectionne ma range et lui applique, ce code.

Code:
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

Cependant, j'ai plein de cas et avec toutes ces lignes mon code fait plus de 1000 lignes. Je voudrais le raccourcir. Pour cela, je pensais faire une fonction Borders.

Selectionner mon Range et le nommer et appeler la fonction Border(Range)

Cependant je ne sais pas comment procéder.

Comment faire ?

Merci
 

sousou

XLDnaute Barbatruc
Re : Fonction pour faire des Borders/Tableaux

Bonjour Klaas
voici une méthode tu appelles une macro borders et tu choisi le nom de la procdéure d'encadrement,
Mais je ne suis pas sur que cela va alléger beaucoup ton code, je n'ai peut-être pas tous saisie.
Sub borders()
rep = InputBox("Nom de l'encadrement", "Encadrement")
If rep = "" Then Exit Sub
Select Case rep
Case "nom1"
Call nom1(Selection)
Case "nom2"
Call nom2(Selection)
End Select
End Sub

Sub nom1(zone)
' définition de tes encadrements
With zone
.borders(xlDiagonalUp).LineStyle = xlNone
With .borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
End With
End Sub
Sub nom2(zone)
' définition de tes encadrements
With zone
.borders(xlDiagonalUp).LineStyle = xlNone
With Selection.borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
End With
End Sub
 

Klaas

XLDnaute Nouveau
Re : Fonction pour faire des Borders/Tableaux

Non, la c'est juste un déplacement du code. Je souhaite en fait réaliser une fonction qui permet de le faire pour chaque tableau.

Je vais essayer de mieux expliquer.

Ma procédure est composée comme suit:

Code:
Sub Procédure()
 
If Cas 1 Then
 
TRAITEMENT ET AFFICHAFE VALEUR DANS FEUILLE
 
Range_1 = Range("A4:B8")
 
Fonction_Border(Range_1)
 
End if 
 
If Cas 2 Then
 
TRAITEMENT ET AFFICHAFE VALEUR DANS FEUILLE
 
Range_2 = Range("A10:B14")
 
Fonction_Border(Range_2)
 
End if 
 
If Cas 3 Then
 
TRAITEMENT ET AFFICHAFE VALEUR DANS FEUILLE
 
Range_3 = Range("A24:B28")
 
Fonction_Border(Range_3)
 
End if 
 
....
....
....
 
End sub
 
 
Fonction Fonction_Border(Range_i as Range)
 
Range_i.select
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
 
End function

Mais cela ne marche pas je ne sais pas comment procéder, mais je veux procéder de cette facon.

J'espére que tu comprends mieux mon problème. Merci de ton aide en tout cas
 

Staple1600

XLDnaute Barbatruc
Re : Fonction pour faire des Borders/Tableaux

Bonjour à tous


Un exemple basique (à toi de l'adapter à ton besoin)

Code:
Function bordures(r As Range)
r.Borders.LineStyle = xlContinuous
r.Borders.Weight = xlMedium
r.Borders.ColorIndex = 10
End Function
Code:
Sub test()
bordures Range("A1:A10")
End Sub
 
Dernière édition:

Discussions similaires

Réponses
5
Affichages
1 K