Défiler d'une feuille à l'écran

Résolu
Signaler
Messages postés
50
Date d'inscription
mercredi 31 mars 2004
Statut
Membre
Dernière intervention
2 mai 2007
-
Messages postés
50
Date d'inscription
mercredi 31 mars 2004
Statut
Membre
Dernière intervention
2 mai 2007
-
svp, quel est le code pour faire défiler une feuille
lorsqu'elle dépasse la taille de l'écran.
Merci d'avance et cordialement
Bamphi

4 réponses

Messages postés
1488
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
3 décembre 2007
24
Ben tu tires ton écran vers le bas!!!

Tu sais, on est pas dans ta tête pour deviner ce qu'il s'y cache !!!
On ne sait pas dans quel langage tu codes et sous dans quelle version (VBS, VBA soft année, VB6, VB.NET) !?!?!?

Tu nous parles de feuille, c'est bien, mais de quel type de feuilles ??? Des feuilles volantes, des feuilles de style, des feuilles de PQ, des feuilles de code, des feuilles Excel, des feuilles de Word, de celles de PowerPoint (diapositives), des feuilles d'aperçus avant impression, ... ??????

Si tu ne te donne pas la peinne de "perdre" le temps nécéssaire
à la rédaction de ton problème
- ne serait-ce qu'un 10ème du temps qu'on te consacrera pour la réponse {cf. taille de nom message et du tient!!! C'est affligeant!} - ne t'attends pas à obtenir de réponses.

Donc, soit plus clair et n'hésite pas à être un peu plus "expensif" - ça ne te coutera que le temps qu'on y gagnera et tout le monde sera content (parce qu'on ne peut pas prendre sans donner!).

Enjoy

<hr size="2" width="100%">
( Si une réponse vous convient, cliquez sur le bouton "Réponse acceptée". )
3
Messages postés
1488
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
3 décembre 2007
24
Alors déjà, je te conseille de ne pas faire comme ça !!!
Ce n'est pas à ta fenêtre de s'agrandir m'enfin!!!

Utilise un conteneur style PictureBox, Frame, ... Ainsi, ta fenêtre aura des dimentions "normales" et non "dangereuse" (oui, parce que c'est dangereux ce genre de trucs) !!!

Mais si tu veux quand même faire comme tu as commencé voici un petit correctif de ton code :
Private Sub Form_Load()
<strike>Me.ScaleMode = 3</strike> 'Totalement inutile! Définit ça en mode création à la main!
<strike>Me.WindowState = 0</strike> 'Idem puisqu'il s'agit de la valeur par défaut!!!
Me.Width = 8000
Me.Height = 17000
Me.Left = 3500
Me.Top = 100
End Sub

Moi je ton conseille de plutôt faire ceci :

Private Sub Form_Load()
With Me
.Width = 8000

.Height = 17000

.Left = 3500

.Top = 100
End With

End Sub

Note que "Me" fait référence à ta Form quelque soit son nom. Mais note aussi que ScaleMode, WindowState, Width, Height, Left, Top (et les autres) sont des propriétés. Et a ce titre, elles appartiennent à un contrôle. Donc, on doit TOUJOURS mettre la référence à ce contrôle devant :
refContrôle.Propriété
Ici, on a employé l'instruction "With" ("avec" en anglais à ne pas confondre avec "width" : largeur) qui permet d'employer toujour le même contrôle par défaut lorsque ce dernier est manquant (ici, Me). Mais note quand même que toutes les propriétés devant se référer à ce contrôle par défaut commencent par un point (" . Top"). Parce que sinon ils seraient considérés par le VB comme étant des variables!!!

Bon, pour ton ScaleMode, il peut s'avéré utile si tu as créé la fenêtre via du code, donc, fait comme tu veux

Note que les propriétés Width, Height, Left et Top ne peuvent être qu'en Twips contrairement aux propriétés ScaleWidth, ScaleHeight, ScaleLeft, ScaleTop. Les premières donnant les coordonnées absolue de la fenêtre dans l'environnement (Windows donc) et donc, avec son unité de mesure (le Twip pour Windows) et les secondes donnant les coordonnées de l'espace intra-fenêtrale disponible pour le codeur. Le Twip faisant environ 1/15 ème de Pixel (15 Twips = 1 Pixel)

Du coup, si tu n'utilises pas un conteneur (Frame, PictureBox) ben tu dois agir sur les premières (Width, ...) et non sur les secondes. Donc, si tu veux faire monter la fenêtre (pour voir ce qu'il y a en dessous!), il suffit de modifier la propriété ".Top" de la fenêtre :

Procédure de ton choix (ici, "Form_KeyDown" par exemple!)
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case vbKeyDown
Me.Top = Me.Top - (2 * 15) '2 pixel
Case vbKeyUp
Me.Top = Me.Top + (2 * 15) '2 pixel
Case Else
'...
End Select
End Sub

Est-ce que cela répond à ta question ???

Enjoy

<hr size="2" width="100%">
( Si une réponse vous convient, cliquez sur le bouton "Réponse acceptée". )
3
Messages postés
50
Date d'inscription
mercredi 31 mars 2004
Statut
Membre
Dernière intervention
2 mai 2007

Désolé de mon manque de précision Enjoy, ta remarque est pertinente et
j'en tiens compte.
Explication
1. Développement en VB6
2. Il s'agit d'une Form.frm que j'utilise pour prévisualiser des éditions
avec les instructions Form.CurrentX xx & Form.CurrentY yy
3. Dès que je demande un CurrentY > que la taille écran, non seulement il ne
me l'affiche pas, mais ne me l'imprime.

POUR INFO
Private Sub Form_Load()
FormEdition.ScaleMode = 3
FormEdition.WindowState = 0
Width = 8000
Me.Height = 17000
Left = 3500
Top = 100

End Sub

Quelles sont tes conseils
Grand merci d'avance
Bamphi
0
Messages postés
50
Date d'inscription
mercredi 31 mars 2004
Statut
Membre
Dernière intervention
2 mai 2007

Sympa ! Merci pour ta célérité et la clarté des expli ...
Très cordialement
Bamphi
0