Manipulation des userform [Résolu/Fermé]

Messages postés
341
Date d'inscription
mercredi 16 décembre 2015
Statut
Membre
Dernière intervention
7 novembre 2019
- - Dernière réponse : mijean94
Messages postés
341
Date d'inscription
mercredi 16 décembre 2015
Statut
Membre
Dernière intervention
7 novembre 2019
- 28 avril 2016 à 14:25
Bonjour,

J’ai le code ci-dessous pour me permettre d’ouvrir un fichier qui est dans un répertoire défini.

Sub recherche_devis1()
Dim chemin_devis As String
chemin_devis = Sheets("données_logiciel").Range("E2").Value
If chemin_devis <> "" Then GoTo 1
MsgBox "Chemin introuvable, avez vous mémorié un chemin ?"
GoTo 2:
1:
chemin_devis = Sheets("données_logiciel").Range("E2").Value
CreateObject("Wscript.shell").Popup "Une boite de dialogue va s'afficher. A vous de choisir le fichier Devis à ouvrir ? ", 10, "choix du fichier à ouvrir"
If Dir(chemin_devis, vbDirectory) <> "" Then
Application.Dialogs(xlDialogOpen).Show chemin_devis
Else
MsgBox "Chemin introuvable, avez vous mémorié un chemin ?"
End If
2:
Unload formulaire_debut 'UserForm
End Sub



Je souhaiterais que lorsque le bouton annuler est actionné, la fonction Unload formulaire_debut ne soit pas activée donc que le programme retour sur le formulaire début.


a) Que faudrait-il faire, je ne trouve pas la solution ?

b) En plus y-a-t-il une solution pour interdire de sortir d’un UserForm par la petite croix en haut à droite ?

c) et pour finir sur le sujet, pour fermer un UserForm faut-il toujours le nommer ou peut-on utiliser une commande standard ?

Merci pour vos réponses

Cordialement
Afficher la suite 

3 réponses

Messages postés
6428
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
10 décembre 2019
423
0
Merci
Bonjour,

Tu trouveras des réponses à tes questions a et c ici:

http://silkyroad.developpez.com/VBA/UserForm/#LI

Pour la question b, là:

http://vb.developpez.com/faqvba/?page=3.6#UFclosebutton
mijean94
Messages postés
341
Date d'inscription
mercredi 16 décembre 2015
Statut
Membre
Dernière intervention
7 novembre 2019
7 -
Bonjour,

Merci pour les informations.

Pour la question a), je n’ai pas trouvé ou compris ce qu’il faut faire dans les liens que tu me donnes ?

Pour la question b) j’ai bien trouvé le code, si dessous, pour y réponde, mais ou faut-il mettre ce code ?

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = 0 Then Cancel = True
End Sub


Pour la question c) c’est OK

Merci pour ton aide.

Cordialement
Messages postés
6428
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
10 décembre 2019
423
0
Merci
Pour la question a), je n’ai pas trouvé ou compris ce qu’il faut faire dans les liens que tu me donnes ?

En supprimant cette ligne tout simplement:

Unload formulaire_debut  'UserForm


Pour la question b) j’ai bien trouvé le code, si dessous, pour y réponde, mais ou faut-il mettre ce code ?

Si tu avais tout lu tu aurais trouvé ceci:

http://silkyroad.developpez.com/VBA/UserForm/#LIV

mijean94
Messages postés
341
Date d'inscription
mercredi 16 décembre 2015
Statut
Membre
Dernière intervention
7 novembre 2019
7 -
Bonjour,

Merci pour tes réponses. Mais même avec une lecture complète de tes liens je n’ai rien compris.

Toutes mes excuses mais j’essai de faire des choses en VBA que depuis le début de l’année car j’ai un peu de temps comme je suis à la retraite, mais je n’ai aucunement les capacités ou même l’envie de mémoriser toutes les subtilités du code.

Je bidouille en cherchant à droit et à gauche et avec l’aide de qui veut bien sur le forum pour pouvoir essayer de réaliser des petites applications pour mon plaisir et peut-être un jour comprendre donc réaliser seul une petite séquence.

Bien cordialement
Messages postés
14892
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
10 décembre 2019
1197
0
Merci
Bonjour a vous tous,

question a)

si annuler ou croix boite dial ne pas sortir de l'UF

Sub recherche_devis1()
    Dim chemin_devis As String, Fichier
    
    chemin_devis = Sheets("données_logiciel").Range("E2").Value
    If chemin_devis <> "" Then      'variable non vide
        chemin_devis = Sheets("données_logiciel").Range("E2").Value
        CreateObject("Wscript.shell").Popup "Une boite de dialogue va s'afficher. A vous de choisir le fichier Devis à ouvrir ? ", 10, "choix du fichier à ouvrir"
        If Dir(chemin_devis, vbDirectory) <> "" Then    'repertoire existe
            Fichier = Application.Dialogs(xlDialogOpen).Show(chemin_devis)
            If Fichier = False Then    'choix Annuler ou croix
                Exit Sub      'sortie sub
            End If
        Else
            MsgBox "Chemin introuvable: " & chemin_devis & " ?"
        End If
    Else
        MsgBox "Chemin introuvable si cellule vide, avez vous mémorisé un chemin ?"
    End If
    Unload formulaire_debut  'UserForm
End Sub
mijean94
Messages postés
341
Date d'inscription
mercredi 16 décembre 2015
Statut
Membre
Dernière intervention
7 novembre 2019
7 -
Bonjour à tous,

Un grand merci pour ta réponse qui solutionne mes points a et b et en plus j'ai réussi à transposer une partie de ton code sur d'autres UserForm. formidable.

Sans avoir les connaissances nécessaires pour réaliser du code, la réponse par l'exemple est plus facile à comprendre et peut-être à retenir et utiliser, dans mon cas.

Ce qui n'empêche pas de lire toute les propositions du forum, au minimum par respect pour celui qui à pris le temps de répondre.

Bien cordialement