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 :

réduire un userform


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 171
    Par défaut réduire un userform
    bonjour à toute l'équipe,
    je veux avoir sur mon userforme un petit boutton pour le réduire comme celui de croix pour le fermer. alors en faisant la recherche sur le forme je trouve cette solution

    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
    ' Variables globales au module
    Private sheet As Worksheet
     
    Private Declare Function GetWindowLongA Lib "User32" _
    (ByVal hWnd As Long, ByVal nIndex As Long) As Long
     
    Private Declare Function SetWindowLongA Lib "User32" _
    (ByVal hWnd As Long, ByVal nIndex As Long, _
    ByVal dwNewLong As Long) As Long
     
    Private Declare Function FindWindowA Lib "User32" _
    (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
     
    ' Composant UserForm
    Private Sub UserForm_Initialize()
    Dim hWnd As Long
     
    'Récupération window de l'userform et ajoute 'Réduire/Agrandir'
    hWnd = FindWindowA(vbNullString, Me.Caption)
    SetWindowLongA hWnd, -16, GetWindowLongA(hWnd, -16) Or &H20000
    'Ici pour éliminer la fermeture
    'SetWindowLongA hWnd, -16, GetWindowLongA(hWnd, -16) And &HFFF7FFFF
     
    End Sub
    pour moi ça marche pas??? du coup j'ai deux question:
    1) comme mon est dans des codes sur les button de mon userforme, c'est à dire j'ai pas utiliser de module(par contre j'ai plusieurs userforme) alors j'ai céer un module j'ai mis cette partie du code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private sheet As Worksheet
     
    Private Declare Function GetWindowLongA Lib "User32" _
    (ByVal hWnd As Long, ByVal nIndex As Long) As Long
     
    Private Declare Function SetWindowLongA Lib "User32" _
    (ByVal hWnd As Long, ByVal nIndex As Long, _
    ByVal dwNewLong As Long) As Long
     
    Private Declare Function FindWindowA Lib "User32" _
    (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

    et dans mon userforme la partie qui reste:


    '
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Composant UserForm
    Private Sub UserForm_Initialize()
    Dim hWnd As Long
     
    'Récupération window de l'userform et ajoute 'Réduire/Agrandir'
    hWnd = FindWindowA(vbNullString, Me.Caption)
    SetWindowLongA hWnd, -16, GetWindowLongA(hWnd, -16) Or &H20000
    'Ici pour éliminer la fermeture
    'SetWindowLongA hWnd, -16, GetWindowLongA(hWnd, -16) And &HFFF7FFFF
    mais ça marche pas il m'affiche un message: sub ou fonction non définie;
    dites moi s'il vous plait où est le probleme??? merci par avance

  2. #2
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,

    Oula....ça c'est de l'usine à gaz...

    clic droit sur le bouton que tu as mis sur ton UserForm --> Code

    et là tu écris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub CommandButton1_Click()
    Unload Me
    End Sub
    et ainsi de suite, le même code pour chaque bouton sur chaque UserForm

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 171
    Par défaut non c'est pa ça
    merci pour ta réponse mais moi je ne veux pas fermer mon userform, je veux juste le reduire!!pour des raison du travail. mais ce que je comprend pas c'est quoi API Windows,,,???? merci

  4. #4
    Expert confirmé
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Par défaut
    Hello,

    tu déclares tes API en type Private, donc elles ne sont connues que dans le module de déclaration. Soit tu les déclares en Public soit tu recopies leur déclaration dans le module où tu utilises ces API.

  5. #5
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Citation Envoyé par DIDIDIDA Voir le message
    merci pour ta réponse mais moi je ne veux pas fermer mon userform, je veux juste le reduire!!pour des raison du travail. mais ce que je comprend pas c'est quoi API Windows,,,???? merci
    aaah ok...réduire la taille mais le laisser visible ?
    Désolé j'avais mal compris

  6. #6
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 171
    Par défaut merci
    merci pour ta reponse, mais je n'ai pas bien compris! est ce que tu peux etre plus claire s'il te plait, je ne sais meme pas c quoi API, c'est code que j'ai trouvé sur le forme donc ce n'est pas moi qu'il a fait. merci

  7. #7
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 171
    Par défaut merci j'ai compris
    merci bp je pense que j'ai compris tu veux que je rende les function en public, c'est que je viens de faire et normalement ça marche; c'est superb!!!!!merci bp

  8. #8
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 171
    Par défaut pas tout à fait
    mon probleme n'est pas tout à fait résolu, avec mon code il réduit completement l'application excel, mais moi je veus réduire que le user forme et ensuite travailler sur les autre feuille excel!!!!!!!!!!!!!!!!!!!!!!!!!!!!!est ce qu'il ya qlql qui vois le probleme merci

  9. #9
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 120
    Par défaut
    SAlut
    Je crois bien que tu n'as pas compris ce que faisait ce code.
    Il te rajoute le petit bouton reduire en haut de ta UserForm (a coté de la croix de fermeture de la Form).
    Ce code ne te reduit rien du tout, il te permet de reduire ton UserForm manulement en rajoutant le bouton reduire qui par defaut n'est pas apparent sur le UserForm.
    A++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  10. #10
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonsoir,

    Je continue à croire qu'une usine à gaz n'est pas vraiment nécessaire, je verrais bien un truc du genre :

    Un bouton sur le UserForm "Réduire" avec le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub CommandButton1_Click()
    Me.Hide
    End Sub
    et un petit bout de code pour lequel on affecte une touche de raccourci (par exemple Ctrl+s)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub USF_on()
    UserForm1.Show
    End Sub
    Et peu importe où l'on se trouve dans le classeur, Ctrl+s et le UserForm réapparaît en ayant garder toutes ces valeurs

    Ca le fait pas ?
    Une info qui peut parfois servir, si tu souhaites pouvoir travailler sur ta feuille tout en gardant le userForm visible par dessus, il faut mettre sa propriété ShowModal sur False

  11. #11
    Membre Expert
    Avatar de cb_60
    Homme Profil pro
    Chargé de mission technique
    Inscrit en
    Juillet 2007
    Messages
    1 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Chargé de mission technique
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 253
    Billets dans le blog
    14
    Par défaut
    Bonsoir
    Ce n'est pas de moi mais de quelqu'un beaucoup plus connue " John Walkenbach" un zoom sur l'userform tu peux peut être tant inspirer
    L'imagination est plus importante que le savoir.... A . Einstein. :pastaper:
    https://www.developpez.net/forums/blogs/179588-cb_60/
    Merci de cliquer sur :resolu:pour clore cette discussion.

Discussions similaires

  1. Réduire - Agrandir un UserForm
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/09/2010, 13h36
  2. Réduire excel en même temps que l'userform
    Par e040098k dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/09/2008, 19h09
  3. [VBA EXCEL] Réduire/Agrandir UserForms
    Par Fench dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/11/2003, 16h02
  4. Réponses: 2
    Dernier message: 17/09/2003, 09h36
  5. comment réduire une image jpeg (taille x*y)
    Par don-diego dans le forum C
    Réponses: 4
    Dernier message: 14/07/2002, 20h06

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