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

VBA Word Discussion :

[VBA word]CommandButton récalcitrant (newbie question)


Sujet :

VBA Word

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 124
    Points : 80
    Points
    80
    Par défaut [VBA word]CommandButton récalcitrant (newbie question)
    Bonsoir mon bouton « Ok » (Un CommandButton) ne me permet pas de sortir de mon interface utilisateur .Pour sortir de cette dernière je dois cliquer sur le bouton de fermeture , ce qui n’est pas pratique .Que faire ?

    Le code s'arrête au niveaux des "end sub" ce qui fait que je ne sors pas de mon interface ...

    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
     
    Private Sub CommandButton1_Click()
     
    If OptionButton1.Value = True Then
     
     Selection.Find.ClearFormatting
        With Selection.Find
            .Text = "EQUERRE"
            .Replacement.Text = ""
            .Forward = True
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
        Selection.Find.Execute
        Selection.EndKey Unit:=wdLine, Extend:=wdExtend
        Selection.Delete Unit:=wdCharacter, Count:=1
        Selection.TypeText Text:=" L= 1 ML"
     
    End If
     
    End Sub
     
    Private Sub Label1_Click()
     
    End Sub
     
    Private Sub OptionButton1_Click()
     
    End Sub
     
    Private Sub OptionButton2_Click()
     
    End Sub

  2. #2
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    si tu veux quitter l'appli (je crois comprendre que c'est celà que tu cherches), la commande est "END" (à inserrer dans le commandButton_click de ton choix.

    Regardes STP END dans l'aide en ligne


  3. #3
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Excuses*moi (pas vu que tu n'étais pas en VB).

    Dans ton cas l'instruction est STOP (pas END)


  4. #4
    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 : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Euh...

    Et Unload Me, ça marche pas???

  5. #5
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Si Me est la seule forme ouverte..., oui celà marchera sans aucun doute..

  6. #6
    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 : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Non!

    Me est toujours le parent du contrôle dont on capture l'événement

  7. #7
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Bonjour Alaintech

    Essayes donc, avec un projet avec 2 forms Form1 et Form2 :

    un bouton de command sur form1 ==>> load Form2

    toujours dans form1 (puisque tu y es resté, te contentant de charger form2) :

    un autre bouton ===>> unload me

    et constates (je viens de le faire)...



    EDIT Les forms n'ont pas forcément toutes des parents et les parents n'ont pas forcément des enfants....

  8. #8
    Expert éminent sénior


    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
    Points : 20 040
    Points
    20 040
    Par défaut Re: [VBA word]CommandButton récalcitrant (newbie question)
    Citation Envoyé par aA189
    Bonsoir mon bouton « Ok » (Un CommandButton) ne me permet pas de sortir de mon interface utilisateur .Pour sortir de cette dernière je dois cliquer sur le bouton de fermeture , ce qui n’est pas pratique .Que faire ?
    tu rajoute tout simplement une commande hide à la fin de ta procédure commandButton

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub CommandButton1_Click()
     
    ...
     
    hide
    End Sub

  9. #9
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Avez-vous vraiment compris qu'il veut pouvoir quitter l'appli ???????? et reprendre la main sans passer par


    Pour sortir de cette dernière je dois cliquer sur le bouton de fermeture , ce qui n’est pas pratique
    : :


    A aA189 qui risque de ne pas s'y retrouver :

    En VBA l'instruction STOP interromp totalement l'appli, quelles que soient les Forms (parents, enfants, etc...)


  10. #10
    Membre habitué
    Inscrit en
    Novembre 2005
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 130
    Points : 166
    Points
    166
    Par défaut
    Bonjour aA189,

    Pour fermer ton interface utilisateur rajoute

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    me.boutonFermeture = true
    à la fin de ta procedure CommandButton1_Click()

    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
     
    Private Sub CommandButton1_Click() 
     
    If OptionButton1.Value = True Then 
     
     Selection.Find.ClearFormatting 
        With Selection.Find 
            .Text = "EQUERRE" 
            .Replacement.Text = "" 
            .Forward = True 
            .Wrap = wdFindContinue 
            .Format = False 
            .MatchCase = False 
            .MatchWholeWord = False 
            .MatchWildcards = False 
            .MatchSoundsLike = False 
            .MatchAllWordForms = False 
        End With 
        Selection.Find.Execute 
        Selection.EndKey Unit:=wdLine, Extend:=wdExtend 
        Selection.Delete Unit:=wdCharacter, Count:=1 
        Selection.TypeText Text:=" L= 1 ML" 
     
        me.boutonFermeture = true
     
    End If 
     
    End Sub
    @+

  11. #11
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Hé Bé !!!
    J'abandonne...

    Salut à tous


  12. #12
    Expert éminent sénior


    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
    Points : 20 040
    Points
    20 040
    Par défaut
    Citation Envoyé par jmfmarques
    En VBA l'instruction STOP interromp totalement l'appli, quelles que soient les Forms (parents, enfants, etc...)

    Non voir
    Interrompt l'exécution.

    Syntaxe

    Stop

    Remarques

    Vous pouvez placer des instructions Stop n'importe où dans les procédures afin d'en interrompre l'exécution. Utiliser l'instruction Stop revient à placer un point d'arrêt dans le code.

    L'instruction Stop interrompt l'exécution d'un programme, mais contrairement à End, elle ne ferme pas les fichiers et n'efface pas les variables, sauf si elle est placée dans un fichier exécutable (.EXE) compilé.
    l'instruction Stop est une instruction à utiliser pour le débuggage...

    je maintient pour fermer une UserForm la commande c'est Hide...

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 124
    Points : 80
    Points
    80
    Par défaut
    Pour ce qui est de mes essais je constate que :
    stop est une instruction pour le débuggage
    end fonctionne mais efface les variables
    Unload ne m'a pas convaincu un peu dans la même veine que "end" cad efface ce qui est en mémoire
    me.boutonfermeture = true ; pas de chance je n'aie pas cette méthode dans ma console
    hide fonctionne ouf !Et ce n'est pas trop brutal .

    Conclusion : je pense que c'est pas trés élégant mais bon ...
    La bonne solution serait de construire un bouton "Ok" proprement .Je me suis contenté de redimensionner un commandButton et de renommer sa caption en "Ok" .Probable que la propriété-instruction "hide" doit être calée quelque part dans les propriétés du bouton "Ok" .Si quelqu'un sait ...

  14. #14
    Membre habitué
    Inscrit en
    Novembre 2005
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 130
    Points : 166
    Points
    166
    Par défaut
    aA189

    Quand tu disais
    Pour sortir de cette dernière je dois cliquer sur le bouton de fermeture
    Je pensais que tu avais programmé un CommandButton nommé fermeture.
    Comme apparement cela n'est pas le cas il te suffit de comme bil t'as dis
    mets un me.hide avant le end sub de ton bouton CommandButton1_Click()
    @+

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 124
    Points : 80
    Points
    80
    Par défaut [résolu]
    Ok merci à tous

Discussions similaires

  1. [WD-2010] Questions VBA, WORD
    Par jeje644 dans le forum VBA Word
    Réponses: 3
    Dernier message: 15/04/2014, 18h45
  2. [VBA] [WORD] problèmes avec NUMPAGES
    Par meufeu dans le forum VBA Word
    Réponses: 9
    Dernier message: 08/08/2005, 16h24
  3. [VBA WORD] Mailmerge et protection formulaire
    Par Marc Driver dans le forum VBA Word
    Réponses: 2
    Dernier message: 03/08/2005, 12h51
  4. [VBA] [WORD] se placer sur la 1ere page
    Par meufeu dans le forum VBA Word
    Réponses: 4
    Dernier message: 22/07/2005, 10h23
  5. [VB6][VBA][WORD 2003] Fusion - Publipostage.
    Par L.nico dans le forum VBA Word
    Réponses: 4
    Dernier message: 13/07/2005, 15h00

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