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

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
 

Gelinotte

XLDnaute Accro
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
 

vincent team

XLDnaute Nouveau
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

  • test.xls
    71 KB · Affichages: 71
  • test.xls
    71 KB · Affichages: 78
  • test.xls
    71 KB · Affichages: 72

Gelinotte

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

Bonsoir,

Désolé pour le délais.

J'ai pioché un bout.

M'enfin ... examine ceci si convient.

G
 

Pièces jointes

  • test(1).xls
    72.5 KB · Affichages: 92
  • test(1).xls
    72.5 KB · Affichages: 93
  • test(1).xls
    72.5 KB · Affichages: 112

Gelinotte

XLDnaute Accro
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

  • test(2).xls
    74 KB · Affichages: 109
  • test(2).xls
    74 KB · Affichages: 109
  • test(2).xls
    74 KB · Affichages: 107
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
311 729
Messages
2 081 970
Membres
101 852
dernier inscrit
dthi16088