Affichage centré sur moniteur

Marc_du_78

XLDnaute Accro
Bonsoir les amis,

Je cherche la possiblilité d'afficher la ligne dont le critère de la MFC répond (passage en rouge de la cellule) toujours visible à l'écran quelque soit la cellule remplissant la condition, sans réduire l'affichage.
Ex : si D24 répond à la condition, que D24 soit visible à l'cran dès que la condition est remplie.
%e suis-je bien fait comprendre, là est la question.
En vous remerciant
 

Marc_du_78

XLDnaute Accro
Avec le petit fichier ca ira certainement mieux, mes excuses [file name=XLD_AfficherSurEtCentrer.zip size=9452]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/XLD_AfficherSurEtCentrer.zip[/file]
 

Pièces jointes

  • XLD_AfficherSurEtCentrer.zip
    9.2 KB · Affichages: 15

justine

XLDnaute Occasionnel
bonsoir marc du 78, le forum
pour repondre a ton appel, il y a une chose toute simple a faire mais qui demande un peu de calcul.
le code est activewindow.scrollrow= valeur

la valeur est un nombre qui differe suivant ton ecran.
pour calculer ce nombre il faut regarder combien apparaissent de lignes apparente dans ta fenetre.
si 40 lignes apparaissent, pour centrer ta cellule, il faut diviser par deux et soustraire a ta cellule en rouge.
exemple
si tu as 40 lignes sur ton ecran, et que ta cellule rouge est sur la ligne 30, alors la ligne qui sera la lus haute a ton ecran sera la 10ieme
le code sera : activewindow.srollrow=10

pareil pour les colonnes

j'espere avoir ete clair dans mes explications

justine
 

justine

XLDnaute Occasionnel
bonjour a tous
voila la macro a mettre dans la feuille concernee.
de mon coté, elle marche


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim nbrex As Integer
Dim nbrey As Integer

nbrex = 10 'nombre de lignes visibles sur ton ecran divisé par 2
nbrey = 5 'nombre de colonnes visibles sur ton ecran divisé par 2

For i = 3 To 29 '30 represente le nbre de ligne de ton tableau
For j = 2 To 8 ' pareil pour 8 mais pour les colonnes
If Cells(i, j).Interior.ColorIndex = 3 Then ' si la cellule() est rouge
If i <= nbrex Then
nbrex = 1
Else
nbrex = Cells(i, j).Row - 10
End If
If j <= nbrey Then
nbrey = 1
Else
nbrey = Cells(i, j).Column - 5
End If
ActiveWindow.ScrollColumn = nbrey
ActiveWindow.ScrollRow = nbrex
Exit Sub
End If
Next
Next

End Sub

j'espere qu'elle est clair pour toi, mais je suppose qu'il y a mieux
 

Statistiques des forums

Discussions
312 447
Messages
2 088 496
Membres
103 871
dernier inscrit
julienleburton