Manipulation des userform

Résolu/Fermé
mijean94 Messages postés 413 Date d'inscription mercredi 16 décembre 2015 Statut Membre Dernière intervention 12 septembre 2024 - 26 avril 2016 à 23:47
mijean94 Messages postés 413 Date d'inscription mercredi 16 décembre 2015 Statut Membre Dernière intervention 12 septembre 2024 - 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
A voir également:

3 réponses

cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
27 avril 2016 à 07:53
Bonjour,

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

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

Pour la question b, là:

https://vb.developpez.com/faqvba/?page=3.6#UFclosebutton
0
mijean94 Messages postés 413 Date d'inscription mercredi 16 décembre 2015 Statut Membre Dernière intervention 12 septembre 2024 11
27 avril 2016 à 21:48
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
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
28 avril 2016 à 07:50
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:

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

0
mijean94 Messages postés 413 Date d'inscription mercredi 16 décembre 2015 Statut Membre Dernière intervention 12 septembre 2024 11
28 avril 2016 à 13:52
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
0
f894009 Messages postés 17200 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 11 septembre 2024 1 709
28 avril 2016 à 08:20
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
0
mijean94 Messages postés 413 Date d'inscription mercredi 16 décembre 2015 Statut Membre Dernière intervention 12 septembre 2024 11
28 avril 2016 à 14:25
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
0