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 04/04/2007, 13h55   #1
Invité de passage
 
Inscription : janvier 2007
Messages : 24
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 24
Points : 0
Points : 0
Par défaut VBA-Word:Erreur 6 de dépassement de capacité

Bonjour, je travaille sur une application qui fait appel à une macro word de fusion.
Cette application comporte trois sous applications utilisant la même macro mais avec des sources de données différentes.
Cependant une seule des trois sous applications pose problème.
Lorsque je l'exécute, j'obtient l'erreur 6 (dépassement de capacité) et la fermeture de l'application.
Cependant en mode debogage tout se passe bien et cette sous application semble prendre le même itinéraire que les deux autres.
Voici le code de la macro word:


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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
Public Sub MAIN()
Dim SourceName$
Dim TitreEtat$
Dim AssName$
Dim TypeAss$
Dim Depositaire$
Dim DateDepot$
Dim NumDepot$
Dim NbPvrsAGO$
Dim NbActionsAGO$
Dim NbVoixAGO$
Dim NbPvrsAGE$
Dim NbActionsAGE$
Dim NbVoixAGE$
SourceName$ = WordBasic.[GetDocumentVar$]("FusionSource")
TitreEtat$ = WordBasic.[GetDocumentVar$]("TitreEtat")
AssName$ = WordBasic.[GetDocumentVar$]("AssName")
TypeAss$ = WordBasic.[GetDocumentVar$]("TypeAss")
Depositaire$ = WordBasic.[GetDocumentVar$]("Depositaire")
DateDepot$ = WordBasic.[GetDocumentVar$]("DateDepot")
NumDepot$ = WordBasic.[GetDocumentVar$]("NumDepot")
NbPvrsAGO$ = WordBasic.[GetDocumentVar$]("NbPvrsAGO")
NbActionsAGO$ = WordBasic.[GetDocumentVar$]("NbActionsAGO")
NbVoixAGO$ = WordBasic.[GetDocumentVar$]("NbVoixAGO")
NbPvrsAGE$ = WordBasic.[GetDocumentVar$]("NbPvrsAGE")
NbActionsAGE$ = WordBasic.[GetDocumentVar$]("NbActionsAGE")
NbVoixAGE$ = WordBasic.[GetDocumentVar$]("NbVoixAGE")
 
' Fusion
If WordBasic.MsgBox("La fusion va être effectuée à partir du fichier source: " + SourceName$, "Fusion", 33) = -1 Then
 
WordBasic.MailMergeOpenDataSource Name:=SourceName$, ConfirmConversions:=0, ReadOnly:=0, LinkToSource:=1, AddToMru:=0, PasswordDoc:="", PasswordDot:="", Revert:=0, WritePasswordDoc:="", WritePasswordDot:="", Connection:="", SQLStatement:="", SQLStatement1:=""
 
WordBasic.MailMerge CheckErrors:=2, Destination:=0, MergeRecords:=0, From:="", To:="", Suppression:=0, MailMerge:=1, MailSubject:="", MailAsAttachment:=0, MailAddress:=""
 
WordBasic.EditReplace Find:="@TITRE_ETAT@", Replace:=TitreEtat$, Direction:=0, MatchCase:=0, WholeWord:=0, PatternMatch:=0, SoundsLike:=0, ReplaceOne:=1, Format:=0, Wrap:=1, FindAllWordForms:=0
WordBasic.EditReplace Find:="@ASSEMBLEE@", Replace:=AssName$, Direction:=0, MatchCase:=0, WholeWord:=0, PatternMatch:=0, SoundsLike:=0, ReplaceOne:=1, Format:=0, Wrap:=1, FindAllWordForms:=0
WordBasic.EditReplace Find:="@DEPOSITAIRE@", Replace:=Depositaire$, Direction:=0, MatchCase:=0, WholeWord:=0, PatternMatch:=0, SoundsLike:=0, ReplaceOne:=1, Format:=0, Wrap:=1, FindAllWordForms:=0
WordBasic.EditReplace Find:="@DATE_DEPOT@", Replace:=DateDepot$, Direction:=0, MatchCase:=0, WholeWord:=0, PatternMatch:=0, SoundsLike:=0, ReplaceOne:=1, Format:=0, Wrap:=1, FindAllWordForms:=0
WordBasic.EditReplace Find:="@NUMERO_DEPOT@", Replace:=NumDepot$, Direction:=0, MatchCase:=0, WholeWord:=0, PatternMatch:=0, SoundsLike:=0, ReplaceOne:=1, Format:=0, Wrap:=1, FindAllWordForms:=0
 
Select Case TypeAss$
Case "E"
    WordBasic.EditFind Find:="NB_ACTIONS_AGO", Direction:=0, MatchCase:=0, WholeWord:=0, PatternMatch:=0, SoundsLike:=0, Format:=0, Wrap:=1, FindAllWordForms:=0
    WordBasic.StartOfLine
    WordBasic.LineDown 1, 1
    WordBasic.CharLeft 1, 1
    WordBasic.TableDeleteColumn
    WordBasic.EditReplace Find:="@NB_PVRS_AGE@", Replace:=NbPvrsAGE$, Direction:=0, MatchCase:=0, WholeWord:=0, PatternMatch:=0, SoundsLike:=0, ReplaceOne:=1, Format:=0, Wrap:=1, FindAllWordForms:=0
    WordBasic.EditReplace Find:="@NB_ACTIONS_AGE@", Replace:=NbActionsAGE$, Direction:=0, MatchCase:=0, WholeWord:=0, PatternMatch:=0, SoundsLike:=0, ReplaceOne:=1, Format:=0, Wrap:=1, FindAllWordForms:=0
    WordBasic.EditReplace Find:="@NB_VOIX_AGE@", Replace:=NbVoixAGE$, Direction:=0, MatchCase:=0, WholeWord:=0, PatternMatch:=0, SoundsLike:=0, ReplaceOne:=1, Format:=0, Wrap:=1, FindAllWordForms:=0
