Mettre une cellule sélectionnée en évidence

ButteDuLac Messages postés 495 Date d'inscription   Statut Membre Dernière intervention   -  
ButteDuLac Messages postés 495 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai un bouton avec ce code :
Application.Goto (ActiveWorkbook.Sheets("Autres documents").Range("D3"))


J'aimerais que lorsque l'utilisateur verra s'afficher la feuille "Autres documents", la cellule "D3" soit mise en évidence autrement que par une simple bordure épaisse.
Par exemple en changeant la police de caractère ou la trame de fond.
Est-ce possible? Et si oui, comment?

(Noter que j'ai d'autres boutons du même type qui mènent à d'autres cellules et d'autres feuilles, selon les cas... et que j'utilise Excel 2010)

Merci!
A voir également:

7 réponses

Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
Bonjour,

clic droit sur l'onglet de feuille concernée/visualiser le code et colle ce code
Private Sub Worksheet_Activate()
[D3].Select
[D3].Interior.ColorIndex = 3
[D3].Font.ColorIndex = 5
[D3].Font.Bold = True
End Sub


chaque ligne à une action, au choix sélectionner la cellule D3, coloriser le fond de cellule, coloriser la police ou mettre le texte en gras
0
ButteDuLac Messages postés 495 Date d'inscription   Statut Membre Dernière intervention   40
 
J'aurais plutôt voulu que dans la macro associée au bouton (dans le menu) s'ajoute le code, et non dans la feuille comme tel. Car il se peut que les gens arrivent dans la feuille par un autre chemin sans que la cellule D3 ne soit activée. Et puis si les gens cliquent sur un autre bouton, ils peuvent arriver dans une autre cellule de cette même feuille.

Les gens ne pourront pas cliquer sur les onglets, de toute façon, car ils ne paraissent pas.

Ah oui, et la cellule ne doit pas rester en couleur, elle doit seulement l'être lorsque la cellule est activée par le bouton (macro), puis dès que les gens se déplacent dans la feuille ainsi atteinte, la cellule reprend son fond sans couleur.

Un peu comme dans Access Sur réception focus vs Sur perte focus
0
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
Re,

et bien tu copies une ou plusieurs de ces lignes dans ton code existant déjà associé à ton bouton en fonction de ce que tu souhaites et au moment voulu dans le déroulement de ton code

[D3].Select
[D3].Interior.ColorIndex = 3
[D3].Font.ColorIndex = 5
[D3].Font.Bold = True
0
ButteDuLac Messages postés 495 Date d'inscription   Statut Membre Dernière intervention   40
 
Non, j'ai essayé.
Ça colore l'intérieur de la cellule D3 dans la feuille où est le bouton et non dans la feuille visée. Et la couleur rouge reste en permanence.
Ce code ne répond pas à mon besoin du tout. Désolée, mais merci pour l'effort!
0
ButteDuLac Messages postés 495 Date d'inscription   Statut Membre Dernière intervention   40
 
Quelqu'un a une meilleure idée?
0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
Bonjour,

comme ceci dans le bouton:

Application.Goto (ActiveWorkbook.Sheets("Autres documents").Range("D3"))
ActiveCell.Interior.ColorIndex = 3


Dans la feuille Autres documents:

Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ActiveSheet.Range("D3").Interior.ColorIndex = 0End Sub

0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ActiveSheet.Range("D3").Interior.ColorIndex = 0
End Sub
0
ButteDuLac Messages postés 495 Date d'inscription   Statut Membre Dernière intervention   40
 
J'ai fait le test.
Premièrement, je dois ôter la protection de la feuille, ce que je ne veux pas.
Ensuite, la cellule D3 demeure rouge par après...
Je ne veux pas colorer la cellule mais la mettre en évidence (comme je l'ai écrit dans le titre).
Par défaut, dans Excel, la cellule ciblée par ma macro s'entoure d'une bordure plus épaisse, mais je trouve que ce n'est pas assez évident...
0
ButteDuLac Messages postés 495 Date d'inscription   Statut Membre Dernière intervention   40
 
Ainsi, tout ce qu'il manquerait, c'est qu'en quittant la cellule active, elle redevienne sans couleur de fond.

C'est ce que la macro semble dire, mais ça ne fonctionne pas...
0
ButteDuLac Messages postés 495 Date d'inscription   Statut Membre Dernière intervention   40
 
AH! Sincèrement désolée!!!
Ça fonctionne, mais... comment je fais pour que toutes les cellules de la ligne 3 reprennent leur forme initiale?
Car on peut arriver dans B3, dans D3, dans F3, etc.
Et au départ, il y a une couleur (RVB 255;255;153) en fond de ces cellules. Je pense que ColorIndex = 36 fera l'affaire, mais il ne me manquerait que cette ligne...

ActiveSheet.Range("D3").Interior.ColorIndex = 36


Remplacer Range("D3") par la plage de cellules B3,D3,F3, etc. (bref toutes les colonnes paires, ligne $3)

Sinon, j'essaierais B$3:Z$3 (je ne devrais pas aller plus loin que z... mais les colonnes impaires seront affectées...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
Il faut cliquer n'importe où dans la feuille pour supprimer la couleur:

Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ActiveSheet.Range("D3").Interior.ColorIndex = 0
End Sub

C'est ce que fait cette macro
0
ButteDuLac Messages postés 495 Date d'inscription   Statut Membre Dernière intervention   40
 
oui. Ma dernière réponse a croisé la vôtre.
Mais il me reste un seul petit problème...
Trouver une façon que Range("D3") soit remplacé par Range(... toutes les colonne paires de la ligne 3...)
Est-ce possible?
Sinon, je dois faire...

ActiveSheet.Range("B3").Interior.ColorIndex = 36
ActiveSheet.Range("D3").Interior.ColorIndex = 36
ActiveSheet.Range("F3").Interior.ColorIndex = 36
ActiveSheet.Range("H3").Interior.ColorIndex = 36
ActiveSheet.Range("J3").Interior.ColorIndex = 36
ActiveSheet.Range("B3").Font.ColorIndex = 0
ActiveSheet.Range("D3").Font.ColorIndex = 0
ActiveSheet.Range("F3").Font.ColorIndex = 0
ActiveSheet.Range("H3").Font.ColorIndex = 0
ActiveSheet.Range("J3").Font.ColorIndex = 0


Ce qui va être très long, au fur et à mesure que j'ajoute des thèmes (chaque colonne « paire » comporte un thème...)
0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
J'ai trouvé ceci qui parcours une ligne déterminée dans toutes les colonnes, a adapter:

Sub For_X_to_Next_Colonne() 
Dim FL1 As Worksheet, Cell As Range, NoCol As Integer 
Dim NoLig As Long, Var As Variant 
    Set FL1 = Worksheets("Feuil2") 
    NoLig = 5 'Lecture de la ligne 5 
       For NoCol = 1 To Columns(Split(FL1.UsedRange.Address, "$")(3)).Column 
        Var = FL1.Cells(NoLig, NoCol) 
    Next 
    Set FL1 = NoThing 
End Sub

0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
voici le code avec une boucle:

Dans le bouton

Option Explicit
Private Sub CommandButton1_Click()
Dim i As Integer
Application.Goto (ActiveWorkbook.Sheets("Autres documents").Range("B3"))
ActiveCell.Interior.ColorIndex = 3
For i = 1 To 10
Selection.Offset(0, 2).Select
ActiveCell.Interior.ColorIndex = 3
i = i + 2
Next i
End Sub



Dans la feuille Autres documents

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Col As Range, C As Range
 For Each Col In Range("A3:Z3").Columns ' a adapter
  For Each C In Col.Cells
  If C.Interior.ColorIndex = 3 Then 'rouge
  C.Interior.ColorIndex = 0 'pas de couleur
 End If
  Next
 Next
End Sub




0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
pour effacer les cellules rouges, il faut qu'une cellule est changer dans la feuille

Private Sub Worksheet_Change(ByVal Target As Range)
0
ButteDuLac Messages postés 495 Date d'inscription   Statut Membre Dernière intervention   40
 
Merci!
Je vais essayer, mais je crois que le bouton va mettre en évidence toutes cellules de la ligne 3 en même temps pour les colonnes paires?
Me semble que ce serait plutôt dans la feuille que je devrais avoir un code pour les colonnes paires, pour que toutes les cellules ligne 3 de colonnes paires reviennent à leur couleur initiale.
Peut-être que j'arriverai à m'arranger avec le raisonnement que vous m'avez proposé.
Mais sinon, je vais continuer mon code ligne par ligne. Pour l'instant, je n'ai que trois thèmes, et au fur et à mesure qu'il s'en ajoutera, je corrigerai le code...
Merci de tout ce travail!!!
0