Surligner ligne / colonne d'une cellule active sans utiliser de macro

Bonjour

J'ai un tableau excel qui comporte de nombreux onglets similaires et comportant de nombreuses lignes et colonnes.

Je souhaite, lorsqu'une cellule est active, sélectionnée (c'est à diresans devoir double-cliquer dans la cellule), que les bordures de la ligne et de la colonne associées soient modifiées.

J'ai utilisé une macro mais :

  • plus de ctrl Z possible
  • plantage quand je sélectionne plusieurs onglets pour apporter des modifications simultanées aux onglets (très handicapant dans mon cas).

Suite à des recherches j'ai essayé d'utiliser la mfc mais cela ne fonctionne pas bien : au mieux je dois rentrer dans la cellule (double clic) pour que la mfc fonctionne : je ne dois pas utiliser les bonnes formules.

Merci de votre aide.

Bonjour,

A ma connaissance sans vba je ne pense pas qu'on puisse le faire.

Voici un code que j'utilise sur certains projets qui fonctionne bien. A placer dans une feuille

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim iC As Long, iC1 As Long
Dim iR As Long, iR1 As Long
    If Not Intersect(ActiveCell, [A2:J1000]) Is Nothing Then
        Unprotect
        iR = Range("A" & Rows.Count).End(xlUp).Offset(1).Row
        Application.ScreenUpdating = False
        With Range("A2:J1000")
            .Borders(xlDiagonalDown).LineStyle = xlNone
            .Borders(xlDiagonalUp).LineStyle = xlNone
            .Borders(xlEdgeLeft).LineStyle = xlNone
            .Borders(xlEdgeTop).LineStyle = xlNone
            .Borders(xlEdgeBottom).LineStyle = xlNone
            .Borders(xlEdgeRight).LineStyle = xlNone
            .Borders(xlInsideVertical).LineStyle = xlNone
            .Borders(xlInsideHorizontal).LineStyle = xlNone
            .Interior.ColorIndex = xlNone
        End With

        ' ligne trait
            iR1 = ActiveCell.Row

        With Range("A" & iR1 & ":J" & iR1)
        .Borders(xlEdgeBottom).LineStyle = xlContinuous
        .Borders(xlEdgeBottom).ColorIndex = 3 ' ROUGE
        .Borders(xlEdgeTop).LineStyle = xlContinuous
        .Borders(xlEdgeTop).ColorIndex = 3 ' ROUGE
        End With
            Range(Cells(ActiveCell.Row, "A"), Cells(ActiveCell.Row, "J")).Interior.Color = RGB(190, 205, 240)
            ActiveCell.Interior.ColorIndex = 6
        ' colonne trait
            iC1 = ActiveCell.Column

        With Range(Cells(2, iC1).Address & ":" & Cells(iR, iC1).Address)
            .Borders(xlEdgeLeft).LineStyle = xlContinuous
            .Borders(xlEdgeLeft).ColorIndex = 3 ' ROUGE
            .Borders(xlEdgeRight).LineStyle = xlContinuous
            .Borders(xlEdgeRight).ColorIndex = 3 ' ROUGE
        End With
        Protect
    End If
End Sub

A toi de l'adapter...

Cordialement

Bonsoir à tous,

Un autre essai (via VBA). Le code est dans le module de ThisWorlbook.

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
  SurLignerLigCol Sh
End Sub

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
  SurLignerLigCol Sh
End Sub

Sub SurLignerLigCol(xsh As Worksheet)
Dim y As Range
  With xsh
    Application.ScreenUpdating = False
    .Cells.Rows(1).Interior.ColorIndex = xlColorIndexNone
    .Cells.Columns(1).Interior.ColorIndex = xlColorIndexNone
    On Error Resume Next
    For Each y In Selection.Areas
      y.Rows.Resize(1).Offset(1 - y.Row).Interior.Color = RGB(0, 255, 0)
      y.Columns.Resize(, 1).Offset(, 1 - y.Column).Interior.Color = RGB(0, 255, 0)
    Next y
  End With
End Sub
Rechercher des sujets similaires à "surligner ligne colonne active utiliser macro"