Case "O"
    WordBasic.EditFind Find:="NB_ACTIONS_AGE", Direction:=0, MatchCase:=0, WholeWord:=0, PatternMatch:=0, SoundsLike:=0, Format:=0, Wrap:=1, FindAllWordForms:=0
    WordBasic.StartOfLine
    WordBasic.LineDown 1, 1
    WordBasic.CharLeft 1, 1
    WordBasic.TableDeleteColumn
    WordBasic.EditReplace Find:="@NB_PVRS_AGO@", Replace:=NbPvrsAGO$, Direction:=0, MatchCase:=0, WholeWord:=0, PatternMatch:=0, SoundsLike:=0, ReplaceOne:=1, Format:=0, Wrap:=1, FindAllWordForms:=0
    WordBasic.EditReplace Find:="@NB_ACTIONS_AGO@", Replace:=NbActionsAGO$, Direction:=0, MatchCase:=0, WholeWord:=0, PatternMatch:=0, SoundsLike:=0, ReplaceOne:=1, Format:=0, Wrap:=1, FindAllWordForms:=0
    WordBasic.EditReplace Find:="@NB_VOIX_AGO@", Replace:=NbVoixAGO$, Direction:=0, MatchCase:=0, WholeWord:=0, PatternMatch:=0, SoundsLike:=0, ReplaceOne:=1, Format:=0, Wrap:=1, FindAllWordForms:=0
Case "M"
    WordBasic.EditReplace Find:="@NB_PVRS_AGO@", Replace:=NbPvrsAGO$, Direction:=0, MatchCase:=0, WholeWord:=0, PatternMatch:=0, SoundsLike:=0, ReplaceOne:=1, Format:=0, Wrap:=1, FindAllWordForms:=0
    WordBasic.EditReplace Find:="@NB_ACTIONS_AGO@", Replace:=NbActionsAGO$, Direction:=0, MatchCase:=0, WholeWord:=0, PatternMatch:=0, SoundsLike:=0, ReplaceOne:=1, Format:=0, Wrap:=1, FindAllWordForms:=0
    WordBasic.EditReplace Find:="@NB_VOIX_AGO@", Replace:=NbVoixAGO$, Direction:=0, MatchCase:=0, WholeWord:=0, PatternMatch:=0, SoundsLike:=0, ReplaceOne:=1, Format:=0, Wrap:=1, FindAllWordForms:=0
    WordBasic.EditReplace Find:="@NB_PVRS_AGE@", Replace:=NbPvrsAGE$, Direction:=0, MatchCase:=0, WholeWord:=0, PatternMatch:=0, SoundsLike:=0, ReplaceOne:=1, Format:=0, Wrap:=1, FindAllWordForms:=0
    WordBasic.EditReplace Find:="@NB_ACTIONS_AGE@", Replace:=NbActionsAGE$, Direction:=0, MatchCase:=0, WholeWord:=0, PatternMatch:=0, SoundsLike:=0, ReplaceOne:=1, Format:=0, Wrap:=1, FindAllWordForms:=0
    WordBasic.EditReplace Find:="@NB_VOIX_AGE@", Replace:=NbVoixAGE$, Direction:=0, MatchCase:=0, WholeWord:=0, PatternMatch:=0, SoundsLike:=0, ReplaceOne:=1, Format:=0, Wrap:=1, FindAllWordForms:=0
End Select
 
WordBasic.InsertPageNumbers Type:=1, Position:=1, FirstPage:=1
 
Call SupprimerArobase.MAIN
', Run:=1, Show:=0, Description:="", NewName:=""
 
Call FermerModele.MAIN
', Run:=1, Show:=0, Description:="", NewName:=""
WordBasic.StartOfDocument
 
End If
End Sub

Merci de votre aide
zahui_eric est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2007, 14h05   #2
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
Si ça fonctionne normalement au pas par pas, ça ressemble à un problème de délai entre chaque instruction. Essaie d'ajouter DoEvents entre chacune d'elles. Je pense qu'ici ça devrait suffire
Code :
1
2
3
4
WordBasic.MailMergeOpenDataSource Name:=SourceName$, ConfirmConversions:=0, ReadOnly:=0, LinkToSource:=1, AddToMru:=0, PasswordDoc:="", PasswordDot:="", Revert:=0, WritePasswordDoc:="", WritePasswordDot:="", Connection:="", SQLStatement:="", SQLStatement1:=""
DoEvents
WordBasic.MailMerge CheckErrors:=2, Destination:=0, MergeRecords:=0, From:="", To:="", Suppression:=0, MailMerge:=1, MailSubject:="", MailAsAttachment:=0, MailAddress:=""
DoEvents
Tu dis
A+
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2007, 15h05   #3
Invité de passage
 
Inscription : janvier 2007
Messages : 24
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 24
Points : 0
Points : 0
Par défaut Merci

Merci beaucoup,
le programme semble marcher...
Tu es trop fort
zahui_eric est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2007, 15h17   #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
Non, c'est DoEvents. On devrait tous sortir avec un DoEvents sur soi
Jète un oeil à DoEvents, dans l'aide, elle t'expliquera tout
A+
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h21.


 
 
 
 
Partenaires

Hébergement Web