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:
et Excel:
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?
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.
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.
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
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).
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é!
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:
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.
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:
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
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Selection.Interior.ColorIndex = xlColorIndexNone
Selection.Interior.Color = RGB(204, 204, 204)
End Sub
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
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é.