FSO rechercher un fichier
Bonsoir, malgré plusieurs tentatives je ne comprend pas le fonctionnement de FSO pour rechercher un fichier par son nom dans un dossier et sous dossier. Le but et de récupérer le chemin complet de ce fichier pour l’attribuer a une variable . Merci d’avance de votre aide .
- Messages
- 4'094
- Excel
- 2021 FR 64 bits
- Inscrit
- 13/06/2016
- Emploi
- bénévole associations Goutte d'Or
Bonsoir,
ci-joint exemple de recherche de fichier par son nom avec pour résultat le chemin complet de ce fichier
Merci pour votre réponse. Je vais regarder votre exemple , merci pour votre aide.
Merci pour votre réponse. Je vais regarder votre exemple , merci pour votre aide.
Merci beaucoup pour ce fichier,cela correspond à ce que je souhaite faire . Mais c’est pour trouvé un fichier Word.Et je voudrais éviter les fenêtres, car une de mes macros attribue le nom du fichier à une variable fichier_chercher . Pour faire la recherche FSO . Merci pour votre aide
- Messages
- 4'094
- Excel
- 2021 FR 64 bits
- Inscrit
- 13/06/2016
- Emploi
- bénévole associations Goutte d'Or
Bonjour,
Il suffit de supprimer de l'InputBox et de la remplacer par un paramètre à fournir à la procédure
Bonjour merci pour votre aide . C’est bon je viens d’arriver à faire ce que je souhaite . Plus qu’à voir pour comment faire pour que le mail soit enregistré automatiquement avec ces paramètres :
et une catégorie particulière avec un suivi et rappel. Voici mon code si cela peut aider certaine personne :
option Explicit
Public nomfichier As String
Public typefichier As String
Public Recherche As String
Public pj As String
Public Sub Application_Reminder(ByVal Item As Object)
Dim objMsg As MailItem
Set objMsg = Application.CreateItem(olMailItem)
If Item.MessageClass <> "IPM.Appointment" Then 'Vérifie si il sagit d'un rapel dans le calendrier
Exit Sub
End If
If Item.Categories <> "MAILS AUTOMATIQUES" Then 'Vérifie si le rappel fait partie de la catégorie: MAILS AUTOMATIQUES
Exit Sub
End If
objMsg.Importance = olImportanceHigh
objMsg.To = Item.Location
objMsg.CC = "romain.@"
objMsg.Subject = Item.Subject
objMsg.Body = Item.Body
'demande AR
objMsg.OriginatorDeliveryReportRequested = True
'demande confirmation de lecture
objMsg.ReadReceiptRequested = True
Dim nom_fichier As String, nom_fichier_complet As String, répertoire As String
Dim Fso As Object, dossier_départ As Object
'// création objet FilesSystem
Set Fso = CreateObject("Scripting.FilesystemObject")
'// Choix du nom_fichier
nom_fichier = Item.Subject
'// Choix du répertoire de départ
répertoire = "C:\Users\....."
'// recherche des fichiers
Set dossier_départ = Fso.GetFolder(répertoire)
nom_fichier_complet = Empty
rech_fichier Fso, dossier_départ, nom_fichier, nom_fichier_complet
If nom_fichier_complet = Empty Then MsgBox "Aucune pièce jointe ne correspond a ce rappel !", vbOKOnly + vbCritical, "Problème de pièce-jointe" _
Else: MsgBox "Une pièce jointe correspond a ce rappel !Pensez à établir et envoyé le devis!! En cliquant sur OK vous allez géneré le mail,et un rappel pour le devis. ", vbOKOnly + vbInformation, "Une pièce-jointe existe pour ce rappel!"
objMsg.Attachments.Add pj
'MsgBox "Noubliez pas de faire le devis pour ce rappel!", vbOKOnly, vbCritical, "Rappel rédaction devis!"
objMsg.Categories = "DEVIS POUR CONTROLE PERIODIQUE"
objMsg.FlagRequest = "Assurer un suivi"
objMsg.TaskSubject = "DEVIS" + Item.Subject
objMsg.TaskStartDate = Now
objMsg.TaskDueDate = Now + 10
ogbjmsg.ReminderSet = True
objMsg.ReminderTime = Now + 1
objmsg.
objMsg.Display
'objMsg.Categories = "DEVIS POUR CONTROLE PERIODIQUE"
'objMsg.FlagRequest = "Assurer un suivi"
'objMsg.TaskSubject = "DEVIS" + Item.Subject
'objMsg.TaskStartDate = Now
'objMsg.TaskDueDate = Now + 10
'ogbjmsg.ReminderSet = True
'objMsg.ReminderTime = Now + 1
Set Fso = Nothing
Set objMsg = Nothing
End Sub
Sub rech_fichier(Fso As Object, dossier As Object, nom1 As String, nom2 As String)
Dim sous_dossier As Object, fichier As Object
Dim nom As String, extension_fichier As String
'// recherche fichiers
For Each fichier In dossier.Files
extension_fichier = Fso.GetExtensionName(fichier.Path)
nom = Replace(fichier.name, "." & extension_fichier, "") 'supprime l'extension du nom
If nom = nom1 Then
nom2 = fichier.Path: Exit For
End If
Next fichier
'// recherche sous-dossier
For Each sous_dossier In dossier.SubFolders
If nom2 <> Empty Then Exit For
rech_fichier Fso, sous_dossier, nom1, nom2
Next
pj = nom2
End Sub
merci encore à tt les membres du forum.
bonjour a tous.
malgré mes essais, je n'arrive pas a effectué les derniers paramètres a mon mail .
je souhaite enregistré une copie du mail envoyé dans un dossier sur la boite mail nommé "MAILS CONTROLE PERIODIQUE "
Et créer une tache en utilisant le mail avec un rappel automatique journalier et une catégorie spécifique "DEVIS CONTROLE PERIODIQUE" pour me rappelé de faire le devis .
merci d'avance des pistes que vous pourrez m'apporté ou des tutos en Français sur vba outlook pour arrivé a progressé merci d'avance.
bonne journée.