[Resolu] Souci fusion automatisee en VBA sous word

Souci fusion automatisee en VBA sous word [Resolu] - VB/VBA/VBS - Programmation

Marsh Posté le 05-09-2006 à 13:19:44    

Bonjour a tous
J'ai fait une petite macro(autoopen) (dont voici le code) :
 

Code :
  1. 'construction de chfusion qui est le path du fichier source
  2. ActiveDocument.MailMerge.OpenDataSource Name:= _
  3.         chfusion, ConfirmConversions _
  4.         :=False, ReadOnly:=False, LinkToSource:=True, AddToRecentFiles:=False, _
  5.         PasswordDocument:="", PasswordTemplate:="", WritePasswordDocument:="", _
  6.         WritePasswordTemplate:="", Revert:=False, Format:=wdOpenFormatAuto, _
  7.         Connection:="", SQLStatement:="", SQLStatement1:="", SubType:= _
  8.         wdMergeSubTypeOther
  9.     ActiveDocument.MailMerge.Execute


 
pour fusionner automatiquement un document avec un fichier source .csv.Le chemin du fichier source est construit de maniere dynamique dans la macro.
Tout marche bien j'ai juste un petit souci,je ne sait pas comment empecher l'apparition de la fenetre suivante lors de l'ouverture du document (chose qui evidemment n existe pas lors de la fusion depuis une bdd).
 
http://img224.imageshack.us/img224/8470/untitledoe7.png
 
C'est assez facheux puisque cela force l utilisateur a valider, chose qu'il me faut absolument eviter.
Donc en gros je cherche le moyen de ne pas faire apparaitre cette fenetre (qui revient en fait a lui faire choisir les options par defaut)
 
Merci de votre aide :jap:


Message édité par betsamee le 06-09-2006 à 11:40:40
Reply

Marsh Posté le 05-09-2006 à 13:19:44   

Reply

Marsh Posté le 05-09-2006 à 15:04:11    

Bonsoir,
sans garantie essayes:
Application.DisplayAlerts = wdAlertsNone
avant
et
Application.DisplayAlerts = wdAlertsAll
à la fin
ordialement

Reply

Marsh Posté le 05-09-2006 à 15:19:23    

merci de ta contribution
j'avais essaye ceci sans succes malheureusement :jap:

Reply

Marsh Posté le 05-09-2006 à 16:05:00    

Re,
J'ai testé ta séquence, avec un csv, la question ne m'est pas posée, as-tu cherché du côté de la structure de ton csv? il vient d'où? créé par quoi?
Cordialement
 

Reply

Marsh Posté le 05-09-2006 à 17:22:27    

tout d'abord merci de t interesser a mon souci
mon csv est genere pas un script php (sous linux) est depose sur un repertoire partage via samba
ce qui est marrant c'est que pour le meme fichier csv un doc fusionne (avec la meme macro autoopen) va m'ouvrir le dialog et un autre non , ce souci est assez curieux

Reply

Marsh Posté le 05-09-2006 à 17:55:53    

Bonsoir,
Je crois bien que cela va sortir de mon domaine.
juste une dernière question:
as-tu essayé de réenregistrer une macro complète de fusion avec ces éléments là, tu pourrais peut-être y retrouver des infos qui te permettent de contourner?
 
Cordialement

Reply

Marsh Posté le 05-09-2006 à 18:13:27    

oui j ai egalement essaye cette methode , sans succes malheureusement

Reply

Marsh Posté le 06-09-2006 à 08:05:00    

Bonjour,
 
  Je pense que le fichier généré sous Linux est au format UNIX. Les caractères de fin de lignes sont différents des fichiers générés sous Windows qui sont au format ANSI. Il suffit, pour le savoir, d'ouvrir le fichier incriminé dans un éditeur de texte digne de ce nom (Notepad++, Textpad, PSPad...).  
 
  Lors de l'importation, Word détecte le type du format et demande comment il doit réencoder le texte.
 


---------------
J'ai un message.."Cliquez OK pour continuer."...Qu'est ce que je fais ?
Reply

Marsh Posté le 06-09-2006 à 08:51:11    

JihemAir a écrit :

Bonjour,
 
  Je pense que le fichier généré sous Linux est au format UNIX. Les caractères de fin de lignes sont différents des fichiers générés sous Windows qui sont au format ANSI. Il suffit, pour le savoir, d'ouvrir le fichier incriminé dans un éditeur de texte digne de ce nom (Notepad++, Textpad, PSPad...).  
 
  Lors de l'importation, Word détecte le type du format et demande comment il doit réencoder le texte.


