web-dev-qa-db-fra.com

Microsoft Word / Excel

En lien avec cette question: Afficher la sélection de cellules dans Excel non focalisée , sauf que mon cas concerne Microsoft Word.

Lorsque je sélectionne du texte ou une colonne/ligne dans Microsoft Word ou Excel (2003, 2007, 2010 ou 2013), elle apparaît en surbrillance dans Word:

enter image description here

et Excel:

enter image description here

Cependant, lorsque je change de focus sur un autre programme, le texte en surbrillance n'est plus en surbrillance.

Je travaille généralement avec 2 moniteurs, un moniteur contenant un document/une feuille de calcul contenant les données que je dois lire, et l'autre moniteur étant l'endroit où je travaille réellement. Je vais sélectionner du texte (ou des cellules) pour le faire ressortir parmi les nombreuses pages de données, puis changer de programme, mais le texte en surbrillance n'est plus visible.

Existe-t-il une solution permanente à ce problème?

45
glenneroo

Cela semble être une "fonctionnalité" exclusive de Microsoft. Pour la plupart des projets, je n'ai besoin que d'un accès en lecture seule et le formatage n'a pas d'importance dans mon cas. C'est pourquoi je suis passé à OpenOffice qui ne présente pas ce comportement.

13
glenneroo

Un moyen rapide de résoudre la moitié de votre problème (lors du passage d'Excel à Word) consiste à copier le texte. Lorsque vous appuyez sur Ctrl + c, les cellules continuent à être marquées (le surlignage a disparu, mais vous avez toujours une ligne en pointillé autour du texte).

L'inconvénient est que les textes ne sont marqués que si vous conservez les cellules copiées. Cela signifie que vous ne pouvez rien copier d'autre ou que le marquage est parti. Malheureusement, cela ne fonctionnera pas de Word à Excel.

21
Rubaijat

il n'y a pas de solution permanente à ce problème.

une solution de contournement (peut devenir gênant dans un instant) consisterait à modifier la mise en surbrillance des cellules sélectionnées pendant leur sélection et à les sélectionner à nouveau pour les supprimer la couleur.

Collez ce code dans le code Sheet1 derrière et allez dans votre feuille de calcul et sélectionnez des cellules, sélectionnez-en d'autres, puis sélectionnez à nouveau les premières à supprimer la couleur.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim cell As Range

    For Each cell In Target.Cells
        If cell.Interior.Color = RGB(60, 150, 230) Then
            cell.Interior.Pattern = xlNone
        Else
            cell.Interior.Color = RGB(60, 150, 230)
        End If
    Next
End Sub
6
user222864

Ce VBA le fera, mais il suppose que vous n'utilisez pas de mise en évidence. Si vous l'êtes, votre mise en surbrillance sera perturbée, alors ne l'utilisez pas.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    ActiveCell.Worksheet.Cells.Interior.ColorIndex = xlNone
    ActiveCell.EntireRow.Interior.ColorIndex = 19
End Sub

Comment ajouter VBA dans MS Office?


Comme une solution de rechange massive (si la mise en surbrillance ne fonctionne pas pour vous), vous pouvez utiliser quelque chose comme JRuler (écoutez-moi :) !! ) car cela vous permettra de laisser la règle à l’écran avec la ligne en question au-dessus de sorte que lorsque vos yeux reviendront à cet écran, vous pourrez voir où vous étiez (pour que vous puissiez voir, j’ai perdu ma mise en surbrillance mais au moins je peux voir regardait la rangée 3)!

Ne vous méprenez pas, c'est laborieux et pénible si vous le faites souvent, mais cela peut suffire pour n'importe quel programme (Word et Excel).

enter image description here

6
Dave

Après dix ans de problèmes qui me rendaient dingue, j'ai enfin trouvé une solution qui fonctionne pour moi. Malheureusement, ce n’est pas gratuit ... Le Gestionnaire de fenêtre actuel possède une fonctionnalité appelée "Ignorer la désactivation" qui peut être activée pour des applications spécifiques. Cela fait penser à la fenêtre qu'elle a toujours le focus, même si ce n'est pas le cas. Cette option est activée pour toutes les applications de bureau et je peux toujours voir la sélection en surbrillance, même si une autre fenêtre est activée. Je n'ai pas eu d'effets secondaires négatifs non plus. J'utilise également plusieurs moniteurs et ce programme contient une tonne d'autres outils utiles pour travailler avec plusieurs moniteurs, ce qui en a valu la peine pour moi. J'ai installé la version d'essai, puis je l'ai désinstallée et cela m'a offert 30% de réduction. Il y a peut-être un programme gratuit qui fait cela mais je ne pouvais pas en trouver un ... J'espère que cela aide quelqu'un autant que ça m'a aidé!

4
bskip

Je luttais avec ce même problème depuis longtemps. Moi aussi, je me perds dans des fichiers Excel denses lorsque j'utilise plusieurs écrans.

