Microsoft 365 Cadrillage automatique

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

BSF

XLDnaute Junior
Bonjour,

Je voudrais automatiser le cadrillage d'un tableau excel.
L'enjeu est de faciliter la lecture des données qui seront regroupées par 1, ou 2 ou 3 lignes. Entre chaque section, il y aura donc une ligne grasse. C'est ce que j'ai fait "manuellement" sur le fichier joint.
Merci d'avance pour votre aide 🙂
 

Pièces jointes

Bonjour,
Dans l'état il faudrait passer par VBA pour obtenir ce résultat. C'est ok pour vous ? Il faut se baser sur les numéros de la 1e colonne ?

Autrement, pour éviter du VBA je vous conseillerai de faire un TCD, c'est justement inclus par défaut ce genre de présentation.
 
Bonjour à tous,
Avec une MFC (Mise en Forme Conditionnelle) mais à la condition qu'il n'y ai aucune ligne vierge.
Le principe, à chaque changement de valeur dans la colonne G, on met un trait (Rouge ici pour un meilleur visuel)
Voici ce que cela pourrait donner
1773128799210.png


Sinon, je rejoins @Saboh12617 concernant du VBA
@+ Lolote83
 
Bonjour à tous,
Avec une MFC (Mise en Forme Conditionnelle) mais à la condition qu'il n'y ai aucune ligne vierge.
Le principe, à chaque changement de valeur dans la colonne G, on met un trait (Rouge ici pour un meilleur visuel)
Voici ce que cela pourrait donner
Regarde la pièce jointe 1228490

Sinon, je rejoins @Saboh12617 concernant du VBA
@+ Lolote83
Bonjour Saboh et Lolote,
Tout d'abord, merci pour vos réponses rapide. J'ai tenté la MFC comme indiqué mais je ne parviens pas au même résultat. Je pense que le VBA serait peut-être plus approprié. A vous lire et un grand merci par avance encore pour votre soutien 😉
 
Bonjour à tous,

Avec une MFC les bordures appliquées sont forcément fines.

En VBA on peut faire ce qu'on veut :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
On Error Resume Next 'si aucune SpecialCell
With ListObjects(1).Range
    .Borders.Weight = xlThin 'RAZ avec bordures fines
    With Intersect(.Columns(1).SpecialCells(xlCellTypeConstants, 1).EntireRow, .Cells)
        .Borders(xlEdgeTop).Weight = xlMedium 'xlThick
        .Borders(xlInsideHorizontal).Weight = xlMedium 'xlThick
    End With
   .Borders(xlEdgeBottom).Weight = xlMedium 'xlThick
End With
End Sub
A+
 

Pièces jointes

Dernière édition:
Re bonjour,
Peut tu faire une copie d'écran comme je l'ai fait ou renvoyé on fichier avec la MFC afin que l'on se rende mieux compte de tes dires

@+ Lolote83
oui, pas de pb. Voici une copie d'écran
Bonjour à tous,

Avec une MFC les bordures appliquées sont forcément fines.

En VBA on peut faire ce qu'on veut :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
On Error Resume Next 'si aucune SpecialCell
With ListObjects(1).Range
    .Borders.Weight = xlThin 'RAZ avec bordures fines
    With Intersect(.Columns(1).SpecialCells(xlCellTypeConstants, 1).EntireRow, .Cells)
        .Borders(xlEdgeTop).Weight = xlMedium 'xlThick
        .Borders(xlInsideHorizontal).Weight = xlMedium 'xlThick
    End With
   .Borders(xlEdgeBottom).Weight = xlMedium 'xlThick
End With
End Sub
A+

1773153751355.png

Merci JOB 75 pour le VBA. Il faut que je regarde ça 🙂. Concernant la MFC, pas de pb que la ligne soit fine du moment que le "ouge" facilite la lecture. Mais je ne suis pas parvenu à reproduire le résultat de Lolote. Par ailleurs, c'est contraignant de saisir à chaque ligne le bon chiffre pour que la MFC fonctionne bien.
 
Bonsoir
a utiliser le .cells de l'entirerow j'utilise le borderaround perso
VB:
Option Explicit
'object_de_type_range.BorderAround(style,epaisseur,index 1 à 56 de la palette en cour d'utilisation
'le dernier argument ne fonctionne pas sur 2013
'couleur(ne fonctionne pas sur 2013

Private Sub Worksheet_Change(ByVal Target As Range)
    Application.ScreenUpdating = False
    On Error Resume Next 'si aucune SpecialCell
    With ListObjects(1).Range
        .Cells.BorderAround 1, xlThin, 0 'raz toute les bordures en mettant une bordure fine noire
        'ou
        '.Cells.Borders.LineStyle = xlNone 'raz vraiment toute les bordures
        With Intersect(.Columns(1).SpecialCells(xlCellTypeConstants, 1).EntireRow, .Cells)
            .Cells.BorderAround 1, xlThick, 3
        End With
    End With
    Application.ScreenUpdating = True
End Sub
ou la dernière qui a changé
VB:
Option Explicit
'object_de_type_range.BorderAround(style,epaisseur,index 1 à 56 de la palette en cour d'utilisation
'le dernier argument ne fonctionne pas sur 2013
'couleur(ne fonctionne pas sur 2013

Private Sub Worksheet_Change(ByVal Target As Range)
   ' Application.ScreenUpdating = False
   Dim r
   On Error Resume Next 'si aucune SpecialCell
    With ListObjects(1).Range
        With Intersect(.Rows(Target.Row), Target)
           Set r = Range(.ListObject.Name & "[#All]")
           r.Cells.Borders.LineStyle = xlNone 'raz vraiment toute les bordures
         DoEvents
         r.Rows(.Row).Cells.BorderAround 1, xlThick, 3
        End With
    End With
   ' Application.ScreenUpdating = True
End Sub
Nb:
oserais-je dire que on error resume next pour gérer un double bloc with parent/child n'est pas une bonne idée ca complique plus que ça n'aide
Patrick
 
il faut ajouter cette ligne épaise partout et la modifier si nécessaire
Bonjour, là, ça fonctionne bien à partir de ton tableau. 🙂. J'ai repris ta formule pour la mettre dans mon tableau d'origine en passant donc par une MFC
1773408758546.png
Mais là, je "bug". je n'arrive pas à créer la ligne en gras et je n'arrive pas non plus à mettre une simple ligne fine rouge
 
Dernière édition:
On applique cette ligne en gras à toutes vos lignes (éventuellement ne pas au dernier, dépend ...) parce qu'une MFC ne sait par créer une ligne gras !!! Donc c'est nécessaire qu'elle est déjà là.
Puis on la cache ou change en ligne "fine rouge" avec vos MFC. Donc il faut penser "à l'inverse".
 
- 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
18
Affichages
509
Réponses
1
Affichages
221
Réponses
15
Affichages
746
Réponses
4
Affichages
212
Réponses
23
Affichages
551
Réponses
6
Affichages
295
Retour