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 :

Icone réduire et agrandir sur un formulaire Excel via VBA [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Femme Profil pro
    Pationnée d'informatique
    Inscrit en
    Septembre 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Pationnée d'informatique

    Informations forums :
    Inscription : Septembre 2015
    Messages : 6
    Par défaut Icone réduire et agrandir sur un formulaire Excel via VBA
    Bonjour à tous,

    Je suis novice sur le sujet et je cherche désespérément comment mettre l’icône réduction et agrandir sur ma page de formulaire dans excel que je crée par VBA.

    Je suis en train de reprendre le travail de quelqu'un et cela est très compliqué.

    De plus, l’icône de fermeture (x) ne fonctionne pas si je clique dessus.

    Donc, j'ai bien trouvé dans le FAQ excel Comment ajouter un bouton de réduction dans les UserForms ? mais je n'y arrive pas. On explique :
    Placez cette première macro dans un module standard. Vous utiliserez cette macro pour lancer l'UserForm. Mais où faut-il le mentionné dans l'UserForm directement ou j’inscris les macros du formulaire ou ailleurs en créant un nouveau module ?

    et après Ensuite, placez ce code dans le module objet du UserForm. Mais c'est quoi un module objet ?

    Je suis désolée pour ces questions qui sont pour vous surement très novice, mais j'ai vraiment besoin de vos lumières. J'ai essayé plusieurs manipulations, mais rien ne fonctionne, il me met des messages d'erreur de compilation (seuls des commentaires peuvent apparaitre après end Sub, end Function ou end property.

    Il me faudrait des explications pour une très débutante.
    je vous remercie déjà pour le temps accordé pour m'aider.

    Je vous souhaite une excellente journée.

    Vanessa

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Bonjour,

    pour le 1° code tu rajoute un module standard à ton projet ...


    Pour le 2° code tu le place dans la page de code associé as ton UserForm ... , tu te trouve dans cette page de code dés que tu double-clic sur ton userform dans l'éditeur VBA..

  3. #3
    Membre à l'essai
    Femme Profil pro
    Pationnée d'informatique
    Inscrit en
    Septembre 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Pationnée d'informatique

    Informations forums :
    Inscription : Septembre 2015
    Messages : 6
    Par défaut
    rebonjour,

    je te remercie mais il met encore la même erreur voir piece jointe.
    Fichiers attachés Fichiers attachés

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Colle tout le code ci-dessous dans le module de ton formulaire et teste si c'est ce que tu souhaites :
    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
    Private Declare Function GetSystemMenu _
                    Lib "user32" ( _
                    ByVal hwnd As Long, _
                    ByVal bRevert As Long) As Long
     
    Private Declare Function DeleteMenu _
                    Lib "user32" ( _
                    ByVal hMenu As Long, _
                    ByVal nPosition As Long, _
                    ByVal wFlags As Long) As Long
     
    Private Declare Function FindWindow _
                    Lib "user32" Alias "FindWindowA" ( _
                    ByVal lpClassName As String, _
                    ByVal lpWindowName As String) As Long
     
    Private Declare Function EnableWindow _
                    Lib "user32" ( _
                    ByVal hwnd As Long, _
                    ByVal bEnable As Long) As Long
     
    Private Declare Function GetWindowLong _
                    Lib "user32" _
                    Alias "GetWindowLongA" ( _
                    ByVal hwnd As Long, _
                    ByVal nIndex As Long) As Long
     
    Private Declare Function SetWindowLong _
                    Lib "user32" _
                    Alias "SetWindowLongA" ( _
                    ByVal hwnd As Long, _
                    ByVal nIndex As Long, _
                    ByVal dwNewLong As Long) As Long
     
    Private Sub UserForm_Activate()
     
        EnableWindow FindWindow(vbNullString, Application.Caption), 1
     
    End Sub
     
    Private Sub UserForm_Initialize()
     
        Dim ID As Long
     
        ID = FindWindow(vbNullString, Me.Caption)
     
        '131072 Réduire
        '65536 Agrandir
        '196608 Réduire + Agrandir
        SetWindowLong ID, -16, GetWindowLong(ID, -16) Or 196608
     
    End Sub

  5. #5
    Membre à l'essai
    Femme Profil pro
    Pationnée d'informatique
    Inscrit en
    Septembre 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Pationnée d'informatique

    Informations forums :
    Inscription : Septembre 2015
    Messages : 6
    Par défaut
    Merci merci et encore merci, j'ai juste remplacer FindWindow(vbNullString, Me.Caption) par FindWindow(vbNullString, userform1.Caption) et j'ai enfin l’icône réduction et agrandir, par contre il faut que je le revalide car les icônes disparaissent à chaque renouvellement de formulaire. Et merci encore

  6. #6
    Invité
    Invité(e)
    Par défaut
    Il ne faut pas place ton code dans Activate mais dans Resize!

  7. #7
    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
    bonjour
    un code utra simple a mettre dans le module du userform
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #If win64 Then
    Private Declare ptrsafe Function GAW Lib "User32" Alias "GetActiveWindow" () As Long
    Private Declare ptrsafe Function SWL Lib "User32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    #Else
    Private Declare Function GAW Lib "User32" Alias "GetActiveWindow" () As Long
    Private Declare Function SWL Lib "User32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    #End If
    Private Sub UserForm_Activate()
    SWL GAW, -16, &H94CB0080
    End Sub
    résultat
    Pièce jointe 188482


    et au cas ou tu voudrais l'élasticité en plus
    &H94CF0080 a la place de &H94CB0080
    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

  8. #8
    Membre à l'essai
    Femme Profil pro
    Pationnée d'informatique
    Inscrit en
    Septembre 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Pationnée d'informatique

    Informations forums :
    Inscription : Septembre 2015
    Messages : 6
    Par défaut
    Citation Envoyé par rdurupt Voir le message
    Il ne faut pas place ton code dans Activate mais dans Resize!
    Je te remercie, mais quand tu dis de mettre dans Resize, il faut que je fasse la modification à ce niveau Private Sub UserForm_Activate() car j'ai essayé et cela ne change rien.
    Il faut que je retourne systématiquement dans mon module et que je retape "entrez" après le dernier End Sub pour que cela réapparaisse sur mon formulaire.
    Je suis désolée encore une fois pour mon niveau et merci encore pour votre patience.
    Fichiers attachés Fichiers attachés

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/03/2014, 23h15
  2. action sur les filtres Excel via MATLAB
    Par Dombrai dans le forum MATLAB
    Réponses: 5
    Dernier message: 29/05/2013, 15h23
  3. [XL-2010] Extraction données formulaire Word via VBA Excel
    Par jojoSuperFripouille dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 18/04/2013, 17h18
  4. insertion cotation CAC 40 sur excel via VBA
    Par stiffon dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/02/2012, 13h27
  5. [AC-2007] Transposer une table access sur un fichier excel avec VBA
    Par christophe31 dans le forum VBA Access
    Réponses: 1
    Dernier message: 27/04/2010, 15h51

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