Il existe une énorme collection de plugins Excel disponibles sur Internet. J'ai découvert que l'extension Kutools Excel (la version gratuite) permet de mettre en surbrillance un réticule qui reste visible même si Excel n'est pas net. Kutools semble également avoir beaucoup de fonctionnalités supplémentaires, mais ce n'est certainement pas la seule option disponible.

Voici une capture d'écran des Kutools soulignant le réticule en action:

Screenshot of Kutools highlight cross-hair in action

Je sais que certaines personnes ont peur des plugins ou des outils tiers, mais leur utilisation est probablement l'option la plus rapide et la plus simple.

2
hupiukko

Utiliser une forme/un rectangle est une solution de contournement simple. Sélectionnez l'option "Pas de remplissage" et vous pourrez même éditer des cellules à travers elle.

Regardez la photo ici:

Take a look at the picture here

0
IvanStanic

Une méthode très simple consiste à utiliser la mise en forme conditionnelle et VBA.

Ajoutez simplement ceci à votre code ThisWorkbook:

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    If Application.CutCopyMode = False Then
        Application.Calculate
    End If
End Sub

et exécutez le code suivant une seule fois pour créer les règles de format conditionnelles:

Sub CreateConditionalFormats()
  Dim y As FormatCondition
    For Each ws In ThisWorkbook.Worksheets
        DoEvents

        'Optionally delete any existing conditional formats
        'ws.Cells.FormatConditions.Delete

        ' Selection highlight
        Set y = ws.Cells.FormatConditions.Add(Type:=xlExpression, Formula1:="=AND(ROW()=CELL(""row""), COLUMN()=CELL(""col""))")
        With y.Borders(xlTop)
            .LineStyle = xlSolid
            .Color = -16776961
            .TintAndShade = 0
            .Weight = xlThin
        End With
        With y.Borders(xlBottom)
            .LineStyle = xlSolid
            .Color = -16776961
            .TintAndShade = 0
            .Weight = xlThin
        End With
        With y.Borders(xlLeft)
            .LineStyle = xlSolid
            .Color = -16776961
            .TintAndShade = 0
            .Weight = xlThin
        End With
        With y.Borders(xlRight)
            .LineStyle = xlSolid
            .Color = -16776961
            .TintAndShade = 0
            .Weight = xlThin
        End With
        y.StopIfTrue = False
        y.SetFirstPriority

        ' Row highlight
        Set y = ws.Cells.FormatConditions.Add(Type:=xlExpression, Formula1:="=ROW()=CELL(""row"")")
        With y.Borders(xlTop)
            .LineStyle = xlDash
            .Color = -16776961
            .TintAndShade = 0
            .Weight = xlThin
        End With
        With y.Borders(xlBottom)
            .LineStyle = xlDash
            .Color = -16776961
            .TintAndShade = 0
            .Weight = xlThin
        End With
        y.StopIfTrue = False

        ' Column highlight
        Set y = ws.Cells.FormatConditions.Add(Type:=xlExpression, Formula1:="=COLUMN()=CELL(""col"")")
        With y.Borders(xlLeft)
            .LineStyle = xlDash
            .Color = -16776961
            .TintAndShade = 0
            .Weight = xlThin
        End With
        With y.Borders(xlRight)
            .LineStyle = xlDash
            .Color = -16776961
            .TintAndShade = 0
            .Weight = xlThin
        End With
        y.StopIfTrue = False
    Next
End Sub
0
cyberponk

Une solution simple qui place une couleur de cellule lorsque la sélection change

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Selection.Interior.ColorIndex = xlColorIndexNone
    Selection.Interior.Color = RGB(204, 204, 204)
End Sub

Une solution complexe qui ne change que la couleur de la cellule en cas de perte du focus

Dans un module standard:

Option Explicit    
Public s As Range

Dans la ou les feuilles dans lesquelles vous souhaitez que cela fonctionne:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Set s = Selection
End Sub

Dans ThisWorkbook:

Private Sub Workbook_Deactivate()
    If s Is Nothing Then
        Set s = Selection
        Exit Sub
    End If
    s.Interior.ColorIndex = xlColorIndexNone
    s.Interior.Color = RGB(204, 204, 204)

    ' This is optional formatting to make the cells look more like they're actually selected
    s.Borders.Color = RGB(130, 130, 130)
    s.BorderAround _
    Color:=RGB(30, 130, 37), Weight:=xlThick
End Sub

Private Sub Workbook_Activate()
    If s Is Nothing Then
        Set s = Selection
        Exit Sub
    End If
    s.Interior.ColorIndex = xlColorIndexNone
    s.Borders.ColorIndex = xlColorIndexNone
End Sub

Citations: La solution simple est basée sur une réponse par @ Dave ; La solution complexe a été réunie à partir de nombreuses sources, en particulier à l'aide de @ JohnColeman dans ce message .
0
Travis Heeter

Insérer une zone de texte qui s'étend sur la longueur des cellules. Tapez une ligne de ******* caractères similaires pour remplir la zone de texte. Vous pouvez déplacer la zone de texte vers le bas de la page comme vous le feriez avec une règle ou un morceau de papier sur une copie papier. Supprimer lorsque vous avez terminé.

0
BAS