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

Macros et VBA Excel Discussion :

Problème d'actualisation d'une feuille liée à une requête access [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 253
    Points : 90
    Points
    90
    Par défaut Problème d'actualisation d'une feuille liée à une requête access
    Bonjour,

    Ce problème a peut être déja été posée, si c'est le cas je vous serais reconnaissant de bien vouloir m'indiquer le(s) lien(s) de cette discusion.


    Je dispose d'une part d'un fichier access (Essai) dans laquelle j'ai une table nommée "Matable" et une requête nommée "Marequete" et dautre part j'ai
    un classeur prenant en charge les macros (fichier xlsm) nommée "ficheliee".
    Dans "ficheliee" j'ai la feuille "Fiche" qui est liée à la requête "Marequête" c'est-à-dire que "Fiche" affiche les résultats de "Marequête".Lorsqu'on modifie
    "Marequete", à l'ouverture de "ficheliee" ces modifications sont prises en compte dans la feuille "Fiche".



    J'ai ensuite saisi une macro qui envoie "ficheliee" par mail via des lignes de commandes (fichier .bat) l'envoi s'effectue sans problème mais
    le souci c'est que le fichier envoyé ne contient pas les données actualisées de la feuille "Fiche" pourtant ma macro contient l'insruction
    Activeworbook.save .


    Pour être plus expilicite, voici ce qui se passe:

    j'éxcute "Marequete" j'ai ma liste de 10 joueurs, j'enregistre et je ferme access. J'ouvre ensuite "ficheliee" , j'ai la même liste de 10 joueurs dans la feuille
    "Fiche" j'enregistre et je ferme .
    J'exécute à nouveau "Marequete" en affichant que les joueurs dont le nom commence par R ==> j'ai donc 3 joueurs: Ribery Rooney et Ronaldo (voir PJ) j'enregistre je ferme access
    lorsque je lance la ligne de commande qui envoie le fichier "ficheliee" mes destinataires reçoivent un fichier qui contient tous les joueurs au lieu des 3 précités.
    La question est donc comment faire en sorte que le fichier envoyée soit actualisée?



    Pour plus de détails je vous joints mes deux fichiers .


    Merci pour votre aide.
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Bonjour,

    Tu pourrais faire un copier coller valeurs + Formats dans un nouveau classeur.
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 253
    Points : 90
    Points
    90
    Par défaut
    Salut Daniel.C, merci pour l'attention que tu portes à mon problème;

    aurais-tu une syntaxe pour m'éclaircir ton idée ?

    Merci

    A+

  4. #4
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Bonjour,

    La macro suivante crée un classeur nommé "fichier.xlsx" dans le dossier "c:\temp". Le classeur précédent est supprimé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub CommandButton1_Click()
        Dim Ligne As Long
        Workbooks.Add 1
        Ligne = Cells(Rows.Count, 1).End(xlUp).Row
        ThisWorkbook.Sheets("Fiche").Range("A7", Cells(Ligne, 5)).Copy
        ActiveSheet.[A7].PasteSpecial xlPasteValues
        ActiveSheet.[A7].PasteSpecial xlPasteFormats
        On Error Resume Next
        Kill "C:\temp\fichier.xlsx"
        On Error GoTo 0
        ActiveWorkbook.SaveAs "C:\temp\fichier", xlOpenXMLWorkbook
        MsgBox "fichier pour envoi ""fichier.xlsx"" créé dan le dossier ""c:\temp"""
    End Sub
    Fichiers attachés Fichiers attachés
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 253
    Points : 90
    Points
    90
    Par défaut
    Salut Daniel.C,

    Le bouton de commande marche merci, mais il un petit souci j'ai mis une procédure Sub (sub passage) à la place du bouton pour ensuite l'éxécuter depuis ma ligne de commande:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "C:\Program Files\Microsoft Office\Office12\EXCEL.exe" /cmd/passage "D:\PJ\ficheliee.xlsm"
    Mais là j'obtien une erreur :'Erreur 1004' impossible d'éxécuter la macro passage. Il est possible qu'elle ne soit pas disponible dans ce classeur ou que toute les macros soient désactivées. alors que mon dossier est un espace approuvé.


    et le debogage me renvoit sur cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      Application.Run Mid(monparam(1), 2, Len(monparam(1)) - 3)
    de ma procédure Workbook_open (voir Thisworbook) avec le message :

    "Impossible d'éxécuter le code en mode arrêt"


    Je suis donc à nouveau coincé car le but final est d'automiser l'envoi par mail la copie créée.

    Je continue donc à cherhcer

    En tout cas merci pour ton aide
    Fichiers attachés Fichiers attachés

  6. #6
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Quel est ton logiciel de messagerie ? Je ne comprends par le pourquoi de tes lignes de commande.
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 253
    Points : 90
    Points
    90
    Par défaut
    La tâche sera devra être éxécutée par un serveur de traitement à des heures tardives (heure où je suis absent ) d'où l'intérêt des lignes de commandes.

  8. #8
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    J'avoue ne pas être un spécialiste des lignes de commande. Deux pistes peut-être :
    1. le gestionnaire de tâches Windows
    2. Si ton classeur est ouvert, l'utilisation de "OnTime" pour déclencher la macro.
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 253
    Points : 90
    Points
    90
    Par défaut
    Salut Daniel.C,


    Un ami m'a conseiller de décocher l'option "Activer l'actualisation en arrière plan " dans mon fichier xlsm en de raffraichir les données avec

    Thisworkbook.RefreshAll et enregistrer le classeur juste après .

    Donc en gros ma macro ressemble à quelque chose du genre:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub Mamacro()
    Thisworkbook.RefreshAll
    Activeworkbook.save
    Call EnvoieMail
    Application.Quit
    End sub

    ma ligne de commande exécute ensuite la macro Mamacro ,et ça marche .

    Merci en tout cas pour ton aide .

    A bientôt.

  10. #10
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    OK, Merci pour le retour.
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

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

Discussions similaires

  1. [Débutant] TextBox liée à une colonne d'une feuille Excel
    Par Fyv8000 dans le forum VB.NET
    Réponses: 3
    Dernier message: 27/09/2012, 09h46
  2. [XL-2002] Macro de comparaison d'une cellule d'une feuille avec une cellule d'une autre feuille.
    Par steelydan dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/09/2010, 12h59
  3. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  4. Réponses: 7
    Dernier message: 07/09/2006, 15h17
  5. VBA : copier une image d'une feuille excel à une autre
    Par Equus dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 08/12/2005, 14h01

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