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.
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.