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

VBA Access Discussion :

Tester l'existence d'une variable dans un formulaire Outlook personnalisé [AC-2013]


Sujet :

VBA Access

  1. #1
    Membre averti
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Septembre 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Bâtiment

    Informations forums :
    Inscription : Septembre 2012
    Messages : 13
    Par défaut Tester l'existence d'une variable dans un formulaire Outlook personnalisé
    Bonjour,
    Je remplis une table avec les valeurs des variables d'un formulaire Outlook personnalisé à partir des courriels reçus dans une boîte courriel avec une fonction écrite en VBA.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      Nom=item.UserProperties.Find("stNom")
        DD=item.UserProperties.Find("sDDN")
    Il arrive qu'un courriel se trouve dans la boîte et qui ne contient pas les variables stNom et stDDN. Mon code m'affiche le message d'erreur: "Variable objet ou variable de bloc WITH non défenie"

    J'aimerai faire un test, si les variables (stNom et/ou stDDN) existent j'extrais leurs valeurs sinon je passe à l'item suivant.

    Merci!

  2. #2
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 515
    Billets dans le blog
    67
    Par défaut
    Bonsoir,

    Il faudrait le code complet.

    Notamment, à quelle collection ou quel objet est rattaché item ?

    Cdlt,
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  3. #3
    Membre averti
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Septembre 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Bâtiment

    Informations forums :
    Inscription : Septembre 2012
    Messages : 13
    Par défaut
    Voici le code:

    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
     Dim MonApp As Outlook.Application
     Dim MonDossier As Outlook.Folder, MonDossierTRT As Outlook.Folder
     Dim ns As Outlook.NameSpace
     Dim item As Outlook.MailItem
     
     
     Dim st_NM_BOITE As String, st_S_DOS_1 As String
     Dim stAgent As String, stDDN as string
     
     Set MonApp = Outlook.Application
     Set ns = MonApp.GetNamespace("MAPI")
     
     
       st_NM_BOITE ="NM_BOITE"  ' Nom de la boîte 
       st_S_DOS_1 = "S_DOS_1"     '  Le sous-dossier ou les courriel sont classés
     
     
       Set MonDossier = ns.Folders(st_NM_BOITE).Folders(st_S_DOS_1)
     
        ' Debut traitement des courriels
     
       For Each item In MonDossier.Items  
             stAgent = item.UserProperties.Find("Nom")
             stDDN = item.UserProperties.Find(DDN")
        Next item

  4. #4
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 515
    Billets dans le blog
    67
    Par défaut
    Merci,

    Je pense à quelque chose 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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     Dim MonApp As Outlook.Application
     Dim MonDossier As Outlook.Folder, MonDossierTRT As Outlook.Folder
     Dim ns As Outlook.NameSpace
     Dim item As Outlook.MailItem
     
     
     Dim st_NM_BOITE As String, st_S_DOS_1 As String
     Dim stAgent As String, stDDN as string
    Dim objProperty As Outlook.UserProperty
     
     Set MonApp = Outlook.Application
     Set ns = MonApp.GetNamespace("MAPI")
     
     
       st_NM_BOITE ="NM_BOITE"  ' Nom de la boîte 
       st_S_DOS_1 = "S_DOS_1"     '  Le sous-dossier ou les courriel sont classés
     
     
       Set MonDossier = ns.Folders(st_NM_BOITE).Folders(st_S_DOS_1)
     
        ' Debut traitement des courriels
     
       For Each item In MonDossier.Items  
     
            Set objProperty = item.UserProperties.Find("Nom")
     
            If TypeName(objProperty) <> "Nothing" Then
                stAgent =objProperty.value
                debug.print stAgent
            end if
     
            Set objProperty = item.UserProperties.Find("DDN") 
     
            If TypeName(objProperty) <> "Nothing" Then
                stDDN =  objProperty.value
                debug.print stDDN
            end if 
     
        Next item
    Il faut créer l'objet UserProperty, puis tester s'il est à nothing, et si ce n'est pas le cas récupérer la valeur de la propriété avec value.

    Cdlt,
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  5. #5
    Membre averti
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Septembre 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Bâtiment

    Informations forums :
    Inscription : Septembre 2012
    Messages : 13
    Par défaut
    Merci USER

    J'ai changé: objContact. par item. , est ça fonctionne bien!

    Encore un gros merci.

  6. #6
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 515
    Billets dans le blog
    67
    Par défaut
    Citation Envoyé par hadrimo Voir le message
    Merci USER

    J'ai changé: objContact. par item. , est ça fonctionne bien!

    Encore un gros merci.
    Oui c'était une coquille

    Cdlt,
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [débutant]Tester l'existance d'une variable
    Par Death83 dans le forum Langage
    Réponses: 7
    Dernier message: 19/08/2006, 15h37
  2. Tester l'existence d'une colonne dans une table
    Par caps_corp dans le forum Access
    Réponses: 4
    Dernier message: 05/06/2006, 17h31
  3. Tester l'existence d'une variable
    Par rukiaa dans le forum Langage
    Réponses: 6
    Dernier message: 14/05/2006, 23h11
  4. Tester l'existence d'une variable?
    Par Death83 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 10/03/2006, 21h53
  5. Réponses: 3
    Dernier message: 19/08/2005, 14h24

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