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

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

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:
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:
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
 
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.
 
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:
- 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
14
Affichages
247
  • Question Question
XL pour MAC Recherche date
Réponses
5
Affichages
2 K
Réponses
13
Affichages
3 K
Retour