Commondialog et fichierobjet

Description

C'est rien de révolutionnaire, mais seulement un petit exemple que je me suis fait à partir de l'aide de VB pour ouvrir des fichiers avec un common dialog et de le transformer en objet pour pouvoir obtenir ses informations ou le copier etc.
Ensuite je me suis dit que je pourrais faire ma part un peu sur vbfrance.com donc j'ai ajouté les commentaires et j'envoie maintenant mon premier code.

Le code est là mais il y a aussi le zip avec la feuille et le control.

Source / Exemple :


'Variable Objet pour le fichier
'Fichier est le fichier en tant qu'objet défini
'par les Set et elle est global pour pourvoir lui référer
'dans tout le programme
Private Fichier As Variant

'CommonDialog flags
Const cdlOFNAllowMultiselect = &H200
Const cdlOFNCreatePrompt = &H2000
Const cdlOFNExplorer = &H80000
Const cdlOFNExtensionDifferent = &H400
Const cdlOFNFileMustExist = &H1000
Const cdlOFNHelpButton = &H10
Const cdlOFNHideReadOnly = &H4
Const cdlOFNLongNames = &H200000
Const cdlOFNNoChangeDir = &H8
Const cdlOFNNoDereferenceLinks = &H100000
Const cdlOFNNoLongNames = &H40000
Const cdlOFNNoReadOnlyReturn = &H8000
Const cdlOFNNoValidate = &H100
Const cdlOFNOverwritePrompt = &H2
Const cdlOFNPathMustExist = &H800
Const cdlOFNReadOnly = &H1
Const cdlOFNShareAware = &H4000

Private Sub Command1_Click()

'Génère un code d'erreur si le bouton annuler est cliquer
Dialog.CancelError = True

'S'il y a une erreur, on va a la ligne Annuler:
On Error GoTo Annuler

'Fait appel a l'initialisation de la boîte
'pour l'ouverture
Call OpenDialog

'On prend le FileName qui contient le chemin d'accès complet et le nom
'pour le donner à la sub AfficheInfo()
AfficheInfo (Dialog.FileName)

'Fait appel à l'initialisation de la boîte
'pour la sauvegarde
Call SaveDialog

'On copie le fichier à sont nouvelle emplacement
'sans détruire le fichier original
'Dialog.FileName c'est pour la destination et le nouveau
'nom du fichier s'il a changer dans le DialogBox
'True est pour overwrite
'Il y a aussi move, delete etc.
Fichier.Copy Dialog.FileName, True

'S'il y a eu une erreur nous sommes sauté directement ici
'donc à la fin du module sans avoir fait AfficheInfo()
Annuler:

End Sub
Sub AfficheInfo(SpecFichier As String)
    Dim MsgInfo As String
    
    'fs est une variable objet pointeur mais je ne
    'sais pas a quoi elle sert vraiment
    Dim fs As Variant
    
    'vbCrLF est une facon de changer de ligne dans un msgbox
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set Fichier = fs.GetFile(SpecFichier)
    MsgInfo = Fichier.Name & " sur le disque " & UCase(Fichier.Drive) & vbCrLf
    MsgInfo = MsgInfo & "Créé le : " & Fichier.DateCreated & vbCrLf
    MsgInfo = MsgInfo & "Dernier accès le : " & Fichier.DateLastAccessed & vbCrLf
    MsgInfo = MsgInfo & "Dernière modification le : " & Fichier.DateLastModified & vbCrLf
    MsgInfo = MsgInfo & "Type : " & Fichier.Type & vbCrLf
    MsgInfo = MsgInfo & "Taille : " & Fichier.Size & vbCrLf
    MsgInfo = MsgInfo & "Dossier parent : " & Fichier.parentfolder & vbCrLf
    MsgInfo = MsgInfo & "Path : " & Fichier.Path & vbCrLf
    MsgInfo = MsgInfo & "ShortName : " & Fichier.ShortName & vbCrLf
    MsgInfo = MsgInfo & "ShortPath : " & Fichier.shortpath & vbCrLf
    'MsgInfo c'est le message qu'on vient de batir
    'vbApplicationModal veut dire que le programme est
    'arrêter totalement tant que le message box n'est pas fermer
    'et le Infos sur le fichier c'est juste le titre dans
    'la barre bleu
    MsgBox MsgInfo, vbApplicationModal, "Infos sur le fichier"
End Sub

Private Sub OpenDialog()
'Initialisation du CommonDialog pour ouverture
'Titre dans la barre bleu
Dialog.DialogTitle = "Choisissez un fichier..."

'Filtre: les choix qui aparraîsse dans le dropdown menu a coté de Annuler
Dialog.Filter = "Application|*.exe|Image|*.gif;*.jpg;*.bmp|Tous|*.*"

'Ce sont des option, si on en met trop, il manque de mémoire
'cdlOFNFileMustExist dit que le fichier doit existé avant d'être ouvert
'et cdlOFNHideReadOnly cache une option que je crois inutile
Dialog.Flags = cdlOFNFileMustExist + cdlOFNHideReadOnly

'Affichage de la boite
Dialog.ShowOpen

End Sub

Private Sub SaveDialog()
'Initialisation du CommonDialog pour sauvegarde
'Titre dans la barre bleu
Dialog.DialogTitle = "Choisissez un emplacement pour copier le fichier"

'Filtre: les choix qui aparraîsse dans le dropdown menu a coté de Annuler
Dialog.Filter = "Tous|*.*"

'Ce sont des option, si on en met trop, il manque de mémoire
'cdlOFNPathMustExist dit que le chemin doit exister avant
'de pouvoir copier là mais cette option est déjà par défaut.
Dialog.Flags = cdlOFNPathMustExist + cdlOFNHideReadOnly + cdlOFNOverwritePrompt

'Affichage de la boite
Dialog.ShowSave

End Sub

Conclusion :


Vous pouvez me laissez vos commentaires.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.