c'est egalement la conclusion a laquelle j'etais arrive avant de generer le meme fichier sous windows et de rencontrer le meme souci :-(

Reply

Marsh Posté le 06-09-2006 à 10:10:32    

Bonjour,
Bien sûr tu ne peux pas envoyer un fichier qui te fais ce pb? même avec des données bidons?
Je suis sur windows XP home
Cordialement


Message édité par seniorpapou le 06-09-2006 à 10:11:15
Reply

Marsh Posté le 06-09-2006 à 10:10:32   

Reply

Marsh Posté le 06-09-2006 à 10:22:08    

en voici un:
EDIT:oups, serveur de hosting de merde
ou je peux trouver un bon service pour heberger mes fichiers?
merci :jap:


Message édité par betsamee le 06-09-2006 à 10:23:12
Reply

Marsh Posté le 06-09-2006 à 10:37:15    

Re,
trouvé sur ce forum  
http://cjoint.com
limité, (dans le temps et l'espace) mais pratique.

Reply

Marsh Posté le 06-09-2006 à 10:40:08    

excellent
voici le fichier
http://cjoint.com/?jgkNWc0OUl

Reply

Marsh Posté le 06-09-2006 à 11:40:12    

Resolu : je suis un connard
J'avais integre ma requete autoopen a un document de fusion que j'avais cree au prealable, ce qui fait que la premiere source de donnees (et pas celle construite par le VBA) restait enregistree dans l'entete du document , ce qui le rendait completement ouf.
En gros, en faisant "supprimer les entetes" le probleme a disparu,vu que a present , seul le code VBA est pris en compte pour la fusion a louverture du document
merci a tous ceux qui se sont casses la tete :jap:  
 
enseignements a tirer de ceci:
- un document de fusion garde ses infos de fusions originelles dans une table interne a Word(et meme le chemin de la source), ce qui est normal en soit
- Le format a adopter dans la commande OpenDataSource est wdOpenFormatTex pour les fichiers sources de type texte

Reply

Marsh Posté le 06-09-2006 à 12:31:11    

Bonjour,
dans ce cas là, c'est le caractère qui précède "Rue" qui sème le désordre. même en contournant (j'ai alimenté le csv sans pb sous un word et indiqué ce word comme source de données) le R de rue devient un beau caractère chinois. Je suppose que la source ne peut être corrigée à la "source"?
@+

Reply

Marsh Posté le 06-09-2006 à 12:53:56    

seniorpapou a écrit :

Bonjour,
dans ce cas là, c'est le caractère qui précède "Rue" qui sème le désordre. même en contournant (j'ai alimenté le csv sans pb sous un word et indiqué ce word comme source de données) le R de rue devient un beau caractère chinois. Je suppose que la source ne peut être corrigée à la "source"?
@+


elle peut tout a fait l'etre je gere egalement la bdd qui alimente des fichiers
penses tu qu il y a un souci d encodage?


Message édité par betsamee le 06-09-2006 à 13:02:32
Reply

Marsh Posté le 06-09-2006 à 13:12:35    

Je pense que oui, j'ai contourné par une bidouille qui va scandaliser tous les informaticiens: ouverture du csv sous un word format unicode:
 
Documents.Open FileName:=chfusion, ConfirmConversions:=False, _
        ReadOnly:=False, AddToRecentFiles:=False, PasswordDocument:="", _
        PasswordTemplate:="", Revert:=False, WritePasswordDocument:="", _
        WritePasswordTemplate:="", Format:=wdOpenFormatUnicodeText, Encoding:=1252
 
 
(avec un réserve sur encoding mais cela fonctionne)
 
Ecriture dans un fichier texte et là tu peux ouvrir sans questions
 
Application.DisplayAlerts = wdAlertsNone
    ActiveDocument.SaveAs FileName:="jgkNWc0OUl_BSCiel4.txt", FileFormat:= _
        wdFormatText, LockComments:=False, Password:="", AddToRecentFiles:=True, _
        WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _
         SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:= _
        False, Encoding:=1252, InsertLineBreaks:=False, AllowSubstitutions:=False _
        , LineEnding:=wdCRLF
        Application.DisplayAlerts = wdAlertsAll
 
si c'est ok tu dois pouvoir coller cela dans ta macro
 
mais cela n'est pas élégant!!!
par contre si tu peux voir pourquoi il y a un caractère spécial devant le R ce serait mieux.
Cordialement

Reply

Marsh Posté le 06-09-2006 à 13:25:36    

merci de ton aide je vais voir ce que ca donne

Reply

Marsh Posté le 07-09-2006 à 22:16:02    

merci seniorpapou mon souci est resolu (encodage des la generation du fichier txt) et je n ai plus aucun message durant l'ouverture de la macro autoopen contenant la fusion

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed