Comment faire pour déterminer si une Cellule de feuille de calcul est Visible/Affiché dans VBA?
J'ai besoin de savoir si une cellule est visible sur l'écran.
Visibles, je ne veux pas dire caché. Je suis précisément en essayant de trouver si une cellule est actuellement affichée dans la feuille active, ou si elle n'est pas affichée, c'est à dire: il a été défilé hors du visible feuille active.
J'ai regardé en ligne, et ne peut trouver le code suivant qui ne semble pas fonctionner pour moi:
Private Sub CommandButton1_Click()
With Worksheets(1).Cells(10, 10)
'MsgBox "Value: " & .Value & ", Top: " & .Top & ", Left: " & .Left
Dim visibleCells As Range
Set visibleCells = Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible)
If Intersect(Worksheets(1).Cells(10, 10), visibleCells) Is Nothing Then
MsgBox "This cell is not visible."
End If
End With
End Sub
Merci d'avance pour votre aide,
Marwan
Juste Curieux de savoir... Ce que si par exemple la Cellule A4 est caché et vous pouvez voir jusqu'à dire que les lignes 41. Envisagez-vous de la cellule A4 visibles ou cachés? Aussi Que diriez-vous pour les cellules qui sont en partie visibles?
Je considère la cellule A4 comme étant visible. Un peu de fond sur ce que je suis en train de réaliser, j'ai besoin de trouver le HAUT et à GAUCHE d'une cellule particulière. J'ai donc besoin de parcourir les cellules à gauche et à travers les cellules au-dessus d'elle. J'ai besoin de vérifier si ces cellules sont visibles, et si elles le sont, j'ai besoin de la somme de la largeur (ou la hauteur). Le problème que je suis en cours d'exécution en droit maintenant, c'est que certaines des cellules sont congelées, et ne se présentent pas comme une partie de la lumière visible. Je ne suis pas sûr de la façon de les gérer. Toute aide ou des suggestions?
J'ai compris comment vérifier si la cellule est "gelé" ou pas, en utilisant le code suivant:
Je considère la cellule A4 comme étant visible. Un peu de fond sur ce que je suis en train de réaliser, j'ai besoin de trouver le HAUT et à GAUCHE d'une cellule particulière. J'ai donc besoin de parcourir les cellules à gauche et à travers les cellules au-dessus d'elle. J'ai besoin de vérifier si ces cellules sont visibles, et si elles le sont, j'ai besoin de la somme de la largeur (ou la hauteur). Le problème que je suis en cours d'exécution en droit maintenant, c'est que certaines des cellules sont congelées, et ne se présentent pas comme une partie de la lumière visible. Je ne suis pas sûr de la façon de les gérer. Toute aide ou des suggestions?
J'ai compris comment vérifier si la cellule est "gelé" ou pas, en utilisant le code suivant:
Function CellIsInFrozenRange(cell As Range)
Dim inRow As Boolean
Dim inColumn As Boolean
If (ActiveWindow.SplitRow > 0) Then
inRow = Not Intersect(cell, Range(Cells(1, 1),
Cells(ActiveWindow.SplitRow, 1).End(xlEnd))) Is Nothing
End If
If (ActiveWindow.SplitColumn > 0) Then
inColumn = Not Intersect(cell, Range(Cells(1, 1), Cells(1, ActiveWindow.SplitColumn).End(xlDown))) Is Nothing
End If
CellIsInFrozenRange = (inRow Or inColumn)
End Function
OriginalL'auteur Marwan Marwan مروان مروان | 2012-08-13
Vous devez vous connecter pour publier un commentaire.
Voici une fonction qui fait ce que vous voulez:
Au moins je pense qu'il n'. Je n'avais pas été au courant de la Etenduevisible bien jusqu'à maintenant.
L'appeler comme:
Merci beaucoup. Qui fonctionne très bien.
Qu'est-ce que l'autre variation que vous utilisez?
Il dépend de votre réponse à mon commentaire dans votre question 🙂
+1 bien fait!
OriginalL'auteur Doug Glancy