XL 2013 Bordure sur lignes filtrées

  • Initiateur de la discussion Initiateur de la discussion Chris401
  • 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 !

Chris401

XLDnaute Accro
Bonsoir à tous

J'ai besoin de vos lumières pour le fichier joint.

Quand les lignes ne sont pas filtrées, la bordure est appliquée à chaque changement de date (colonne A)

J'essaye vainement de trouver le code qui mettrait une bordure à chaque changement de numéro de semaine (colonne C) sur lignes filtrées (Filtre appliqué en colonne B - Choix d'un seul nom)

Merci pour votre aide.

Amicalement
Chris
 

Pièces jointes

Re : Bordure sur lignes filtrées

Bonjour,

Cette ligne ne peut pas fonctionner :


If cel.Value = cel.Offset(1, 0).Value Is Nothing Then


soit

If cel.Value = cel.Offset(1, 0).Value Then 'test de la cellule active avec la ligne de dessous

soit juste si quelque chose de présent dans ligne de dessous

If not cel.Offset(1, 0) Is Nothing Then

soit un autre test que tu aimerais faire ???



A+++
Zon
 
Re : Bordure sur lignes filtrées

Bonjour zon et merci de m'avoir lu.

Le test que je veux faire : une fois les lignes filtrées dans la colonne B on regarde la colonne C. Dès que la valeur du dessous est différence de celle du dessus la bordure est appliquée.

Peux-tu me corriger le code STP ?

Cordialement
Chris

Exemple de ce que j'attends : Filtre sur NOM1
 

Pièces jointes

  • Capture.JPG
    Capture.JPG
    37.6 KB · Affichages: 49
  • Capture.JPG
    Capture.JPG
    37.6 KB · Affichages: 51
Re : Bordure sur lignes filtrées

Bonjour chris401, zon,

Pas sûr d'avoir bien compris (et moins sûr encore qu'avec un nombre de lignes plus grand, la "lisibilité" ne sera pas desservie par un temps d'exécution envahissant), mais bon ...
Dans le bloc Else teste les quelques adaptations ci-dessous:
VB:
temp = 3
Set Plage = Range("C3:C" & Derlg)
For Each cel In Plage.SpecialCells(xlCellTypeVisible)
    If cel <> Cells(temp, 3) Then
    With Range(Cells(temp, 1), Cells(temp, [NbCol]))
       .Borders(xlEdgeBottom).LineStyle = 5
       .Borders(xlEdgeBottom).Weight = 4
       .Borders(xlEdgeBottom).ColorIndex = 3
    End With
    End If
    temp = cel.Row
Next cel
 
Re : Bordure sur lignes filtrées

Bonjour Chris401, Zon, Modeste,

Mettre des bordures sur les plages filtrées me paraît assez laborieux : il faut du VBA.

Alors qu'il est bien simple de les colorer par Mise en forme conditionnelle (MFC) :

Code:
=ET(ESTNUM($A1);SOUS.TOTAL(3;$C:$C)<NBVAL($C:$C);MOD($C1;2))
=ET(ESTNUM($A1);SOUS.TOTAL(3;$C:$C)<NBVAL($C:$C);NON(MOD($C1;2)))
Avec la fonction SOUS.TOTAL la MFC n'est appliquée que s'il y a filtrage.

Fichier joint.

A+
 

Pièces jointes

Dernière édition:
Re : Bordure sur lignes filtrées

Re,

On peut aussi appliquer les couleurs à partir des dates quand le tableau n'est pas filtré :

Code:
=ESTNUM($A1)*((SOUS.TOTAL(3;$A:$A)=NBVAL($A:$A))*MOD($A1;2)+(SOUS.TOTAL(3;$A:$A)<NBVAL($A:$A))*MOD($C1;2))

=ESTNUM($A1)*((SOUS.TOTAL(3;$A:$A)=NBVAL($A:$A))*NON(MOD($A1;2))+(SOUS.TOTAL(3;$A:$A)<NBVAL($A:$A))*NON(MOD($C1;2)))
Fichier (2).

A+
 

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

Réponses
0
Affichages
373
Réponses
10
Affichages
604
Réponses
5
Affichages
1 K
Retour