surbrillance ligne selectionnée avec cellules fusionnées

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 !

thietan

XLDnaute Nouveau
Bonjour,
Je debute en VBA
j'ai réussi à mettre en surbrillance la ligne entière si une cellule quelconque est séléctionner, code suivant:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.ScreenUpdating = False
Cells.Interior.ColorIndex = xlNone
Target.EntireRow.Interior.ColorIndex = 19
Application.ScreenUpdating = True
End Sub

J'aimerai que cela s'applique aussi aux cellules fusionnées.

Exemple : cellules D1 à D4 fusionnées, si selection B2 alors colorer ligne 2 ainsi que les cellules D1 D2 D3 D4


Merci
 
Re : surbrillance ligne selectionnée avec cellules fusionnées

Bonjour thietan

Le problème, c'est qu'il va falloir tester chaque colonne pour savoir si des cellules sont fusionnées
et là, ça risque de prendre plus de temps lors du changement de sélection 🙁

A+
 
Re : surbrillance ligne selectionnée avec cellules fusionnées

Bonjour thietan, Bonjour Bruno 🙂

Bienvenue sur XLD,

en effet, c'est plus lent mais vois si ça peut te convenir

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Cellule As Range
Application.ScreenUpdating = False
Cells.Interior.ColorIndex = xlNone
For Each Cellule In Target.EntireRow.Cells
    If Cellule.MergeCells Then
        Cellule.MergeArea.Interior.ColorIndex = 19
    Else
        Cellule.Interior.ColorIndex = 19
    End If
Next Cellule
Application.ScreenUpdating = True
End Sub
 
Re : surbrillance ligne selectionnée avec cellules fusionnées

Merci tototiti2008
FORMIDABLE, j'ai testé, c'est exactement ce que je voulais !
PS : Pourquoi dits tu que c'est plus lent ?
Encore mille merci.

Merci à toi aussi BrunoM45, moi aussi je suis du Montargois 😉

A+
 
Re : surbrillance ligne selectionnée avec cellules fusionnées

Re-bonjour,
question subsidiaire (peut être moins évident):
Même énonçé mais résultat suivant exemple :
Cellules D1 à D4 fusionnées, si selection B2 alors colorer les lignes 1, 2, 3 et 4 (issues des cellules fusionnées rencontrées) ainsi que les dites cellules fusionnées.
J'espere être clair.
merci
A+
 
Re : surbrillance ligne selectionnée avec cellules fusionnées

Bonjour à tous,

à tester

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Cellule As Range, Max As Long, Adr As String
    Application.ScreenUpdating = False
    Max = 0
    Adr = ""
    Cells.Interior.ColorIndex = xlNone
    For Each Cellule In Target.EntireRow.Cells
        If Cellule.MergeCells Then
            If Cellule.MergeArea.Rows.Count > Max Then
                Max = Cellule.MergeArea.Rows.Count
                Adr = Cellule.MergeArea.Address
            End If
        End If
    Next Cellule
    If Adr = "" Then Adr = Target.Address
    Range(Adr).EntireRow.Interior.ColorIndex = 19
    Application.ScreenUpdating = True
End Sub
 
Re : surbrillance ligne selectionnée avec cellules fusionnées

Bonjour,
J'ai rajouté 2 lignes de code afin de créer une bordure haute et basse plus prononçées à la sélection.

__________________________________
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Cellule As Range, Max As Long, Adr As String
Application.ScreenUpdating = False
Max = 0
Adr = ""
Cells.Interior.ColorIndex = xlNone
For Each Cellule In Target.EntireRow.Cells
If Cellule.MergeCells Then
If Cellule.MergeArea.Rows.Count > Max Then
Max = Cellule.MergeArea.Rows.Count
Adr = Cellule.MergeArea.Address
End If
End If
Next Cellule
If Adr = "" Then Adr = Target.Address
Range(Adr).EntireRow.Interior.ColorIndex = 19

Range(Adr).EntireRow.Borders(xlEdgeTop).Weight = xlMedium
Range(Adr).EntireRow.Borders(xlEdgeBottom).Weight = xlMedium

Application.ScreenUpdating = True
End Sub

-----------------------------------

Ca fonctionne mais les bordures ne reprennent pas leur états initials lorsque je selectionne un autre groupe de ligne.

Merci de m'aider
A+
 
Re : surbrillance ligne selectionnée avec cellules fusionnées

Bonjour thietan, Bonjour à tous,

Peut-être

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Cellule As Range, Max As Long, Adr As String
    Application.ScreenUpdating = False
    Max = 0
    Adr = ""
    Cells.Interior.ColorIndex = xlNone
    Rows.Borders(xlEdgeTop).LineStyle = xlNone
    Rows.Borders(xlEdgeBottom).LineStyle = xlNone
    Rows.Borders(xlInsideHorizontal).LineStyle = xlNone
    For Each Cellule In Target.EntireRow.Cells
        If Cellule.MergeCells Then
            If Cellule.MergeArea.Rows.Count > Max Then
                Max = Cellule.MergeArea.Rows.Count
                Adr = Cellule.MergeArea.Address
            End If
        End If
    Next Cellule
    If Adr = "" Then Adr = Target.Address
    Range(Adr).EntireRow.Interior.ColorIndex = 19
    Range(Adr).EntireRow.Borders(xlEdgeTop).Weight = xlMedium
    Range(Adr).EntireRow.Borders(xlEdgeBottom).Weight = xlMedium
    Application.ScreenUpdating = True
End Sub
 
Re : surbrillance ligne selectionnée avec cellules fusionnées

Re,

Ah ben non, ni leur couleur de fond d'ailleurs, et ce depuis le début...
Tu souhaites conserver en mémoire toute le mise en forme de la (les) ligne(s) pour la (les) réappliquer ?
Si ça commençait à être un peu long à s'exécuter, là on va battre des records....
 
Re : surbrillance ligne selectionnée avec cellules fusionnées

Si, ça marche très bien pour la gestion des couleurs.
Je veux juste encadrer en gras le groupe de cellules surbrillé pour donner une touche plus visuelle.
Oui je souhaite conserver et revenir à la mise en forme initial du tableau apres chaque re-selection.

A+
 
- 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
2
Affichages
618
Retour