Mise en forme automatique ligne

  • Initiateur de la discussion Initiateur de la discussion Jeremouse1
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

J

Jeremouse1

Guest
Bonjour,

j'ai un fichier avec tout à gauche des références. Entre chaque référence identique il faut que la bordure horizontale soit fine sur toute la longueur et entre deux références différentes il faut une bordure horizontale épaisse.

Comme je suis amené à déplacer souvent des lignes, j'aimerai savoir si il est possible d'automatiser cette mise en forme ? Avec si possible un bouton sur une autre feuille pour lancer cette macro.

Merci d'avance

Jeremouse1
 

Pièces jointes

Re : Mise en forme automatique ligne

Merci tout d'abord pour ta réponse. Voici le code de la macro que j'ai enregistré. J'ai supprimé les Activate et les .select. J'ai également supprimé les blocs qui se répétaient lorsque je faisais la même opération plusieurs fois.

Merci d'avance pour votre aide.

Jeremouse1

Code:
Sub Bordure_Auto()
'
' Bordure_Auto Macro

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

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


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

End Sub
 
Re : Mise en forme automatique ligne

Haa oui c'est vrai que ça peut marcher par MFC, mais en réalité je ne peux pas mettre de couleur, il faut impérativement que la séparation se fasse par une différence d'épaisseur de la bordure, j'imagine qu'il n'est pas possible de modifier cette épaisseur par MFC ?

Jeremouse1
 
Re : Mise en forme automatique ligne

Re,

très bien merci beaucoup pour ton aide, par hasard est ce que tu saurais comment étendre une mise en forme conditionelle sans changer tout le format des celulles sur Excel 2003 ? Par exemple lorsque j'étend la MFC, les celulles qui reçoivent cette MFC change de couleur ou de police.

Merci d'avance

Jeremouse1
 
Re : Mise en forme automatique ligne

J'ai un autre problème avec cette mise en forme conditionnelle. Dans le vrai fichier Excel, à droite des références il y a d'autres informations, j'aimerais que ces autres celulles respectent la même règle que la référence, mais que la mise en forme conditionnelle porte toujours sur la référence, je ne sais pas si j'ai été très clair ? Est ce que cela serait possible ?
 
Re : Mise en forme automatique ligne

Re,

dans la version que j'envoie j'ai résolu le problème des autres colonnes en mettant la formule "=$A1=$A2" dans la MFC. Par contre lorsque j'étends ma mise en forme au celulle en dessous, j'aimerais que seul la MFC soit copiée et pas toute la mise en forme comme la couleur etc ... tu penses que c'est possible de copier uniquement la MFC ?

Merci d'avance,

Jeremouse1
 

Pièces jointes

Re : Mise en forme automatique ligne

Re,

En mettant les données en mode tableau, tu n'as pas besoin de copier vers le bas, dès que tu inséreras une donnée sur la ligne du dessous, le format d'origine sera en place.
Edit: Cela ne fonctionne pas très bien non plus, désolé!

JHA
 

Pièces jointes

Dernière édition:
Re : Mise en forme automatique ligne

Merci pour ta réponse, en fait ouais je ne peux pas mettre mon fichier dans ce mode tableau. Tu penses qu'il est possible de réaliser cela grâce à une macro VBA ?

Jeremouse1
 
Re : Mise en forme automatique ligne

Bonjour, le Fil, le Forum,

Peut-être ainsi :

Code:
Option Explicit
Sub Quadrillage_particulier()
Dim i As Long
With Range("A1").CurrentRegion
    .Borders.Value = 0
    .Borders(xlInsideHorizontal).LineStyle = xlContinuous
End With
For i = 1 To Range("A65536").End(xlUp).Row
    If Range("A" & i) <> Range("A" & i).Offset(1, 0) Then Range("A" & i).Resize(, 3).Borders(xlEdgeBottom).Weight = xlThick
Next
End Sub

A bientôt 🙂
 
Re : Mise en forme automatique ligne

Merci DoubleZero pour ta réponse 🙂

Ta macro a l'air de plutôt bien marcher. Voilà comme je l'ai modifié :

Code:
Option Explicit
Sub Quadrillage_particulier()
Dim i As Long
With Range("A5").CurrentRegion
    .Borders.Value = 0
    .Borders(xlInsideHorizontal).LineStyle = xlContinuous
End With
For i = 5 To Range("A65536").End(xlUp).Row
    If Range("A" & i) <> Range("A" & i).Offset(1, 0) Then Range("A" & i).Resize(, 70).Borders(xlEdgeBottom).Weight = xlThick
Next
End Sub

J'ai modifié le Resize pour qu'il aille jusqu'au bout de la feuille. J'ai essayé de modifier le With Range("A1"). En effet j'aimerais que les modifications ne se fassent qu'à partir de la ligne 5, cela n'a pas l'air de marcher pour moi, saurais-tu ce qu'il faut modifier ?

J'ai également un soucis dans le fait que la macro enlève toutes les burdures verticales sur son passage, est ce qu'il serait possible de modifier la macro pour que seules les bordures horizontales soient modifiées et pas les verticales ?

Merci d'avance,

Jeremouse1
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour