Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2021 Encadrement de cellule sur tableau dynamique

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 !

treza88

XLDnaute Occasionnel
Bonjour à tous,

J'ai un tableau qui ressemble au fichier joint, je voudrais trouver le meilleur moyen d'encadrer les cellules qui vont de I2 a V24.
Dans un tableau fixe, pas de soucis, mais je suis dans un tableau qui par macro augmente en longueur, comme en hauteur, et pas forcément tout le temps, des fois que la longueur ou que la hauteur ou pas du tout.

J'ai fait une macro qui rempli automatiquement toutes la zone, mais sur le fichier de travail est comporte plusieurs millier de ligne et centaine de colonnes, et ça prend un certains temps sur l’exécution de la macro complète.

Il y aurait il un moyen de le faire autrement ?

Je pensais éventuellement à une MFC, mais je ne sais pas si c'est possible.
 

Pièces jointes

Bonjour

VB:
Sub Encdrement()
    With Sheets("Feuil1").Range("I2:" & Sheets("Feuil1").Cells.SpecialCells(xlLastCell).Address).Borders
        .LineStyle = xlNone ' Effacer toutes les bordures existantes
        .LineStyle = xlContinuous ' Recréer des bordures autour de chaque cellule
        .Weight = xlThin ' Recréer des bordures autour de chaque cellule
        .ColorIndex = xlAutomatic ' Recréer des bordures autour de chaque cellule
    End With
End Sub
 
bonjour teraz88,
un essai
VB:
Sub Encdrement()
     ActiveWorkbook.Save
     With Sheets("Feuil1")
          Set c1 = .Cells.Find("*", after:=.Range("A1"), searchorder:=xlRows, searchdirection:=xlPrevious)     'dernière cellule en bas
          Set c2 = .Cells.Find("*", after:=.Range("A1"), searchorder:=xlColumns, searchdirection:=xlPrevious)     'dernière cellule non-vide de la première ligne
          'MsgBox c1.Address & vbLf & c2.Address
          With .Range("I1")                  'votre coin gauche
               .Resize(, Columns.Count - .Column + 1).EntireColumn.Borders.LineStyle = xlNone     'supprimer les bordures existantes
               .Resize(c1.Row - .Row + 1, Application.Max(1, c2.Column - .Column + 1)).Borders.LineStyle = xlContinuous     'établir des nouvelle bordures
          End With
     End With
End Sub
 
Merci à vous trois, même si si le but était à la base d'éviter de passer par une macro, j'ai trouvé des choses intéressante dans vos codes.

Par contre sylvanu, n'y a t'il pas un moyen de remplacer "zz" et "1000" par une recherche de la dernière ligne non vide et la dernière colonne non vide ?
Mais en formule je suis un peu largué.
 
Par contre sylvanu, n'y a t'il pas un moyen de remplacer "zz" et "1000" par une recherche de la dernière ligne non vide et la dernière colonne non vide ?
C'est exactement ce que fait la formule.
VB:
EQUIV("ZZZ";$A:$A;1);
Recherche "zzz" en colonne A, et comme évidemment il ne la trouve pas, il renvoie la dernière cellule non vide en A.
Code:
EQUIV(9^9;$1:$1)
Recherche le nombre 9^9 en ligne 1, et comme évidemment il ne la trouve pas, il renvoie la dernière cellule non vide en ligne 1.
 
Bonjour 😉,

Une autre p'tite macro. Pour 15 000 lignes de données et 500 colonnes, l'encadrement prend 1,4 s (2,1 s à la première exécution).

Le bouton Initialiser permet d'initialiser à 15 000 lignes de données et 500 colonnes. A exécuter avant d'encadrer.

Le code de la macro :
VB:
Sub Encadrement()
Dim debut#
   debut = Timer
   Application.ScreenUpdating = False
   Cells(2, "i").Borders.LineStyle = xlContinuous
   Cells(2, "i").Copy
   Range(Cells(2, "i"), Cells(Cells(Rows.Count, "a").End(xlUp).Row, Cells(1, Columns.Count).End(xlToLeft).Column)).PasteSpecial xlPasteFormats
   MsgBox Format(Timer - debut, "0.00\ sec.")
End Sub
 

Pièces jointes

Dernière édition:
Bonjour,

Ne peux-tu utiliser un Tableau Structuré ?
 
- 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
1
Affichages
287
Réponses
5
Affichages
377
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…