Ajout bordures sur lignes visibles d'un tableau filtré (vba)

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 !

vincent team

XLDnaute Nouveau
Bonjour à tous,

Débutant en vba, je sèche sur un problème probablement tout simple pour vous.
J'ai un tableau avec des filtres et des lignes cahées. Je désire ajouter une bordure basse sur toute la ligne à chaque changement de valeur dans une colonne (pour rendre le tableau plus lisible). Le problème avec mon code c'est qu'au moment de la comparaison de la valeur, il compare la cellule active avec la cellule du dessous mais qui est parfois cachée. Il devrait la comparer avec la cellule "visible" suivante. Voir code ci-dessous.
Quelqu'un aurait une idée pour palier à ce problème ?

Merci d'avance
Slts/Viince

----------------------------

Sub Ajout_Bordures()

Dim cell As Range
Dim col As Integer

For Each cell In Range([F8], [F8].End(xlDown)).SpecialCells(xlCellTypeVisible)

col = cell.Row

If cell.Value <> cell.Offset(1, 0).Value Then ' ***** C'est là que ca coince !!!!!

Range("A" & col, "BE" & col).Select

With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlHairline
.ColorIndex = xlAutomatic
End With

Else


Range("A" & col, "BE" & col).Select
Selection.Borders(xlEdgeBottom).LineStyle = xlNone


End If

Next

End Sub
 
Re : Ajout bordures sur lignes visibles d'un tableau filtré (vba)

Bonjour,

Regarde ceci, je crois que ça peut correspondre à ton besoin.

Code:
Sub Ajout_Bordures()
 
Dim cell As Range
Dim Lign As Integer
 
For Each cell In Range("_FilterDataBase").Offset(6, 8).Resize(Range("_FilterDataBase"). _
   Rows.Count - 1).SpecialCells(xlCellTypeVisible)
   Lign = cell.Row
   On Error Resume Next
   If cell.Row > Range("F65535").End(xlUp).Row Then End
   If cell.Value <> Range("_FilterDataBase").Offset(6 + Lign, 0).SpecialCells(xlCellTypeVisible).Value Then ' ***** C'est là que ca coince !!!!!
      Range("A" & Lign, "BE" & Lign).Select
      With Selection.Borders(xlEdgeBottom)
         .LineStyle = xlContinuous
         .Weight = xlHairline
         .lignorIndex = xlAutomatic
      End With
   Else
      Range("A" & Lign, "BE" & Lign).Select
      Selection.Borders(xlEdgeBottom).LineStyle = xlNone
   End If

Next
End Sub

Le seul inconvénient que j'y trouve, c'est l'épaisseur de la bordure qui n'est pas très différenciable si on garde le quadrillage de la feuille visible. Mais je ne connais pas ton classeur d'origine.

G
 
Re : Ajout bordures sur lignes visibles d'un tableau filtré (vba)

Merci Gelinotte pour ta proposition.
Je l'ai essayée mais je n'ai pas obtenu le résultat voulu, en fait il me met une bordure à chaque ligne.
Je joins le fichier, si à l'occasion tu peux y jeter un oeil...
Merci d'avance
Slts
 

Pièces jointes

Re : Ajout bordures sur lignes visibles d'un tableau filtré (vba)

Bonsoir,

J'ai regardé le code, mais j'avoue que là je suis largué...

Ce fichier a exactement le même code, mais un peu commenter pour t'aider à comprendre ce fonctionnement.

G
 

Pièces jointes

Dernière édition:
- 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

Discussions similaires

Retour