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

[VBA word et excel] problème de mémoire ou de laison


Sujet :

VBA Word

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 124
    Points : 80
    Points
    80
    Par défaut [VBA word et excel] problème de mémoire ou de laison
    Bonsoir ...

    Voici ce que fait mon prog une macro word appel un fichier excel et le remplit
    puis le ferme .(word pilote excel)

    Le prog fonctionne jusqu'à un certains point .En bref ça ne tient pas la route face à une utilisation intensive du programme .On va dire au bout du 10 ème appel du fichier excel par word , mon curseur se transforme en sablier .Pourtant les 9 premiers appels se sont correctement executés et le fichier excel fut rempli correctement …problème de liaison , de mémoire ? !!!

    Quand ça à planter ,je dois rebooter complétement et je constate aussi que le fichier excel se met en « lecture seule »

    Le code n’est pas foncièrement faux mais quelque chose manque ou est mal codé .Besoins de conseil , d'idées et de code "propre" ...
    Merci .

    Voici la userform sur laquelle mon curseur se transforme parfois en sablier
    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
    Private Sub CommandButton1_Click()
     
     
    If TextBox1.Text <> "" Then
     
    NewMacros.wsExcel.Cells(NewMacros.n, 10) = TextBox1.Text
    End If
     
    If TextBox2.Text <> "" Then
    NewMacros.wsExcel.Cells(NewMacros.n, 11) = TextBox2.Text
    End If
     
    If TextBox3.Text <> "" Then
    NewMacros.wsExcel.Cells(NewMacros.n, 12) = TextBox3.Text
    End If
     
    If TextBox4.Text <> "" Then
    NewMacros.wsExcel.Cells(NewMacros.n, 13) = TextBox4.Text
    End If
     
    If TextBox5.Text <> "" Then
    NewMacros.wsExcel.Cells(NewMacros.n, 14) = TextBox5.Text
    End If
     
    If TextBox6.Text <> "" Then
    NewMacros.wsExcel.Cells(NewMacros.n, 15) = TextBox6.Text
    End If
     
    NewMacros.appExcel.Save
    NewMacros.wbExcel.Close 'Fermeture du classeur Excel
    NewMacros.appExcel.Quit 'Fermeture de l'application Excel
    NewMacros.appExcel.DisplayAlerts = True
    'Désallocation mémoire
    Set NewMacros.wsExcel = Nothing
    Set NewMacros.wbExcel = Nothing
    Set NewMacros.appExcel = Nothing
     
    Unload portee
     
    End Sub

  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 038
    Points
    20 038
    Par défaut
    pour la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    NewMacros.appExcel.Save
    c'est pas plutôt wbExcel.save...

    sinon essai d'exécuter une fois ta macro puis vérifie par le gestionnaire
    de tâches qu'il n'y as pas une tâche excel en cours ...

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 124
    Points : 80
    Points
    80
    Par défaut
    Excuses pour la réponse tardive ...(je devais tester plusieurs jours sous plusieurs PC)

    Et félicitations à bbil qui à trouver mon bug
    PLus haut dans mon code j'avais defini ce qui suit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set NewMacros.appExcel = CreateObject("Excel.Application")
    Cependant j'aime comprendre

    Pourquoi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NewMacros.wbpExcel.Save
    est mieux que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NewMacros.appExcel.Save
    ?

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Parce que wbpExcel est l'instance de ton classeur tandis que appExcel est l'instance de ton application et ce que tu "sauves" c'est le fichier, pas l'appli... enfin d'après ce que j'ai compris.

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

Discussions similaires

  1. [WD-2007] VBA - Word vers Excel
    Par jj37fr dans le forum VBA Word
    Réponses: 6
    Dernier message: 30/08/2012, 12h01
  2. [VBA-Word] Exportation Excel vers Word
    Par le_sonic dans le forum VBA Word
    Réponses: 6
    Dernier message: 20/12/2006, 17h18
  3. Problème de Mémoire VBA WORD Mac G5 5go Ram
    Par kitcreanet dans le forum VBA Word
    Réponses: 2
    Dernier message: 28/08/2006, 12h08
  4. [WORD]Problème de mémoire
    Par Dnx dans le forum VBA Word
    Réponses: 17
    Dernier message: 05/10/2005, 14h48
  5. [VBA] [WORD] problèmes avec NUMPAGES
    Par meufeu dans le forum VBA Word
    Réponses: 9
    Dernier message: 08/08/2005, 16h24

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