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 :

Relancer msoFileDialogFolderPicker si condition non remplie [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Technicien de tests machines spéciales
    Inscrit en
    Décembre 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien de tests machines spéciales
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2014
    Messages : 9
    Points : 10
    Points
    10
    Par défaut Relancer msoFileDialogFolderPicker si condition non remplie
    Bonjour à tous
    J'ai un petit bout de code qui me permet d'aller sélectionner un dossier à partir d'un chemin précis, voici ce code :

    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
     
    Private Sub CommandButton1_Click()
     
    Dim Chemin As String, Dossier As String
    Chemin = "\\SERVEUR\Dossier principal\test\"
     
        With Application.FileDialog(msoFileDialogFolderPicker)
        .InitialFileName = Chemin
        .Show
            If .SelectedItems.Count > 0 Then Dossier = .SelectedItems(1) & "\"
            End With
            If Dossier = Chemin Then
            MsgBox "Vous devez sélectionner un répertoire d'enregistrement", vbExclamation, "Pas de répertoire sélectionné"
            Else: MsgBox "Répertoire sélectionné :" & vbLf & vbLf & Dossier
            End If
    End Sub
    mon souci c'est que je souhaite que si Dossier = Chemin on affiche la Msgbox puis on réouvre la fenêtre de sélection de dossier.

    Merci pour votre aide

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 380
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 380
    Points : 2 007
    Points
    2 007
    Par défaut
    Le mieux est que tu ecrive une fonction qui va afficher la boite de dialogue, avec en paramètre le chemin, et qui te renvoie le dossier.
    après l'appel de la fonction, tu fait ton test et refait ton appel si necessaire. Ce sera moin lourd à écrire, et plus facile à gérer.

    PS: je ne suis pas fan de forcer la main de l'utilisateur.
    Et que ce passe-t-il si l'utilisateur ne selectionne rien ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Technicien de tests machines spéciales
    Inscrit en
    Décembre 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien de tests machines spéciales
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2014
    Messages : 9
    Points : 10
    Points
    10
    Par défaut
    Merci pour cette réponse mais j’avoue que je ne suis pas spécialiste en VBA du coup je ne vois pas comment faire la fonction que tu me préconises.Pour ce qui est de ton PS en fait je n'ai pas le choix car le document à enregistrer doit impérativement se trouver sur le réseau et le chemin n'est pas évident à trouver pour tous mes utilisateurs.Donc c'est plus pour les aider.

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 380
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 380
    Points : 2 007
    Points
    2 007
    Par défaut
    quelque chose comme ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Public Function selectionDossier(ByVal Chemin As String) As String
        Dim Dossier As String
     
        With Application.FileDialog(msoFileDialogFolderPicker)
            .InitialFileName = Chemin
            .Show
            If .SelectedItems.Count > 0 Then Dossier = .SelectedItems(1) & "\"
        End With
        selectionDossier = Dossier
    End Function

  5. #5
    Membre à l'essai
    Homme Profil pro
    Technicien de tests machines spéciales
    Inscrit en
    Décembre 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien de tests machines spéciales
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2014
    Messages : 9
    Points : 10
    Points
    10
    Par défaut
    Encore merci pour ta réponse rapide mais en fait je vais me contenter de mettre dans ma msgbox qu'il faut relancer la procédure car je ne suis pas assez doué en vba et du coup je n'arrive pas à exploiter le code que tu m'as donné.
    En tout cas merci quand même.

  6. #6
    Membre expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 869
    Points : 3 442
    Points
    3 442
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Tu peux également faire simplement une boucle comme ceci
    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
    Private Sub CommandButton1_Click()
     
    Dim Chemin As String, Dossier As String
    Chemin = "\\SERVEUR\Dossier principal\test\"
    Dossier = Chemin
    Do While Dossier = Chemin
        With Application.FileDialog(msoFileDialogFolderPicker)
            .InitialFileName = Chemin
            .Show
            If .SelectedItems.Count > 0 Then Dossier = .SelectedItems(1) & "\"
        End With
        If Dossier = Chemin Then
            MsgBox "Vous devez sélectionner un répertoire d'enregistrement", vbExclamation, _
                "Pas de répertoire sélectionné"
        End If
    Loop
    MsgBox "Répertoire sélectionné :" & vbLf & vbLf & Dossier
    End Sub
    A+

  7. #7
    Membre à l'essai
    Homme Profil pro
    Technicien de tests machines spéciales
    Inscrit en
    Décembre 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien de tests machines spéciales
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2014
    Messages : 9
    Points : 10
    Points
    10
    Par défaut
    Génial ce code fait exactement ce que je voulais encore merci.

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

Discussions similaires

  1. [XL-2007] garder setfocus sur textbox si condition non remplie
    Par cathodique dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 28/12/2014, 21h29
  2. [AC-2010] Requête retournant une liste complète malgré condition non remplie
    Par xogene dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 07/11/2014, 10h24
  3. Do while - Condition non remplie
    Par malgach dans le forum Débuter avec Java
    Réponses: 5
    Dernier message: 07/10/2011, 14h09
  4. Ignorer image si condition non remplie
    Par Gunner4902 dans le forum Langage
    Réponses: 8
    Dernier message: 09/10/2008, 10h49
  5. afficher une fenetre affichant les conditions non remplies
    Par doogybreton dans le forum VBA Access
    Réponses: 6
    Dernier message: 23/01/2008, 00h03

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