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 Outlook Discussion :

interaction avec un fichier Excel


Sujet :

VBA Outlook

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Mars 2009
    Messages : 100
    Points : 89
    Points
    89
    Par défaut interaction avec un fichier Excel
    Bonjour,
    J'ai commencé le VBA depuis 4 jours. Je dois faire une macro outlook qui puisse inter-agir avec un fichier Excel.
    Description : J'ai un fichier Excel modele que je duplique tous les jours avec la date du jour. => OK

    Dans ce fichier Excel j'ai comme colonne (A = expéditeur, B = sujet, C = piece_jointe, D = recu). Le fichier Excel répertorie donc tous les mails que je peux avoir dans ma boite mail. Ensuite je dois (je pense) récupérer les valeurs pour expediteur, sujet, piece_jointe et verifier dans a boite_mail, si le mail existe et si la PJ est dans le mail. Si c'est ok je dois changer la valeur de la colonne D(reçu) de la valeur "N" à "O".

    1ère question :
    Je n'arrive pas à lire les valeurs de mon fichier excel Voici ce que j'ai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    sub Test()
        Dim oApp As Excel.Application
        Dim workbookExcel As Excel.Workbook
        Dim sheetExcel As Excel.worksheet
     
        'instanciation des objets
        Set oApp = CreateObject("Excel.Application")
        oApp.Visible = True
        Set Excel = oApp.Workbooks.Open(Path & "D:\Documents and Settings\A770477\Mes documents\Macros\Despatching Message\BDD_mails_" & date_jour & ".xls")
    End sub
    J'ai déjà une erreur au niveau de la ligne Dim oApp As Excel.Application ("type défini par l'utilisateur non défini" => je suppose que j'ai oublié qlqch car sur plusieurs sujet du forum c'est comme celà qu'on appelle un fichier excel)

    2ème question :
    Pour récupérer les valeurs des cellules j'ai cru voir que c'était un appel du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    oApp.sheets("Feuil1").Range("A" & i).Value
    3ème question :
    J'ai pas trouvé comment modifier une valeur dans un fichier excel...

    NB : La lecture d'un fichier texte ne m'a posé aucun problème (j'ai utilisé le tutoriel de démarrage de VBA outlook que je conseille à tout débutant

  2. #2
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    Bonjour,

    Pour utiliser ton code tel quel tu dois ajouter une référence dans VBE à MICROSOFT EXCEL X.X ou changer ton dim

    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
    sub Test()
        Dim oApp As OBJECT
        Dim workbookExcel As OBJECT
        Dim sheetExcel As OBJECT
     
        'instanciation des objets
        Set oApp = CreateObject("Excel.Application")
        oApp.Visible = True
        Set workbookExcel = oApp.Workbooks.Open(Path & "D:\Documents and Settings\A770477\Mes documents\Macros\Despatching Message\BDD_mails_" & date_jour & ".xls")
    End sub
     
    ou
    'avec référence
    sub Test()
        Dim oApp As Excel.Application
        Dim workbookExcel As Excel.Workbook
        Dim sheetExcel As Excel.worksheet
     
        'instanciation des objets
        Set oApp = Excel.Application
        oApp.Visible = True
         Set workbookExcel = oApp.Workbooks.Open(Path & "D:\Documents and Settings\A770477\Mes documents\Macros\Despatching Message\BDD_mails_" & date_jour & ".xls")
    End sub
    2ème question = OK
    3éme question = c'est comme dans excel sauf qu'il faut toujours indiquer oApp avant

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Mars 2009
    Messages : 100
    Points : 89
    Points
    89
    Par défaut
    Merci pour cette rapide réponse Oliv'

    Pour information j'ai testé les deux méthodes :

    La première fonctionne

    La deuxième me retourne la même erreur que précédement

    Je peux m'y remettre

  4. #4
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par Ptikir Voir le message
    Merci pour cette rapide réponse Oliv'
    La deuxième me retourne la même erreur que précédement
    Parce que tu n'as pas ajouté la référence !!!
    L'avantage c'est la saisie assistée et l'aide dispo

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Mars 2009
    Messages : 100
    Points : 89
    Points
    89
    Par défaut
    J'ai encore un ptit problème c'est pour boucler au niveau de mon fichier excel :
    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
     
    Sub Recup_data()
     
        'Déclaration des variables pour la création du fichier source
        Dim date_jour As String
        Dim cheminFichierModele As String
        Dim cheminFichierQuotidien As String
     
     
        'instanciation de la variable
        date_jour = Year(Now) & "-" & Month(Now) & "-" & Day(Now)
        cheminFichierModele = "C:\test.xls"
        cheminFichierQuotidien = "C:\test_" & date_jour & ".xls"
     
        'Création du fichier bdd_mails_YYYY-MM-DD.xls si il n'existe pas
        If Dir(cheminFichierQuotidien) = "" Then
                'création du fichier à partir du fichier modèle
                FileCopy cheminFichierModele, cheminFichierQuotidien
        End If
     
        'Déclaration des variables
        Dim oApp As Object
        Dim workbookExcel As Object
        Dim sheetExcel As Object
     
        'instanciation des objets
        Set oApp = CreateObject("Excel.Application")
        oApp.Visible = False 'mettre la valeur a true
        Set workbookExcel = oApp.Workbooks.Open(Path & "C:\test_" & date_jour & ".xls")
        Set sheetExcel = workbookExcel.sheets("Feuil1") 'instanciation de la feuille
     
        'Lecture du fichier excel
         Do While sheetExcel.Range("A" & i).Value <> ""  
            If i > 1 Then  'permet de ne pas prendre en compte la premièreligne correspondant au om descolonnes
                'Traitement
            End If
            i = i + 1
        Loop
        Close #n
     
    End Sub
    J'ai une erreur à ce niveau ("erreur définie par l'application ou par l'objet"):
    Do While sheetExcel.Range("A" & i).Value <> ""

    Je voulais utiliser la fonction EOF mais je pense pas que celà fonctionne avec un fichier excel...

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Mars 2009
    Messages : 100
    Points : 89
    Points
    89
    Par défaut
    ERRATUM,

    J'avais oublié d'initialiser la variable i

  7. #7
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    Effectivement !!

    Par contre mieux vaut utiliser la méthode ci-dessous ca évite que si tu as une cellule vide parmi ta colonne cela ne stop ton code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
       For Each truc In Range(Cells(1, 1), Cells(65536, 1).End(xlUp))
     
     
       Next truc
    N'oubli pas à la fin d'enregistrer le fichier excel.

    c'est quoi ton "Close #n" ?

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Mars 2009
    Messages : 100
    Points : 89
    Points
    89
    Par défaut
    Salut oliv,

    En fait c'est parce que j'utilise un fichier de log, close #n ferme mon fichier de log.

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

Discussions similaires

  1. Interaction avec un fichier Excel
    Par Miyukaze dans le forum Langage
    Réponses: 8
    Dernier message: 20/08/2009, 10h43
  2. update d'une colone d'une table avec un fichier excel
    Par john_wili dans le forum Import/Export
    Réponses: 3
    Dernier message: 05/03/2009, 13h47
  3. [MySQL] Comment alimenter MYSQL avec des fichiers Excel en mode batch
    Par mabret dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 25/05/2008, 19h20
  4. Traitement avec un fichier Excel
    Par Seth77 dans le forum C#
    Réponses: 0
    Dernier message: 24/08/2007, 22h09
  5. [9i][SQLPlus] spool en Interaction avec un fichier .bat
    Par Konrad Florczak dans le forum Sql*Plus
    Réponses: 34
    Dernier message: 07/09/2006, 16h08

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