[VBA] Mettre en surbrillance selon cellule sélectionnée

Bonjour,

J'ai un code visual basic qui me calcul les coordonnées des cellules selon plusieurs variables. Au final, l'adresse de la cellule est contenue dans cette variable :

t.Address

Cette variable est affichée sur la feuille de calcul via ce code (voir carré rouge sur image ci-dessous) :

Range(t.Address).Activate

>> sur la capture c'est la cellule F6 qui est stockée dans t.Address.

Ce que je cherche, c'est qu'à partir de l'adresse de la cellule, il me mette la ligne et la colonne correspondante en surbrillance (pour une meilleure visibilité) comme sur la photo ci-dessous.

170317024205612717

Comment puis-je faire ?

Cordialement,

Baptiste K.

Bonjour,

J'ai un peu galéré mais je pense que cela peut marcher :

Sub SelectionEnCroix()

    Rang = "" & Split(t.Address, "$")(1) & ":" & Split(t.Address, "$")(1) & "," & t.Row & ":" & t.Row & ""
    Range(Rang).Select
    Range(t.Address).Activate

End Sub

Dis moi si ça te convient ou non

RemBabar

Bonjour RemBabar,

Excuses-moi, je n'étais pas au boulot ce week-end, je n'avais donc pas pu tester.

Du coup, c'est bien ce qui me faut, par contre comment puis-je l'intégrer dans mon code actuel ?

Private Sub Btn_Recherche_Click()

Dim ladate As Date

ladate = CDate(Cbx_jour.Text & " " & Cbx_mois.Text & " 2016")

Dim c As Range
Dim lacolonne As Range
Dim t As Range
Dim lalign As Byte

With Worksheets("Tableau")
        Set c = .Range("liste_dates").Find(ladate, LookIn:=xlFormulas)
        Set lacolonne = .Range("liste_versions").Offset(0, c.Column - .Range("liste_versions").Column)
        For Each t In lacolonne
            lalign = t.Row
             If Trim(.Range("A" & lalign).Value) = Cbx_version.Value And Trim(.Range("B" & lalign).Value) = Cbx_note.Value Then

                    Range(t.Address).Activate

                    Exit For
             End If
        Next t
End With

Unload Me

End Sub

Merci de ton aide,

Baptiste K.

Bonjour,

tu peux esssayer ça :

Private Sub Btn_Recherche_Click()

Dim ladate As Date

ladate = CDate(Cbx_jour.Text & " " & Cbx_mois.Text & " 2016")

Dim c As Range
Dim lacolonne As Range
Dim t As Range
Dim lalign As Byte
Dim Rang as String

With Worksheets("Tableau")
        Set c = .Range("liste_dates").Find(ladate, LookIn:=xlFormulas)
        Set lacolonne = .Range("liste_versions").Offset(0, c.Column - .Range("liste_versions").Column)
        For Each t In lacolonne
            lalign = t.Row
             If Trim(.Range("A" & lalign).Value) = Cbx_version.Value And Trim(.Range("B" & lalign).Value) = Cbx_note.Value Then

                    Rang = "" & Split(t.Address, "$")(1) & ":" & Split(t.Address, "$")(1) & "," & t.Row & ":" & t.Row & ""
                    Range(Rang).Select
                    Range(t.Address).Activate

                    Exit For
             End If
        Next t
End With

Unload Me

End Sub

Je pense que ça devrait fonctionner, dis moi si tu rencontre un problème!

RemBabar

Bonjour,

Que dire RemBabar ?

C'est juste parfait, je te remercie

Sujet résolu.

Cordialement,

Baptiste K.

Bonjour,

t est une variable Range... Qu'as-tu avoir à faire avec t.Address !!!

la ligne et la colonne te sont données directement par t.Row et t.Column !

et qui plus est, la ligne est déjà affectée à une variable !

Et dispense-toi d'activer ou sélectionner, c'est inutile et ne sert qu'à ralentir, on ne le répètera jamais assez !!!

Bonjour MFerrand,

Qu'entends-tu par ?

Et dispense-toi d'activer ou sélectionner, c'est inutile et ne sert qu'à ralentir, on ne le répètera jamais assez !!!

                    Range(t.Address).Activate

A proscrire !

Bonjour,

En effet, je comprends merci ! C'est enlevé.

Cordialement,

Baptiste K.

Rechercher des sujets similaires à "vba mettre surbrillance selectionnee"