IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Vos contributions VB6 Discussion :

[Sources] (VB/VBA) Obtenir la taille de la BAL Outlook


Sujet :

Vos contributions VB6

  1. #1
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 128
    Points : 12 185
    Points
    12 185
    Billets dans le blog
    5
    Par défaut [Sources] (VB/VBA) Obtenir la taille de la BAL Outlook
    Bonjour,

    Voici un bout de code pour déterminer la taille de la boîte aux lettre Outlook :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
    Private Function GetMailBoxSize() As Long
    Dim oSubFolder                As Outlook.MAPIFolder
    Dim oOlkApp                   As Outlook.Application
    Dim oOlkNameSpace             As Outlook.Namespace
    Dim oOlkMailbox               As Outlook.Folder
    Dim oPersonalFolder           As Outlook.Folder
    Dim lngSize                   As Long
     
      On Error GoTo l_ErrGetMailBoxSize
     
      Set oOlkApp = CreateObject("Outlook.Application")
      Set oOlkNameSpace = oOlkApp.GetNamespace("MAPI")
      Set oOlkMailbox = oOlkNameSpace.GetDefaultFolder(olFolderInbox)
      Set oPersonalFolder = oOlkMailbox.Parent
     
      ''' Appel de la fonction recursive pour chaque dossier
      For Each oSubFolder In oPersonalFolder.Folders
        lngSize = lngSize + GetMailBoxFolderSize(oSubFolder)
      Next
      GetMailBoxSize = lngSize
      On Error GoTo 0
     
    l_ExGetMailBoxSize:
      Set oOlkApp = Nothing
      Set oOlkNameSpace = Nothing
      Set oOlkMailbox = Nothing
      Set oPersonalFolder = Nothing
      Exit Function
     
    l_ErrGetMailBoxSize:
      GetMailBoxSize = 0
      Resume l_ExGetMailBoxSize
     
    End Function
     
    Private Function GetMailBoxFolderSize( _
            ByVal TargetFolder As Outlook.MAPIFolder) As Long
     
    Dim oSubFolder                As Outlook.MAPIFolder
    Dim oMessage                  As Object
    Dim lngSize                   As Long
     
      ''' Calcule la taille de chaque message pour le dossier
      For Each oMessage In TargetFolder.Items
        lngSize = lngSize + oMessage.Size
      Next
      ''' Répète la procédure pour chaque sous-dossier ou celui ciblé
      For Each oSubFolder In TargetFolder.Folders
        lngSize = lngSize + GetMailBoxFolderSize(oSubFolder)
      Next
        GetMailBoxFolderSize = lngSize
    End Function
    Vous pouvez l'utiliser comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    Private Declare Function StrFormatByteSize Lib "shlwapi" Alias _
                            "StrFormatByteSizeA" (ByVal dw As Long, _
                                                  ByVal pszBuf As String, _
                                                  ByVal cchBuf As Long) As Long
     
    Public Sub Test()
    ''' Faire référence à Outlook XX.X Object Library
    Dim lngSize                   As Long
    Dim strBuffer                 As String
    Dim lngBufferSize             As Long
    Dim strFolderSize             As String
     
      strBuffer = Space$(32)
      lngBufferSize = Len(strBuffer)
      lngSize = GetMailBoxSize()
      If lngSize Then
        If StrFormatByteSize(lngSize, strBuffer, lngBufferSize) <> 0 Then
          strFolderSize = Left$(strBuffer, InStr(strBuffer, vbNullChar) - 1)
        End If
        MsgBox "La taille de votre BAL est de " & strFolderSize
      Else
        MsgBox "Impossible de définir la taille de votre BAL !", vbExclamation
      End If
    End Sub
    Argy

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    argy...

    je teste dés que je passe sur un Pc avec outlook

Discussions similaires

  1. select pour obtenir la taille de remplissage d'une bdd
    Par sqlakf76 dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 15/07/2005, 13h44
  2. [Debutant] Obtenir une taille de JFrame Optimale
    Par deboll_s dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 30/06/2005, 15h12
  3. Réponses: 8
    Dernier message: 13/06/2005, 13h48
  4. [DOS] Obtenir la taille du fichier
    Par Amélie Ladoque dans le forum Windows
    Réponses: 2
    Dernier message: 15/02/2005, 12h33
  5. [VBA]Obtenir les noms des polices disponibles
    Par xp dans le forum VBA Access
    Réponses: 2
    Dernier message: 04/03/2004, 15h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo