IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Discussion :

Position ScrollBar dans Frame


Sujet :

VBA

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    commercial
    Inscrit en
    Juin 2016
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : commercial

    Informations forums :
    Inscription : Juin 2016
    Messages : 22
    Par défaut Position ScrollBar dans Frame
    Bonjour,

    J'ai une frame qui dispose d'une scrollbar verticale.
    Si je suis sur le dernier control de la frame, une textbox par ex, la scrollbar est bien entendu tout en bas.
    Si je quitte la frame et que je souhaite revenir sur ma derniere textbox, dans la frame, lorsque je clique dessus, la scrollbar se remet en haut et donc je ne suis pas sur le control souhaité.
    Sauriez vous comment éviter cela.

    Cordialement

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    Déclare publique (dans un module) une variable (appelle-la scrollpos, par exemple)
    donne-lui la valeur du scrolltop lorsque tu agis sur l'ascenseur (évènement Scroll de ton Frame) :
    imaginons que ton Frame s'appelle Frame1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    scrollpos = Frame1.ScrollTop
    restitue-lui cette valeur lorsque tu le souhaites :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Frame1.ScrollTop = scrollpos

  3. #3
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    re
    bonjour
    ou bien sans variable
    on mémorise la position dans le tag de la frame elle même dans l'évènement scroll
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Frame1_Scroll(ByVal ActionX As MSForms.fmScrollAction, ByVal ActionY As MSForms.fmScrollAction, ByVal RequestDx As Single, ByVal RequestDy As Single, ByVal ActualDx As MSForms.ReturnSingle, ByVal ActualDy As MSForms.ReturnSingle)
    Frame1.Tag = Replace(Frame1.ScrollTop & ":" & Frame1.ScrollLeft, ",", ".")
    End Sub
    et a tout moment

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    frame1.scrolltop=split(frame1.tag,":")(0)
    frame1.scrollleft=split(frame1.tag,":")(1)
    ou si tu veux les remettre e dehors du module userform (nomuserform étant le nom de ton userform bien entendu )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    nomuserform. frame1.scrolltop=split(frame1.tag,":")(0)
    nomuserform.frame1.scrollleft=split(frame1.tag,":")(1)
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  4. #4
    Membre Expert
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Par défaut
    Bonjour

    Ceci semble empêcher la réinitialisation de la position des ScrollBars du Frame.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Private WithEvents mobjFrame1 As MSForms.Frame
     
    Private Sub mobjFrame1_Scroll( _
        ByVal ActionX As MSForms.fmScrollAction, _
        ByVal ActionY As MSForms.fmScrollAction, _
        ByVal RequestDx As Single, _
        ByVal RequestDy As Single, _
        ByVal ActualDx As MSForms.ReturnSingle, _
        ByVal ActualDy As MSForms.ReturnSingle)
     
        If ActionY = fmScrollActionFocusRequest Then
            ActualDy.Value = 0
        End If
     
    End Sub

  5. #5
    Membre averti
    Homme Profil pro
    commercial
    Inscrit en
    Juin 2016
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : commercial

    Informations forums :
    Inscription : Juin 2016
    Messages : 22
    Par défaut
    Bonjour,

    Merci pour vos différentes réponses.
    J'ai essayé de les adapter à mon cas, mais je n'obtiens pas le résultat souhaité.
    En effet, je n'utilise pas forcément l'ascenseur. La flêche du bas ou une tabulation permet également de descendre dans la frame.
    Je me permets de joindre un fichier.
    Ce que je souhaiterais obtenir est:
    Si on se positionne dans la textbox de valeur 10, l'ascenseur est en bas (ce qui est normal).
    Si on entre ensuite directement dans la textbox de valeur 14 par clic souris, l'ascenseur reste en bas (ce qui est normal).
    Si on souhaite retourner dans la textbox de valeur 10 par clic souris, on entre dans la textbox de valeur 5, puisque la scrollbar remonte.
    C'est ce que je veux éviter.
    Merci pour vos suggestions.
    Fichiers attachés Fichiers attachés

  6. #6
    Membre éclairé
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2014
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2014
    Messages : 35
    Par défaut Tabstop
    Bonjour,

    Afin d'éviter le positionnement automatique du scroll sur le contrôle actif, il faut mettre la propriété tabstop=false de tous les contrôles dans le frame.

    Bonne continuation.

Discussions similaires

  1. Position scrollbar dans un WebBrowser
    Par PapyBulleur dans le forum VB.NET
    Réponses: 2
    Dernier message: 14/03/2012, 19h06
  2. Scrollbar dans Frame: Position par défaut du curseur
    Par Ok371 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 21/11/2010, 15h51
  3. Position scrollbar dans textarea
    Par binjivb dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 29/08/2007, 11h54
  4. [VB.NET] Position ScrollBar dans un TextBox
    Par daner06 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 16/02/2006, 17h19
  5. Position de la scrollbar dans un div
    Par VolVic dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 03/01/2005, 15h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo