roblème de mise en forme d'une cellule par macro

Nagrom

XLDnaute Occasionnel
Problème de mise en forme d'une cellule par macro

Bonsoir à tous,

La macro ci-dessous me permet d'éffacer le contenu des cellules sélectionnées, de supprimer la couleur de remplissage et les motifs, d'inscrire le caractère "1" en blanc et mettre les bordures fines en noir.

Code:
Sub Macro6()

    Selection.ClearContents
    Selection.FormulaR1C1 = "1"
    Selection.Font.ColorIndex = 2
    Selection.Font.Bold = False
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlInsideVertical)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    Selection.Interior.ColorIndex = xlNone

End Sub

Cette macro marche lorsque je sélectionne plusieurs cellules mais indique une erreur lorsque je l'applique à une seule cellule, au niveau de la ligne:
Code:
.LineStyle = xlContinuous

Oriez vous une solution.

Merci pour votre aide.

Nagrom
 
Dernière édition:

vbacrumble

XLDnaute Accro
Re : roblème de mise en forme d'une cellule par macro

Bonsoir

EDITION: à tester
Code:
Sub Macro66()
Dim r As Range
Set r = Selection
    With r
        .Clear
        .Value = 1
        .Font.ColorIndex = 2
        .BorderAround , xlThin, xlColorIndexAutomatic
    End With
End Sub



Tu peux simplifier ton code

Pour effacer contenu et mise en forme.
Code:
Sub Macro6bis()
Selection.Clear
End Sub
 
Dernière édition:

vbacrumble

XLDnaute Accro
Re : roblème de mise en forme d'une cellule par macro

Re



Cela donne-t-il le résultat escompté ?

Code:
Sub Macro666()
Dim r As Range
Dim i As Long
Set r = Selection
    With r
        .Clear
        .Value = 1
        .Font.ColorIndex = 2
        For i = 1 To r.Rows.Count
        .Item(i, 1).BorderAround , xlThin, xlColorIndexAutomatic
        Next
    End With
End Sub
 

Nagrom

XLDnaute Occasionnel
Re : Problème de mise en forme d'une cellule par macro

Bonsoir vbacrumble, bonsoir à tous,

Merci pour ton aide, la macro proposée correspond presque à mes attentes.
Il y a juste que quand je sélectionne plusieurs cellules d'une même ligne n'ayant pas de bordure, seule la cellule de gauche de la sélection obtient une bordure.

Est-il possible d'avoir une bordure pour chaque cellule sélectionnée?

Merci.
 

vbacrumble

XLDnaute Accro
Re : roblème de mise en forme d'une cellule par macro

Bonsoir


Essayes cette modification


Code:
Option Explicit

Sub Macro6666()
Dim r As Range
Dim i As Long
Dim j As Long
Set r = Selection
    With r
        .Clear
        .Value = 1
        .Font.ColorIndex = 2
        For i = 1 To r.Rows.Count
            For j = 1 To r.Columns.Count
            .Item(i, j).BorderAround , _
            xlThin, xlColorIndexAutomatic
            Next
        Next
    End With
End Sub
 
Dernière édition:

Discussions similaires

Réponses
5
Affichages
1 K

Statistiques des forums

Discussions
312 559
Messages
2 089 604
Membres
104 224
dernier inscrit
Brilma