Déplacer mails dans un sous dossier de l'archive Outlook
Bonjour,
Je me permets de vous contacter car je souhaite créer une macro permettant de déplacer un mail de ma boite de réception vers un sous dossier du dossier "Archives" Outlook.
Voici plus d'informations :
Actuellement, mon espace de stockage pour ma boite mail équivaut à 1Go donc je rempli ma boite mail en à peine 1 mois.
J'ai donc opté pour la solution suivante : Dès que j'ai lu un mail, je le déplace dans le dossier "03-Affaires" de mon "Archives"
Ce dossier grandit ..... et mon espace de stockage de ma boite mail n'est pas impacté.
Quelqu'un sait si cela est faisable ?
Bonjour Termonator,
Pourquoi ne pas utiliser tout simplement une règle ou une action rapide sur Outlook
A+
Bonjour,
J'avais pensé a cette idée mais je ne maitrise pas du tout les règles ou actions rapides et je ne sais pas si cela peut répondre exactement à mon besoin.
Voici mon besoin complet :
Comme évoqué dans mon premier post, ma capacité de stockage de mail est limité
Lorsque je reçois un mail dans ma boite de réception, une fois que je l'ai lu, j'active une macro qui affiche une pop-up sur laquelle je sélectionne le nom du client.
Après avoir saisi le nom client :
- je l'archive sur notre serveur entreprise (via une macro lancée par un bouton sur la pop-up)
- je le déplace dans le sous dossier lié à mon client (Ex: Excel-Pratique) le sous dossier "03-Affaires" (via une macro lancée par un bouton sur la pop-up)
Mais le problème reste ma capacité de stockage.
Donc j'ai envisagé de reproduire mon arborescence des mails (comme montré ci-dessus) dans "Archives"
Le problème est que je ne connais pas comment cibler le dossier "Archives" en VBA
Voici mon code pour déplacer mes mails dans l'arborescence actuelle:
Je souhaite connaitre la variable à utiliser pour remplacer "olFolderInbox' dans cette ligne de commande:
'Définition du dossier de début de la recherche
Set olResearchFolder = olNameSpace.GetDefaultFolder(olFolderInbox).Parent.Folders("03-Affaires")
Cdt,
El Termonator
BrunoM45,
Merci pour cette réponse mais en utilisant votre méthode, je devrai donc créer une action rapide par client ?
Cdt,
EL Termonator
Re,
Oui, pas plus long que de saisir le nom a chaque fois
1 fois fait, vous n'avez plus à le refaire
Re,
La tâche est légèrement plus longue car à terme, je ne saisirai plus le nom du client mais je récupérerai le nom client dans l'objet du mail
De plus, j'ai plus de 50 clients donc cela veut dire 50 boutons...pas très ergonomique =)
J'ai potentiellement trouvé une solution en vba...
Je la test et je la mettrai à dispo si elle fonctionne.
En tout cas, merci pour le temps passé
Cdt,
El Termonator
Re,
Alors déposez ici votre code entre balises avec le bouton </>
Vous verrez si quelqu'un veut vous répondre
Bonne chance
2 macros que j'utilise (commentaire en néerlandais)
1. créeer une liste de tous les "folders"
Sub Outlook_MappenStructuur()
'*************************************************************************************
'Geeft een overzicht van de mappenstructuur van Outlook op deze computer
'*************************************************************************************
For Each fld In CreateObject("Outlook.Application").GetNamespace("MAPI").Folders
c01 = c01 & vbCr & vbCr & fld.Name & "|" & fld.Folders.Count & "|" & fld.Items.Count
For Each fld1 In fld.Folders
c01 = c01 & vbCr & "|" & fld1.Name & "|" & fld1.Folders.Count & "|" & fld1.Items.Count
For Each fld2 In fld1.Folders
c01 = c01 & vbCr & "||" & fld2.Name & "|" & fld2.Folders.Count & "|" & fld2.Items.Count
For Each fld3 In fld2.Folders
c01 = c01 & vbCr & "|||" & fld3.Name & "|" & fld3.Folders.Count & "|" & fld3.Items.Count
Next
Next
Next
Next
With Sheets("Outlook_mappen").Cells(1)
.CurrentRegion.ClearContents
.Resize(UBound(Split(c01, vbCr)) - 1) = Application.Transpose(Split(Mid(c01, 3), vbCr))
.EntireColumn.TextToColumns , 1, -4142, , False, False, False, False, True, "|"
End With
End Sub2. déplacer des emails (avec un suject) vers un autre folder
Sub Outlook_Uitgaande_FactuurMails_Verplaatsen()
'*************************************************************************************************
'VERPLAATSEN MAILS VOOR UITGAANDE FACTUREN VAN DE FOLDER VERZONDEN ITEMS NAAR DE SUBFOLDER UITGAANDE FACTUREN
'*************************************************************************************************
Dim Map_Verzonden, map_Uitgaande, ptr As Integer
Err.Clear
On Error Resume Next
c00 = "facturatie CSE" 'al die facturen dit als "deel" van het onderwerp hebben
Set Map_Verzonden = CreateObject("Outlook.Application").GetNamespace("MAPI").Folders("Bartstrubbe@outlook.com").Folders("Verzonden items")
Set map_Uitgaande = Map_Verzonden.Folders("Uitgaande facturen") '.Folders("Uitgaande facturen")
With Map_Verzonden
Set mails = .Items
Do
.Items.Find("[Subject]='" & c00 & "'").Move map_Uitgaande
If Err.Number = 0 Then ptr = ptr + 1 'geen fout, dan heb je weer 1 verplaatst
Loop While Err.Number = 0
End With
MsgBox ptr & " emails verplaatst van ""verzonden"" naar ""uitgaande facturen"""
End Sub