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 :

Dimensionner un Userform [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre actif
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2008
    Messages
    704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2008
    Messages : 704
    Points : 217
    Points
    217
    Par défaut Dimensionner un Userform
    Bonjour a toutes et tous, Forum bonjour

    Je suis a la recherche d'un code VBA qui me permetterai de dimensionner un

    Userform avec soit des spinbouttons ou les scrollbars de l'userform.

    Mon programme est en cours de réflexion et si je peux redimmensionner, ca serai

    Top, bien sur, j'ai chercher mais pas trouver mon bonheur.

    But: Utiliser le futur un programme de compta sur différents Pc et portables

    et je souhaiterai ajuster a ma convenance l'userform.

    MAIS pas d'ajustement a l'écran dans mon cas, ca ne sera pas pratique.

    Merci a tous de votre aide et pour votre savoir.

    bonne après midi a tous.

    Cordialement Ray

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Points : 5 901
    Points
    5 901
    Par défaut
    Bonjour,

    Je ne suis pas certain si c'est ceci que tu recherches à faire, mais ça vaut le détour
    http://www.andypope.info/vba/resizeform.htm

  3. #3
    Membre actif
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2008
    Messages
    704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2008
    Messages : 704
    Points : 217
    Points
    217
    Par défaut
    Salut parmi

    merci pour ta réponse et pour le lien, c'est sympa

    bon j'ai essayer et fouiner sur le lien mais ca ne réponds pas tout a fait

    a mon besoin

    l'USF s'agrandi et diminue bien mais le contenu de l'USF ne s'adapte pas a un

    affichage correct puisque rien ne bouge dans l'USF.

    Déja un début, il y a surement quelque chose a faire, mais moi je ne sais pas

    coder pour y parvenir.

    le fichier "FormResizer" qui est dans le lien est toutefois une bonne approche.

    Encore merci a toi pour ton aide

    a plus tard

    Cdtl Ray

    Bonjour a tous, forum bonjour

    J'ai de nouveau fait des recherches mais sans résultat, il y a bien des codes sur le net mais cela ne corresponds pas a mon besoin.

    Si quelqu'un pouvait me donner un petit coup de main sur ce coup la, ca serai bien sympa.

    Merci par avance de votre aide et bonne après midi a vous.

    Cdlt Ray

  4. #4
    Invité
    Invité(e)

  5. #5
    Membre actif
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2008
    Messages
    704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2008
    Messages : 704
    Points : 217
    Points
    217
    Par défaut
    Salut vcottineau,

    Merci beaucoup pour ta réponse , j'ai vu lors de mes recherches le code que tu me propose voir svp ci-dessous

    mais je n'arrive pas a le faire fonctionner il demande de déclarer des variables et je n'arrive pas mettre les bons codes.

    Merci pour ton aide

    Cdlt Ray

    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
     
    Private Sub UserForm_Resize()
    On Error Resume Next
    I = 0
    For Each ctrl In Me.Controls
    I = I + 1
    'largeure du control=largeure usf actuelle divisée par entre parenthezes  largeur usf de depart divisée par largeur de depart du control
    ctrl.Width = Me.Width / (largeure_usf / largeurbouton(I))
    'hauteur du control = hauteur usf actuelle divisée par entre parenthezes  hauteur usf de depart divisée par hauteur de depart du control
    ctrl.Height = Me.Height / (hauteure_usf / hauteurbouton(I))
    'le left du control = largeur usf actuelle divisée par entre parenthezes  largeur usf de depart divisée par le left de depart du control
    ctrl.Left = Me.Width / (largeure_usf / leftbouton(I))
    'le top du control = hauteur usf actuelle divisée par entre parenthezes  hauteur usf de depart divisée par le top de depart du control
    ctrl.Top = Me.Height / (hauteure_usf / topbouton(I))
    'le top du control = hauteur usf actuelle divisée par entre parenthezes  hauteur usf de depart divisée par le top de depart du control
    ctrl.FontSize = ((Me.Height + Me.Width) / 8) / (fontbouton * 2)
    Next
    largeur = Me.Width  '////////////////////////////////////////////
                        '///affiche les dimensions dans les textbox//
    hauteur = Me.Height '////////////////////////////////////////////
     
    Me.Repaint 'repeint le userform pour effacer les traces des anciens emplacement des control(du a la puissance de la carte graphique)
    End Sub

  6. #6
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Points : 5 901
    Points
    5 901
    Par défaut
    Je ne suis pas certain que ce soit une bonne approche de changer systématiquement la grosseur des contrôles. Peut-être devrais-tu plutôt les bouger seulement, surtout dans le cas de boutons ?

    Si tu as des listbox (ou certains autres contrôles), par contre, la redimension peut être intéressante...

  7. #7
    Membre émérite
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Points : 2 684
    Points
    2 684
    Par défaut
    Voici une version modifiée qui ne demande de déclarer que 2 variables.

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    Dim largeure_usf
    Dim hauteure_usf
     
    Private Sub UserForm_Initialize()
     largeure_usf = Me.Width
     hauteure_usf = Me.Height
    End Sub
     
    Private Sub CommandButton2_Click()
     
    'test
    Me.Width = Me.Width - 50
    Me.Height = Me.Height - 50
    End Sub
     
    Private Sub CommandButton1_Click()
     
    'test
    Me.Width = Me.Width + 50
    Me.Height = Me.Height + 50
    End Sub
     
     
    Private Sub UserForm_Resize()
    On Error Resume Next
     
    For Each ctrl In Me.Controls
     
     ctrl.Width = ctrl.Width * (Me.Width / largeure_usf)
     ctrl.Height = ctrl.Height * (Me.Height / hauteure_usf)
     ctrl.Left = ctrl.Left * (Me.Width / largeure_usf)
     ctrl.Top = ctrl.Top * (Me.Height / hauteure_usf)
     ctrl.FontSize = ctrl.FontSize * (Me.Width / largeure_usf)
    Next
     
    largeure_usf = Me.Width
     
    hauteure_usf = Me.Height
     
    Me.Repaint 'repeint le userform
    End Sub

  8. #8
    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
    Points : 12 068
    Points
    12 068
    Billets dans le blog
    8
    Par défaut heu
    Bonjour
    Docmarti le lien que tu a donné concernant ma contribution au sujet de l'userform redimensionnable traite les contrôles proportionnellement
    c'est a dire que les contrôles ont une dimension au départ et lors du resize respecte le pourcentage par rapport a la taille de l'userform

    exemple
    l'userform mesure 300de large et 200 de haut
    le control mesure 80 de large et 30 de haut

    lors du resize si le userform fait par exemple 400 de large et 400 de haut

    le control fera 400/(300/80) de large et 400/(200/30) de haut
    ce qui te donnera forcement une forme différente mais exactement égale en terme de proportion

    surtout récupérer le dernier exemplaire le code est plus propre et plus rapide et surtout moins lourd

    je dirais en plus que ton exemple simplifié est celui de mon dernier exemplaire
    sauf que tu a supprimé la gestion du font size pour ce qui n'ont pas cette propriété je le laisserait moi a ta place

    je dirais même plus si tu cherche bien dans les contributions il y a même un exemplaire qui ne nécessite aucune variable pour le redimensionnement puisque je me sert du tag de chaque contrôles pour garder les données

    au plaisir

  9. #9
    Membre actif
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2008
    Messages
    704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2008
    Messages : 704
    Points : 217
    Points
    217
    Par défaut
    Salut parmi

    effectivement j'ai sur mon USF 14 checkboxs 4 commandbuttons 2 petites listes déroulantes et beaucoup de labels pas loin d'une centaine

    le tout est disposer bien la ou il faut et je souhaiterai donc que l'USF et les éléments se modifie MAIS pas faire de zoom

    je regarde comment y parvenir avec les différents codes proposés, pour l'instant
    je n'ai pas réussi a faire quelque chose bien

    merci pour ton aide bon W-end

    Cdlt Ray

    Salut Patricktoulon

    Merci pour tes infos a propos des USF comme tu a pu lire dans mes réponses

    j'ai fait des essais mais sans bon résultat, du coup je ne sais plus trop quoi faire.

    Encore merci pour ton aide.

    je vais chercher de nouveau

    PS je ne trouve pas l'accès a tes contributions pour voir le fichier dont tu parles
    je dirais même plus si tu cherche bien dans les contributions il y a même un exemplaire qui ne nécessite aucune variable pour le redimensionnement puisque je me sert du tag de chaque contrôles pour garder les données
    Cdlt Ray

  10. #10
    Membre émérite
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Points : 2 684
    Points
    2 684
    Par défaut
    Bonjour.

    Patricktoulon, tu fais erreur. Ce n'est pas moi qui ai donné un lien concernant ta contribution. C'est vcottineau.

    Mais tu as su piquer ma curiosité et je suis allé voir ce lien donné par vcottineau. Je n'y trouve aucun code ressemblant à l'un de tes codes.

    Mon code m'appartient en propre.

    Ceci étant dit, je trouve ton code excellent et donnant des résultats plus précis que mon code en ce qui concerne la taille des polices qui constitue un problème plus complexe qui doit être traité différemment.


    Cordialement

    Docmarti

  11. #11
    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
    Points : 12 068
    Points
    12 068
    Billets dans le blog
    8
    Par défaut re
    re
    bonjour docmarti ca n'est pas d'une gravité ou d'une importance mais je reconnais bien mon module avec les variables largeur_usf et l'autre
    cela dit je réitère sur le point que dans les contribution vba ou excel vba il y a une version sans variable tout est dans le tag des contrôles

    Citation Envoyé par Docmarti Voir le message
    Voici une version modifiée qui ne demande de déclarer que 2 variables.

    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
    Dim largeure_usf
    Dim hauteure_usf
     
    Private Sub UserForm_Initialize()
     largeure_usf = Me.Width
     hauteure_usf = Me.Height
    End Sub
     
     
    Private Sub UserForm_Resize()
    On Error Resume Next
     
    For Each ctrl In Me.Controls
     
     ctrl.Width = ctrl.Width * (Me.Width / largeure_usf)
     ctrl.Height = ctrl.Height * (Me.Height / hauteure_usf)
     ctrl.Left = ctrl.Left * (Me.Width / largeure_usf)
     ctrl.Top = ctrl.Top * (Me.Height / hauteure_usf)
     ctrl.FontSize = ctrl.FontSize * (Me.Width / largeure_usf)
    Next
     
    largeure_usf = Me.Width
     
    hauteure_usf = Me.Height
     
    Me.Repaint 'repeint le userform
    End Sub
    mais celui la ne gère pas le font size correctement car tout les controls n'ont pas cette propriété le dernier exemple que j'ai mis dans le s contrib le gère

    Au plaisir

  12. #12
    Membre actif
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2008
    Messages
    704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2008
    Messages : 704
    Points : 217
    Points
    217
    Par défaut
    Salut a tous, forum

    j'ai fait pleins d'essais mais ca ne marche pas

    alors tant pis

    Cdlt

  13. #13
    Membre émérite
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Points : 2 684
    Points
    2 684
    Par défaut
    Bonjour eliot.raymond

    Envoie ton code de redimensionnement. On te dira ce qui ne va pas.

    Cordialement

    Docmarti

  14. #14
    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
    Points : 12 068
    Points
    12 068
    Billets dans le blog
    8
    Par défaut re
    Bonjour a tout les deux

    voyant que l'on avance pas je vous donne une exemplaire sur le quel il y a plein de contrôles notamment des boutons sur les quels en cliquant on change les propriétés de la captions de l'userform et quelques autres petites astuces

    comme vous le verrez je n'utilise plus de variables mais le tag des contrôles pour mémorisé l'operateur qui modifiera les démentions

    allez assez de blabla une démo vaut mieux que de grand discours: roll:

    voila voila

    n'hésitez pas si il y a des questions
    Au plaisir
    Fichiers attachés Fichiers attachés

  15. #15
    Membre actif
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2008
    Messages
    704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2008
    Messages : 704
    Points : 217
    Points
    217
    Par défaut
    Salut Patricktoulon

    Merci pour ta réponse c'est sympa, effectivement je galère pas mal avec ce que je souhaiterai faire.

    bon, je viens d'essayer ton code l'usf s'affiche bien

    puis j'essaie de redimensionner par les manières que tu expliques mais rien ne se passe

    en restant cliquer sur les bords de l'usf je n'arrive qu'a déplacer l'usf c'est tout

    (1) question :qu'appel tu les boutons de la caption svp

    En tout cas, je te remercie d'essayer de faire avancer mon soucis

    bonne après midi a toi

    Cdlt Ray

  16. #16
    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
    Points : 12 068
    Points
    12 068
    Billets dans le blog
    8
    Par défaut re
    Bonjour

    il y a des boutons dans le usf regarde leur titres tu comprendra

    si tu clique sur 3 bouton et élasticité l'userform aura les mêmes propriétés que toutes les fenêtres Windows

    en positionnant ta souris sur un des coins comme tu ferais sur les fenêtres Windows le curseur change et en restant appuyé et te déplaçant l'userform se redimensionne ainsi que leur contrôles


    veux tu que je te fasse une exemplaire tout simple ?sans toute les options ?

  17. #17
    Membre actif
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2008
    Messages
    704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2008
    Messages : 704
    Points : 217
    Points
    217
    Par défaut
    Re Patricktoulon

    Merci beaucoup désolé je n'avais pas compris comment utiliser ton programme

    grace a tes explications maintenant c'est plus clair.

    je regarde de plus pres j'adapte a mon programme

    je fais des essais te tient au courant je reviens si je merdouille

    Merci Patrick c'est gentil et merci pour ton aide

    a plus tard bonne après midi

    Cordialement Ray

  18. #18
    Membre expérimenté
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Points : 1 499
    Points
    1 499
    Par défaut dimensionner un userform
    Bonjour Patrick,

    J'ai voulu étudier ton fichier mais hélas VBA m'a retourné un message d'erreur à l'ouverture.

    Le problème vient de l'instruction déclare qui n'est pas compatible avec un 64 bit. il me parle de ptrsafe qui est pour moi de l'Hébreu.

    Peux-tu me dire ce qu'il faut exactement modifier ?

    Peut-être serait-il intéressant de mentionner sur le fichier lui même les instructions à conserver selon que l'on est en 64 bits ou 32 bits afin que ta contribution profite au plus grand nombre.

    J'ai déjà eu sur ce site une contribution que je n'ai pu analyser à cause du même problème. Ce sera pour moi une occasion d'y retourner quand je saurai quoi faire.

    Merci.

    Cordialement.

  19. #19
    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
    Points : 12 068
    Points
    12 068
    Billets dans le blog
    8
    Par défaut
    re
    oui effectivement je suis en 64 bit mais office 32 bits alors je n'en ai pas besoins

    je regarde ca et je te fait un exemplaire tout simple il sera plus facile pour toi de l'intégrer

    Au plaisir

    re
    tiens va voir de ce coté

  20. #20
    Membre expérimenté
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Points : 1 499
    Points
    1 499
    Par défaut dimensionner un userform
    Re... Patrick,

    Merci pour le document.

    Je ne comprends strictement rien à l'Anglais mais en recherchant les "declare" et "ptrsafe" dans le texte, j'en ai déduit que c'est le cas VBA7 qui nous concernait. (je ne sais d'ailleurs pas ce qu'est VBA7)

    La modification est finalement très simple : il suffit d'ajouter "ptrsafe" juste après tous les déclare. A savoir : declare ptrsafe function .....
    C'est du moins ce que j'ai conclu après ouverture de l'userfom sans problème.

    J'apporte ces précisions pour ceux qui, comme moi, rencontreraient ce problème lié au 64 bits.

    Il ne me reste plus qu'à essayer ton programme.

    Cordialement

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. Dimensionnement d'un UserForm
    Par eric4459 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 17/06/2015, 18h55
  2. [XL-2010] Dimensionnement de variables avec un userform récurrent
    Par jmh51 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/08/2014, 18h02
  3. Dimensionnement de la fenetre excel derrière un userform
    Par Godzestla dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/09/2008, 13h54
  4. Dimensionnement du serveur ?
    Par foste dans le forum Access
    Réponses: 5
    Dernier message: 21/05/2003, 14h22
  5. Re-dimensionnement automatique de composants
    Par ludo_7 dans le forum C++Builder
    Réponses: 10
    Dernier message: 16/05/2002, 17h35

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