Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word > VBA Word
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/01/2007, 22h19   #1
Membre du Club
 
Inscription : octobre 2004
Messages : 119
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 119
Points : 40
Points : 40
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 :
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
aA189 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/01/2007, 22h30   #2
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 774
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 774
Points : 16 855
Points : 16 855
Envoyer un message via Skype™ à bbil
pour la ligne
Code :
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 ...
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2007, 19h04   #3
Membre du Club
 
Inscription : octobre 2004
Messages : 119
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 119
Points : 40
Points : 40
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 :
1
2
 
Set NewMacros.appExcel = CreateObject("Excel.Application")
Cependant j'aime comprendre

Pourquoi

Code :
NewMacros.wbpExcel.Save
est mieux que
Code :
NewMacros.appExcel.Save
?
aA189 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2007, 19h20   #4
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
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.
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h49.


 
 
 
 
Partenaires

Hébergement Web