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 :

Ajuster automatiquement fenetre userform avec une scrollbar [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de bastou93
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2010
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 217
    Par défaut Ajuster automatiquement fenetre userform avec une scrollbar
    Bonjour a tous,

    Voila j'ai une petite contrainte, j'ajoute dynamiquement des contrôles qui sont placer de plus en plus bas.
    Le problème c'est que j'en affiche 1 seul au début et N à la fin avec N variable selon le nombre de clique.

    Lorsque j’insère plus de 3 éléments, le dernier sort de mon Userform et impossible de le voir!

    Je voudrais si possible faire avec les paramètre userform ou autre que lorsque je dépasse ma fenêtre, la taille reste la même cependant j'ai une scrollbar vertical qui fait que je peux descendre voir mes nouveaux contrôles

    Merci d'avance


    Bastien

  2. #2
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Bonjour,

    Voir la propriété ScrollBars du UserForm.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  3. #3
    Membre éclairé Avatar de bastou93
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2010
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 217
    Par défaut
    bonjour Alain,

    Merci pour ton aide, en gros il faut que je définisse une fonction qui en fonction du nombre de controle par exemple augmente la taille de ma ScrollHeight pas moyen de le faire en mode "auto"?

    Merci encore

    Bastien

  4. #4
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Bonjour,
    Excusez l'incruste...
    Je n'ai pas vu l'option auto de la hauteur du scrollbar.
    Cependant, tu peux intégrer un test dans ton code d'ajout de contrôle.
    Voici un exemple :
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    Private Sub CommandButton1_Click()
    'Procédure qui ajoute des TextBox les uns sous les autres
    'dynamiquement, dans un userform, au click sur mon bouton de commande 1
    Dim NewCtrl As Control, OldCtrl As Control
    Dim NbCtrl As Integer
     
    '---- Compte les contrôles du type TextBox ----
    For Each OldCtrl In Me.Controls
        If TypeOf OldCtrl Is MSForms.TextBox Then NbCtrl = NbCtrl + 1
    Next OldCtrl
     
    'Ajout d'un textbox
    Set NewCtrl = Me.Controls.Add("Forms.TextBox.1", "TextBox" & NbCtrl + 1, True)
        'règlages des paramètres taille et position du nouveau Textbox
        With NewCtrl
            .Top = 20 + (NbCtrl * 20)
            .Left = 40
            .Width = 100
            .Height = 20
        End With
     
    'Le cas échéant, ajout d'un ScrollBar vertical et réglage de la hauteur de scroll
        If NewCtrl.Top >= Me.Height - NewCtrl.Height Then
            Me.ScrollBars = fmScrollBarsVertical
            Me.ScrollHeight = NewCtrl.Top + NewCtrl.Height
        End If
    End Sub

  5. #5
    Membre éclairé Avatar de bastou93
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2010
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 217
    Par défaut
    Citation Envoyé par pijaku Voir le message
    Bonjour,
    Excusez l'incruste...
    Tu n'as pas à t'excuser AU CONTRAIRE

    merci pour ce code c'est parfait je vais pouvoir l'adapter très facilement (meme trop facile ).

    Je voyais comment faire avec des conditions comme toi mais je trouve sa étonnant qu'il n'y à pas un truc auto du genre ma fenetre fais 800*600 et si j'ajoute un controle en 860 ba j'ai une scroll verticale jusqu'à 880 par exemple...

    Merci encore

    Je ne résous pas encore on sait jamais si sa existe

  6. #6
    Membre éclairé Avatar de bastou93
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2010
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 217
    Par défaut
    J'ai fais sensiblement différement au final

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    'Le cas échéant, ajout d'un ScrollBar vertical et réglage de la hauteur de scroll
        If NewCtrl.Top+NewCtrl.Height  > Me.Height  Then
            Me.ScrollBars = fmScrollBarsVertical
            Me.ScrollHeight = NewCtrl.Top+NewCtrl.Height+20
        End If
    End Sub
    Voila merci encore c'est simple est super efficace

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

Discussions similaires

  1. fermer la fenetre principale avec une fonction
    Par eric60 dans le forum Tkinter
    Réponses: 11
    Dernier message: 18/02/2009, 16h37
  2. Réponses: 4
    Dernier message: 12/04/2007, 20h26
  3. Réponses: 3
    Dernier message: 03/02/2007, 00h12
  4. Réponses: 28
    Dernier message: 30/11/2006, 17h47
  5. [C#]Lier automatiquement un Textbox avec une variable
    Par apoingsfermes dans le forum Windows Forms
    Réponses: 4
    Dernier message: 19/07/2006, 11h21

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