Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2515 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA Word] Refresh du sommaire [OK]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VBA Word] Refresh du sommaire [OK]

n°671667
urd-sama
waste of space
Posté le 12-03-2004 à 12:47:57  profilanswer
 

Bonjour,
J'ai actuellement un petit problème avec un VBA sous Word.
Je possède un formulaire qui va entre autre permettre à l'utilisateur de choisir une langue. Puis je fais un traitement et supprime les sections inutiles d'après ce choix.
Mon problème se situe après que le document soit généré. En dernier lieu j'effectue un refresh de tous les document, selon ce code:

Code :
  1. Public Sub pFrmSubDocRefresh()
  2.    Dim pFrmVarStoryRange As Range
  3.  
  4.    For Each pFrmVarStoryRange In ActiveDocument.StoryRanges
  5.        pFrmVarStoryRange.Fields.Update
  6.        Do While Not (pFrmVarStoryRange.NextStoryRange Is Nothing)
  7.            Set pFrmVarStoryRange = pFrmVarStoryRange.NextStoryRange
  8.            pFrmVarStoryRange.Fields.Update
  9.        Loop
  10.    Next pFrmVarStoryRange
  11.  
  12.    Set pFrmVarStoryRange = Nothing
  13. End Sub


le problème est que je possède un index généré automatiquement dans mon document. Cet index n'est pas refreshé avec ce script, et me fait une erreur sur les numéro de pages. Si je le fais manuellement, pas de problème.
 
qqun aurait une idée pour trouver la solution du problème? merci d'avance :hello:


Message édité par urd-sama le 02-04-2004 à 11:20:31
mood
Publicité
Posté le 12-03-2004 à 12:47:57  profilanswer
 

n°690496
urd-sama
waste of space
Posté le 02-04-2004 à 09:33:17  profilanswer
 

up, je suis toujours coincée avec ce problème :(
l'erreur généré dans le sommaire/index est "Erreur ! Signet non défini."

n°690565
urd-sama
waste of space
Posté le 02-04-2004 à 10:21:29  profilanswer
 

bon, j'ai trouvé ceci:
ActiveDocument.TablesOfContents(1).UpdatePageNumbers
mais ca n'a pas l'air de fonctionner

n°690647
urd-sama
waste of space
Posté le 02-04-2004 à 11:19:55  profilanswer
 

et bien on a finalement trouvé une solution:

Code :
  1. Public Sub pFrmSubDocRefresh()
  2.    Dim pFrmVarStoryRange As Range
  3.    Dim pFrmVarTablesOfContents As TableOfContents
  4.  
  5.    'Update the entire document
  6.    For Each pFrmVarStoryRange In ActiveDocument.StoryRanges
  7.        pFrmVarStoryRange.Fields.Update
  8.        Do While Not (pFrmVarStoryRange.NextStoryRange Is Nothing)
  9.            Set pFrmVarStoryRange = pFrmVarStoryRange.NextStoryRange
  10.            pFrmVarStoryRange.Fields.Update
  11.        Loop
  12.    Next pFrmVarStoryRange
  13.    Set pFrmVarStoryRange = Nothing
  14.  
  15.    'Update all the Tables of Contents
  16.    For Each pFrmVarTablesOfContents In ActiveDocument.TablesOfContents
  17.        pFrmVarTablesOfContents.Update
  18.    Next pFrmVarTablesOfContents
  19.    Set pFrmVarTablesOfContents = Nothing
  20. End Sub


si ca peut aider qqun :hello:

n°720207
urd-sama
waste of space
Posté le 10-05-2004 à 08:41:51  profilanswer
 

j'ai un autre problème et je continue sur ce topic vu que c'est toujours sur le même document.
en résumé je créé 5 sections différentes, chacun représentant une langue. ces 5 langues ont leur propre en-tête et pied de page traduits. à l'ouverture, l'utilisateur choisit une langue, puis le document est généré en supprimant les sections en trop.
 
le problème c'est que les sections ne suivent pas. par exemple j'ai allemand-francais-anglais. je choisis allemand. le corps du texte est bien en allemand mais les en-tetes et pied de page sont toujours en anglais (quelle que soit la langue). en gros je suppose que par défaut il me prend le dernier.
 
qqun aurait une idée? meme une simple idée car là je suis vraiment coincée, je désespère!

n°720537
urd-sama
waste of space
Posté le 10-05-2004 à 13:16:02  profilanswer
 

okay, je vois l'idée!
en fait j'avais déjà fait ca en créant mon document manuellement, je vais donc essayer avec la génération de le faire dans le code.
 
j'ai donc commencé mon bout de code:

Code :
  1. For Each mySection In ActiveDocument.Sections
  2.       mySection.Headers
  3.    Next


le problème c'est que je vois pas trop comment utiliser la propriété LinkToPrevious. je vais encore chercher

n°724437
urd-sama
waste of space
Posté le 13-05-2004 à 11:23:44  profilanswer
 

okay merci beaucoup je vais regarder ca :jap:

n°726046
urd-sama
waste of space
Posté le 14-05-2004 à 14:13:19  profilanswer
 

bon j'ai jeté un oeil à tout ca, j'ai trouvé l'origine de mon bug.
en fait en supprimant des range et non pas des sections, les footers et headers n'étaient pas supprimés ([:kiki])
 
j'ai donc revu mon code pour supprimer les sections et non des ranges. ce qui est finalement très culcul à faire:
 

Code :
  1. ActiveDocument.Sections(5).Range.Delete
  2.       ActiveDocument.Sections(3).Range.Delete
  3.       ActiveDocument.Sections(2).Range.Delete
  4.       ActiveDocument.Sections(1).Range.Delete


 
j'ai encore un petit problème de section vide en trop à enlever mais ca devrait aller maintenant
merci pour votre aide :jap:


Message édité par urd-sama le 14-05-2004 à 14:13:37
n°807105
urd-sama
waste of space
Posté le 26-07-2004 à 23:33:37  profilanswer
 

taiste


---------------
.: Clône de Drasche .:. Ebichuleys .:. Avec l'Aloe Vera je fais de beaux cacas [:dawa] .: www.oserselancer.com :.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA Word] Refresh du sommaire [OK]

 

Sujets relatifs
Un devis ou un conseil pour des Macros WordProblème sur VBA
pb envoi mail avec outlook XP (VBA)[C]Peut on garder les couleurs d'un code dans word ?
actualisation bdd access par VBA[VBA excel] accéder aux données sans ourvir le fichier
[VBA] Paramétrer l'enregistreur de Macros !creer une table (temporaire) en VBA à partir des données d'une requete
PictureBox en VBA[VBA] prob simple sur le control source
Plus de sujets relatifs à : [VBA Word] Refresh du sommaire [OK]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR