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

Macros et VBA Excel Discussion :

Scrollbar pour frame


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de zoidy
    Inscrit en
    Avril 2006
    Messages
    184
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 184
    Par défaut Scrollbar pour frame
    Salut à tous,

    Dans un userform, j'ai une frame qui se remplit de checkbox dynamiquement. Le truc c'est que quelquefois les checkbox dépasse du frame.
    Comme je ne peux pas élargir la frame, il faudrait que j'utilise des scrollbar. L'outil est présent dans la toolbox de VBA mais je ne sais pas si c'est possible de l'utiliser pour ce cas là ; et si oui comment ?

    Merci pour vos réponses

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Bonjour

    Tu dois évidemment afficher la barre de défilement en adaptant la valeur de la propriété ScrollBars. Tu peux demander à ce que la barre soit toujours visible ou seulement lorsque la zone visible est plus grande que le conteneur, grâce à la propriété KeepScrollbarsVisible.

    Pour un défilement vertical, tu dois également définir la valeur de la propriété ScrollHeight. Par défaut, cette valeur est à 0 et donc il n'y a pas de défilement possible.

    Par exemple, tu peux avoir un frame de 100 de haut et définir la propriété ScrollHeight à 300. La barre de défilement vertical s'affichera et la zone visible dans cette barre représentera +/- un tiers de la hauteur de la barre.

    La logique est identique pour la barre de défilement horizontal, en adaptant les noms des propriétés.

    Tu peux évidemment définir ces valeurs par macro, en fonction de la place de tes textbox, par exemple.

    Ok?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  3. #3
    Membre confirmé Avatar de zoidy
    Inscrit en
    Avril 2006
    Messages
    184
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 184
    Par défaut
    Impec'

    Pour le principe no problem, mais je risque surement d'avoir d'autres questions quand je devrais coder tout ça.

    Merci Pierre

  4. #4
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour,

    Mets donc ton Frame dans un autre conteneur plus petit (correspondant à la surface d'affichage disponible). Ce conteneur peut être un autre Frame.
    Puis fais dérouler, à l'aide des scrollbars, ton Frame (le grand, celui qui contient tes contrôles) dans le petit (le container).
    Je te rappelle au besoin que tu peux affecter des valeurs négatives aux propriétés Top et Left d'un Frame...

    Bonne continuation...

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Citation Envoyé par ucfoutu Voir le message
    Bonjour,

    Mets donc ton Frame dans un autre conteneur plus petit (correspondant à la surface d'affichage disponible). Ce conteneur peut être un autre Frame.
    Puis fais dérouler, à l'aide des scrollbars, ton Frame (le grand, celui qui contient tes contrôles) dans le petit (le container).
    Je te rappelle au besoin que tu peux affecter des valeurs négatives aux propriétés Top et Left d'un Frame...

    Bonne continuation...
    Et il fait comment après, pour faire dérouler son frame conteneur???? Faudra m'expliquer à quoi cela sert de mettre un frame dans un autre pour utiliser les scrollbars du frame conteneur à la place des scrollbars du frame contenu...
    il devra quand même adapter les méthodes de scrollbar...!!!
    Moi, pour résoudre le problème des scrollbars du frame conteneur, je propose de mettre dans un deuxième frame conteneur, lui-même placé dans un frame conteneur qui sera placé da... ... ... ...
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  6. #6
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Réponse du "boulet", donc ...
    j'agilise de façon signicative en utilisant une scrollbar totalement indépendante et que je place en bordure du conteneur du Frame (le plus grand) à dérouler

    Je donne à la scrollbar une valeur maxi = à la différence entre le cadre contenu (le plus grand) et le cadre conteneur (le plus petit)

    je place (en mode création) le côté supérieur du frame "contenu" (le plus grand) tout en haut du Frame 'contenant" (le plus petit)

    Code ensuite ?
    Ben ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub VScroll1_Change()
      Framecontenu.Top = -VScroll1.Value
    End Sub
     
    Private Sub VScroll1_Scroll()
      Framecontenu.Top = -VScroll1.Value
    End Sub
    Et je n'ai ni "environ" ni autres calculs totalement inutiles, et j'allège assez bien mon appli.
    Cet exemple était pour un déroulement vertical.
    La chose est identique pàour un déroulement horizontal (suffit alors de prendre la différence entre les largeurs)
    Mais... c'est une façon "boulet"... alors... faut l'oublier, hein ..., même si nous simmes des milliers à la préférer...et pas des moindres. )

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [html] Scrollbar pour un INDEX
    Par DJ Skudd dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 11/08/2006, 10h23
  2. [VBA-E] Une ScrollBar pour deux TextBox
    Par Ender dans le forum Macros et VBA Excel
    Réponses: 33
    Dernier message: 30/07/2006, 14h05
  3. destructeur pour Frame ou dialog
    Par ced2004 dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 08/05/2006, 13h52
  4. cherche exemple de construction de scrollbar pour select
    Par titicurio dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 21/02/2006, 16h00
  5. [FLASH MX] Une scrollbar pour plusieurs champs texte
    Par ffmlgraphics dans le forum Flash
    Réponses: 1
    Dernier message: 08/08/2005, 16h45

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