Ajout de ligne et maintien de la mise en forme

Bonjour le forum,

Je fais appel à vous pour un sujet d'ordre esthétique concernant une version modifiée de SPASME que LouReed a conçu pour moi.

Sur cette version la sélection d'une activité sur la feuille "planning" sur plusieurs jour se fait avec une mise en forme faisant disparaitre les barres intérieures des cases sélectionnées pour plus de visibilité.

Or si on ajoute plusieurs lignes avec un tri de ces lignes la mise en forme ne suit pas.

Est-il possible de remédier au problème ?

Merci d'avance.

Ci-après un exemple de ce qui se passe et le fichier SPASME modifié en PJ.

exemple 1 exemple 2

Quelqu'un pour m'aider ? Personne ?

Même une réponse négative, que je ne cherche pas en vain une solution qui n'existe pas...

Bonsoir,

la solution est VBA, car déjà indiqué sur un autre support, dans un tableau structuré, "la grille" du tableau ne bouge pas lors des tris, seules les données sont déplacées ainsi que le contenu graphique de la cellule, mais tout ce qui touche aux bordures (la grille) cela reste en place.

Ce problème ne se pose pas pour les filtres car les données ne sont pas déplacées, elle sont masquées.

Pour répondre à votre demande et vu que la première cellule se trouve en ligne 23 et colonne 78, qu'il y a 397 colonnes et 103 lignes, veuillez trouver ci dessous la procédure de mise en forme, à savoir si une couleur en "dur" c'est à dire mise en place par le code VBA de mise en place d'activité à la même couleur sur la cellule de droite, alors pas de verticale, dans les autres cas il y aura une bordure à droite, ce qui donne :

Sub Mise_en_forme()
    Application.ScreenUpdating = False
    Application.EnableEvents = False
    Application.Calculation = xlCalculationManual
    Dim Ligne As Long, Colonne As Long, Cel As Range
    For Ligne = 23 To 126
        For Colonne = 78 To 475
            Set Cel = Cells(Ligne, Colonne)
            If Cel.Interior.Color <> Cel.Offset(, 1).Interior.Color Then
                Cel.Borders(xlEdgeRight).LineStyle = xlContinuous
            Else
                If Cel.Interior.Color = 16777215 Then
                    Cel.Borders(xlEdgeRight).LineStyle = xlContinuous
                Else
                    Cel.Borders(xlEdgeRight).LineStyle = xlNone
                End If
            End If
        Next Colonne
    Next Ligne
    Application.Calculation = xlCalculationAutomatic
    Application.EnableEvents = True
End Sub

Après plusieurs tests ce code met entre 28 et 32 secondes "à tourner" malgré le grand nombre de cellule.

Reste plus qu'à l'appeler à la suite d'un tri de données du tableau, et/ou créer un bouton pour mettre à jour le tableau de temps en temps.

@ bientôt

LouReeD

@LouReed

Merci une nouvelle fois.

Ça fonctionne parfaitement.

Rechercher des sujets similaires à "ajout ligne maintien mise forme"