Mettre une cellule sélectionnée en évidence

ButteDuLac Messages postés 534 Statut Membre -  
ButteDuLac Messages postés 534 Statut Membre -
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!

7 réponses

  1. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
    1. ButteDuLac Messages postés 534 Statut Membre 41
       
      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
  2. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
    1. ButteDuLac Messages postés 534 Statut Membre 41
       
      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
  3. ButteDuLac Messages postés 534 Statut Membre 41
     
    Quelqu'un a une meilleure idée?
    0
  4. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    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
    1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      Option Explicit
      Private Sub Worksheet_SelectionChange(ByVal Target As Range)
      ActiveSheet.Range("D3").Interior.ColorIndex = 0
      End Sub
      
      0
    2. ButteDuLac Messages postés 534 Statut Membre 41
       
      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
    3. ButteDuLac Messages postés 534 Statut Membre 41
       
      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
    4. ButteDuLac Messages postés 534 Statut Membre 41
       
      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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    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
    1. ButteDuLac Messages postés 534 Statut Membre 41
       
      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
  7. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    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
  8. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    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
    1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      pour effacer les cellules rouges, il faut qu'une cellule est changer dans la feuille

      Private Sub Worksheet_Change(ByVal Target As Range)
      0
    2. ButteDuLac Messages postés 534 Statut Membre 41
       
      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