Créer automatiquement bordures a intervalles réguliers

CesarineH

XLDnaute Nouveau
Bonjour,

J'utilise un fichier excel pour le dessin de patron de crochet (tricots et point de croix) et je cherche une façon d’insérer automatiquement des bordures sur l'ensemble de la plage colorée et des bordures épaisses toutes les 5 lignes et toutes les 5 colonnes.

Dans le fichier joint, il y a sur la feuille 1 un exemple des bordures que je cherche à créer.

J'ai l'impression qu'excel travaille difficilement a partir de cellules sans texte donc je précise que j'ajoute toujours en première ligne et première colonne une série de caractère qui à borde mon dessin (voir modèle), donc si ma plage de dessin est B2:CW26, j'ai du texte saisi dans les plages A1:CW1 et A1:A26.

La modification peut se faire sur la même page ou sur une nouvelle, et les lignes peuvent être appliquées au choix suivant ce qui est le plus simple a la plage avec des couleurs, a l'ensemble de la feuille.

Merci d'avance à toute personne qui tente de m'aider.

PS: J'ai joint le fichier en deux exemplaire, une fois avec les macros qui me serves a dupliquer lignes et colonnes et une fois sans les macros.
 

Pièces jointes

  • Test 4 avec Macros.xlsm
    107.5 KB · Affichages: 10
  • Test 4 sans Macro.xlsx
    96.6 KB · Affichages: 7

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonsoir @CesarineH ,

Une piste dans le fichier joint.
  • la macro est dans le module de ThisWorkbook
  • elle s'exécute quand on active une feuille de calcul au sein du classeur
  • elle ne s'exécute que pour les feuilles contenant un X dans la cellule A1
edit: v1a correction d'une coquille
 

Pièces jointes

  • CesarineH- Bordures- v1a.xlsm
    88.7 KB · Affichages: 16
Dernière édition:

CesarineH

XLDnaute Nouveau
Bonsoir @CesarineH ,

Une piste dans le fichier joint.
  • la macro est dans le module de ThisWorkbook
  • elle s'exécute quand on active une feuille de calcul au sein du classeur
  • elle ne s'exécute que pour les feuilles contenant un X dans la cellule A1
edit: v1a correction d'une coquille

Bonjour,

Merci beaucoup ça fonctionne parfaitement et c'est exactement ce que je cherchait.
 

job75

XLDnaute Barbatruc
Bonjour CesarineH, mapomme,

Une solution sans macro dans le fichier joint.

1) Sélectionnez la plage B2:CW26.

2) Créez les bordures de contour et intérieures avec épaisseur moyenne.

3) Créez la mise en forme conditionnelle (MFC) avec 2 conditions :

- bordure du bas, formule =MOD(LIGNE()-1;5)

- bordure de droite, formule =MOD(COLONNE()-1;5)

A+
 

Pièces jointes

  • MFC bordures(1).xlsx
    107.8 KB · Affichages: 18

job75

XLDnaute Barbatruc
Une solution VBA avec cette macro dans le ThisWorkbook du fichier joint :
VB:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim deb As Range, i&
Application.ScreenUpdating = False
With Sh.UsedRange
    .Borders.LineStyle = xlNone 'RAZ
    Set deb = .Find("", , xlFormulas)
    With deb.Resize(.Rows.Count - deb.Row + 1, .Columns.Count - deb.Column + 1)
        .Borders.Weight = xlThin
        For i = 7 To 10: .Borders(i).Weight = xlMedium: Next 'contour
        For i = 1 To .Rows.Count
            If i Mod 5 = 0 Then .Rows(i).Borders(xlEdgeBottom).Weight = xlMedium
        Next
        For i = 1 To .Columns.Count
            If i Mod 5 = 0 Then .Columns(i).Borders(xlEdgeRight).Weight = xlMedium
        Next
    End With
End With
End Sub
A+
 

Pièces jointes

  • VBA bordures(1).xlsm
    116.3 KB · Affichages: 8

Discussions similaires