2011-11-19 1 views
0

Je veux ouvrir une boîte de dialogue où l'utilisateur peut:Comment définir .InitialView et voir les fichiers lors de l'utilisation de FileDialogFolderPicker?

  • sélectionner un dossier
  • entrées de tri par ordre alphabétique
  • voir les fichiers ainsi que des dossiers

J'essaie d'utiliser l'application de VBA .FileDialog pour accomplir ceci, le code actuel comme suit:

Sub makeFileDialog() 

Dim dialog As FileDialog 
Dim result As String 


Set dialog = Application.FileDialog(msoFileDialogFolderPicker) 

With dialog 
    .InitialFileName = "c:\" 
    .InitialView = msoFileDialogViewDetails 
    If dialog.Show = -1 Then 
     result = .SelectedItems.Item(1) 
    Else 
     result = "" 
    End If 
End With 

debug.print result 

End Sub 

Cela me permet de sélectionner un dossier, mais le .InitialView n'est pas correctement défini - le bouton des vues est grisé et la liste des dossiers n'est pas divisée en colonnes pour le tri. Je pense que peut-être .InitialView ne peut pas être réglé avec msoFileDialogFolderPicker. De plus, aucun nom de fichier n'apparaît.

J'ai essayé de changer le paramètre FileDialog en msoFileDialogFilePicker, ce qui m'a permis d'utiliser les vues et les fichiers affichés, mais avec cela je ne peux pas sélectionner et retourner un dossier.

J'ai vu une solution en ligne qui utilise le CreateObject("Shell.Application"), mais la boîte de dialogue créée par le shell n'est pas très flexible et n'offre pas beaucoup d'informations sur chaque fichier.

Des idées?

Répondre

1

Réponse courte: Non. Il n'est pas possible de permettre à un utilisateur de sélectionner un dossier ou un fichier. Je pense que la plupart seraient d'accord que c'est une bonne chose.

Vous avez raison - utilisez msoFileDialogFilePicker pour afficher tous les dossiers et fichiers. Vous pouvez, si vous le désirez, utiliser simplement le classeur, et analyser le nom du fichier pour obtenir le chemin du dossier si vous en avez vraiment besoin.

Questions connexes