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 :

Export Excel - Souci avec Range et Cells


Sujet :

VBA Access

  1. #1
    Membre confirmé Avatar de timoth
    Homme Profil pro
    Responsable Outils Digitaux
    Inscrit en
    Octobre 2005
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Responsable Outils Digitaux

    Informations forums :
    Inscription : Octobre 2005
    Messages : 479
    Points : 474
    Points
    474
    Par défaut Export Excel - Souci avec Range et Cells
    Bonjour !

    J'ai un petit souci assez bizarre.

    J'exporte des données sur Excel via la méthode automation (voir tuto ici)

    Voici mon 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
        Dim xlApp As Excel.Application
        Dim xlsheet As Excel.Worksheet
        Dim xlBook As Excel.Workbook
        Set xlApp = CreateObject("Excel.Application")
        Set xlBook = xlApp.Workbooks.Add
        Set xlsheet = xlBook.Worksheets.Add
    xlsheet.Name = "test"
     
        Dim rst As DAO.Recordset
        Dim db As DAO.Database
        Set db = CurrentDb
        Set rst = db.OpenRecordset("Q_test")
     
    xlsheet.Cells(1, 1) = rst.Fields(1)
    xlsheet.Range(Cells(1, 1), Cells(1, 3)).Merge
     
    xlApp.Visible = True
    Ce code marche, mais une seule fois. La page apparaît avec le résultat attendu, je ferme Excel et en réexutant le code, j'ai l'erreur 462:
    The remote server machine does not exist or is unavailable
    qui pointe sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xlsheet.Range(Cells(1, 1), Cells(1, 3)).Merge
    le problème n'est pas au niveau du merge, car l'erreur apparaît aussi avec SELECT. En revanche, aucun souci si j'enlève la ligne de code. Un simple export de données fonctionne très bien.

    Je suis dépité

    merci...

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    427
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 427
    Points : 520
    Points
    520
    Par défaut
    Plusieurs réponses me viennent à l'esprit :
    si tu fermes excel et que tu ne redéclare pas tes objets, tu as effectivement fermé le serveur...
    sinon tu peux aussi avoir le souci si tu ne fermes pas ton instance d'excel et que tu recommence la manip à zéro. Tu peux vérifier en regardant dans ton gestionnaire de tâche si excel existe encore ou pas.

  3. #3
    Membre confirmé Avatar de timoth
    Homme Profil pro
    Responsable Outils Digitaux
    Inscrit en
    Octobre 2005
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Responsable Outils Digitaux

    Informations forums :
    Inscription : Octobre 2005
    Messages : 479
    Points : 474
    Points
    474
    Par défaut
    Salut Oleff,

    Merci pour ta réponse et désolé de ne pas être revenu vers toi plus tôt.

    si tu fermes excel et que tu ne redéclare pas tes objets, tu as effectivement fermé le serveur...
    Je ferme bien Excel, mais vu que j'applique la même procédure, je redéclare à nouveau mes objets (a moins que qqc m'échappe):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        Dim xlApp As Excel.Application
        Dim xlsheet As Excel.Worksheet
        Dim xlBook As Excel.Workbook
        Set xlApp = CreateObject("Excel.Application")
        Set xlBook = xlApp.Workbooks.Add
        Set xlsheet = xlBook.Worksheets.Add
    sinon tu peux aussi avoir le souci si tu ne fermes pas ton instance d'excel et que tu recommence la manip à zéro. Tu peux vérifier en regardant dans ton gestionnaire de tâche si excel existe encore ou pas.
    En effet, j'avais oublié de préciser dans mon post précédent. Systématiquement, je vais fermer le processus Excel manuellement via mon gestionnaire de tâches mais rien n'y fait.
    C'est pour cette raison que je suis un peu destabilisé.

    C'est d'autant plus énervant que lorsque j'évite la méthode Cells() en écrivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Xlsheet.Range("B2:C2").Merge
    Ca marche très bien. En revanche, ça ne me convient pas du tout de travailler comme ça!
    peut-être que les gars du forum Excel auront leur idée sur la question...

  4. #4
    Membre confirmé Avatar de timoth
    Homme Profil pro
    Responsable Outils Digitaux
    Inscrit en
    Octobre 2005
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Responsable Outils Digitaux

    Informations forums :
    Inscription : Octobre 2005
    Messages : 479
    Points : 474
    Points
    474
    Par défaut
    OK c'est bon...

    En bidouillant, on y arrive!

    Il faut écrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xlsheet.Range(xlsheet.Cells(1, 1), xlsheet.Cells(1, 3)).Merge
    Voilà. En esperant que ça serve à d'autres !

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

Discussions similaires

  1. Export Excel/CSV avec IE7
    Par lesafir dans le forum Excel
    Réponses: 1
    Dernier message: 16/11/2010, 10h13
  2. VBA Excel Loop sur Range de Cells - Copie Ficher
    Par bebert00 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 05/09/2010, 18h11
  3. [XL-2003] Plage avec range et cells
    Par triaguae dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 01/09/2010, 08h01
  4. Macro VBA Excel, Pb avec Range
    Par GlamIS dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 10/08/2007, 05h19
  5. Réponses: 3
    Dernier message: 04/12/2006, 13h41

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