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 :

image

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)
image

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:

image

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

Re,

Créer une action rapide est ultra simple

image

je n'irai pas dans votre sens à vouloir utiliser absolument VBA

Bonne chance

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 Sub

2. 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
Rechercher des sujets similaires à "deplacer mails dossier archive outlook"