L'année dernière à la même époque, certains d'entre vous m'avaient indiqué
comment, avec la macro ci-dessous, je pouvais enregistrer le résultat d'une
fusion en autant de fichiers qu'il comporte de pages.
En gors, on donne un n° de départ ( ici, docnum = 2438 ) et la macro
enregistre :
la page 1 dans fm_2439.doc
la page 2 dans fm_2440.doc
etc...
Ce numéro correspond à un champ des données et je m'en suis contenté car il
se trouve qu'il commençait à 2440 et s'incrémentait de 1 à chaque
enregistrement.
Mon problème est que je n'ai pas, cette année, FORCEMENT de continuité dans
les numéros en question (la ligne If docnum = 2484 Then docnum = 2574
correspond à ma rupture de numérotation...), et c'est pourquoi je voudrais
que ce numéro corresponde à un champ de mon fichier de données, càd quelque
chose comme :
docnum=LeChampEnQuestion...
Ca revient à dire qu'il faudrait que le résultat d'une fusion des données :
Dupont, Paul
Durand, Jacques
Martin, Marcel
s'enregistre dans
dupont.doc
durand.doc
martin.doc
Je ne vois pas de solution évidente puisque le résultat de la fusion ne
connaît plus les données, mais y aurait-il une astuce permettant de résoudre
ce problème ?
Merci pour vos idées !
Sub BreakOnPage()
' Used to set criteria for moving through the document by page.
Application.Browser.Target = wdBrowsePage
docnum = 2438
For i = 1 To ActiveDocument.BuiltInDocumentProperties("Number of Pages")
'Select and copy the text to the clipboard
ActiveDocument.Bookmarks("\page").Range.Copy
' Open new document to paste the content of the clipboard into.
Documents.Add
Selection.Paste
' Removes the break that is copied at the end of the page, if any.
Selection.TypeBackspace
Selection.Delete Unit:=wdCharacter, Count:=1
ChangeFileOpenDirectory "C:\CC\fm\"
docnum = docnum + 1
If docnum = 2484 Then docnum = 2574
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Anacoluthe
Bonjour !
"Christophe Cerbourg" nous a écrit ...
L'année dernière à la même époque, certains d'entre vous m'avaient indiqué comment, avec la macro ci-dessous, je pouvais enregistrer le résultat d'une fusion en autant de fichiers qu'il comporte de pages.
Il s'agit de la notice http://support.microsoft.com/?kbid!6845
je voudrais que ce numéro corresponde à un champ de mon fichier de données
La macro MS n'est pas tip-top (mieux vaut celle par sections qui est le vrai séparateur des documents de fusion). Utiliser un champ de fusion pour nommer chaque fichier me semble plus simple : fusionner avec comme premier mot le nom du fichier à donner par exemple <<nom>>{DATE @ ddMMyy}.doc Lors de l'opération de découpage en N fichiers : lire ce premier mot, l'effacer, l'utiliser comme nom de sauvegarde du fichier. C'est juste une idée comme ça mais il y en a plein d'autres avec des champs ou des signets (l'année prochaine ?)
Anacoluthe « Je ne crois pas aux miracles qui se renouvellent tous les ans. » - Roland COURBIS
Bonjour !
"Christophe Cerbourg" nous a écrit ...
L'année dernière à la même époque, certains d'entre vous m'avaient
indiqué comment, avec la macro ci-dessous, je pouvais enregistrer le
résultat d'une fusion en autant de fichiers qu'il comporte de pages.
Il s'agit de la notice http://support.microsoft.com/?kbid!6845
je voudrais que ce numéro corresponde à un champ de
mon fichier de données
La macro MS n'est pas tip-top (mieux vaut celle par sections
qui est le vrai séparateur des documents de fusion).
Utiliser un champ de fusion pour nommer chaque fichier me
semble plus simple : fusionner avec comme premier mot le
nom du fichier à donner par exemple <<nom>>{DATE @ ddMMyy}.doc
Lors de l'opération de découpage en N fichiers : lire ce premier
mot, l'effacer, l'utiliser comme nom de sauvegarde du fichier.
C'est juste une idée comme ça mais il y en a plein d'autres
avec des champs ou des signets (l'année prochaine ?)
Anacoluthe
« Je ne crois pas aux miracles qui se renouvellent tous les ans. »
- Roland COURBIS
L'année dernière à la même époque, certains d'entre vous m'avaient indiqué comment, avec la macro ci-dessous, je pouvais enregistrer le résultat d'une fusion en autant de fichiers qu'il comporte de pages.
Il s'agit de la notice http://support.microsoft.com/?kbid!6845
je voudrais que ce numéro corresponde à un champ de mon fichier de données
La macro MS n'est pas tip-top (mieux vaut celle par sections qui est le vrai séparateur des documents de fusion). Utiliser un champ de fusion pour nommer chaque fichier me semble plus simple : fusionner avec comme premier mot le nom du fichier à donner par exemple <<nom>>{DATE @ ddMMyy}.doc Lors de l'opération de découpage en N fichiers : lire ce premier mot, l'effacer, l'utiliser comme nom de sauvegarde du fichier. C'est juste une idée comme ça mais il y en a plein d'autres avec des champs ou des signets (l'année prochaine ?)
Anacoluthe « Je ne crois pas aux miracles qui se renouvellent tous les ans. » - Roland COURBIS
Christophe Cerbourg
Bonjour et merci pour ton aide,
Lors de l'opération de découpage en N fichiers : lire ce premier mot, l'effacer, l'utiliser comme nom de sauvegarde du fichier. J'ai bien essayé ce genre de choses, mais comment "lire" dans le document.
J'essaye d'appliquer ce que je lis dans l'aide (voir ci-dessous) en faisant quelque chose comme SET MonChamp "MaValeur", mais je ne retrouve rien dans le doc. fusionné...
L'opération de découpage se fait sur le document fusionné et non lors de la fusion. Je n'ai donc plus accès aux champs.
Quelque chose m'échappe dans ce que tu proposes : peux-tu développer ton idée STP ?
Merci !
Exemples de champ SET Un champ SET affecte une valeur (texte ou chiffre) à un signet. Pour imprimer cette valeur dans chaque document fusionné résultant, vous devez insérer un champ de signet dans le document principal. La valeur en question est répétée dans chaque document fusionné. Le signet représente cette valeur jusqu'à ce que vous lui en affectiez une autre. Vous pouvez insérer un signet à plusieurs endroits ou l'utiliser dans plusieurs champs, tels que des champs IF ou des champs = (Formule). Insérez le signet n'importe où après le champ SET.
Exemple Le premier champ SET définit le signet « Coût », qui est ensuite utilisé pour calculer la valeur du signet « Rabais ». Le signet Coût doit être défini dans le document principal avant le champ SET qui définit le Rabais.
{ SET Coût "95,00" } { SET Rabais " { = Coût * 10%} " }
Insérez les champs SET dans le document principal. Lorsque vous insérez le second champ SET, laissez vide la zone Valeur de la boîte de dialogue Insérer le mot clé. Cliquez entre les guillemets vides dans les codes de champ SET, appuyez sur CTRL+F9 pour insérer les caractères de champ ({}), puis tapez les instructions appropriées dans le champ = (Formule).
Le texte et les champs ci-après sont insérés dans un document principal de fusion pour une lettre type. Le champ IF détermine quel numéro de téléphone doit être affecté au signet « Téléphone ». Le numéro « 46.24.48.91 » est imprimé dans toutes les lettres adressées aux destinataires domiciliés dans les Yvelines.
{ SET Téléphone { IF { MERGEFIELD Département } = "78" "46.24.48.91" "46.30.01.10" } }
N'oubliez pas de nous contacter avant le 30 novembre au { Téléphone }
Bonjour et merci pour ton aide,
Lors de l'opération de découpage en N fichiers : lire ce premier
mot, l'effacer, l'utiliser comme nom de sauvegarde du fichier.
J'ai bien essayé ce genre de choses, mais comment "lire" dans le document.
J'essaye d'appliquer ce que je lis dans l'aide (voir ci-dessous) en faisant
quelque chose comme SET MonChamp "MaValeur", mais je ne retrouve rien dans
le doc. fusionné...
L'opération de découpage se fait sur le document fusionné et non lors de la
fusion. Je n'ai donc plus accès aux champs.
Quelque chose m'échappe dans ce que tu proposes : peux-tu développer ton
idée STP ?
Merci !
Exemples de champ SET
Un champ SET affecte une valeur (texte ou chiffre) à un signet. Pour
imprimer cette valeur dans chaque document fusionné résultant, vous devez
insérer un champ de signet dans le document principal. La valeur en question
est répétée dans chaque document fusionné. Le signet représente cette valeur
jusqu'à ce que vous lui en affectiez une autre. Vous pouvez insérer un
signet à plusieurs endroits ou l'utiliser dans plusieurs champs, tels que
des champs IF ou des champs = (Formule). Insérez le signet n'importe où
après le champ SET.
Exemple
Le premier champ SET définit le signet « Coût », qui est ensuite utilisé
pour calculer la valeur du signet « Rabais ». Le signet Coût doit être
défini dans le document principal avant le champ SET qui définit le Rabais.
{ SET Coût "95,00" }
{ SET Rabais " { = Coût * 10%} " }
Insérez les champs SET dans le document principal. Lorsque vous insérez le
second champ SET, laissez vide la zone Valeur de la boîte de dialogue
Insérer le mot clé. Cliquez entre les guillemets vides dans les codes de
champ SET, appuyez sur CTRL+F9 pour insérer les caractères de champ ({}),
puis tapez les instructions appropriées dans le champ = (Formule).
Le texte et les champs ci-après sont insérés dans un document principal de
fusion pour une lettre type. Le champ IF détermine quel numéro de téléphone
doit être affecté au signet « Téléphone ». Le numéro « 46.24.48.91 » est
imprimé dans toutes les lettres adressées aux destinataires domiciliés dans
les Yvelines.
{ SET Téléphone { IF { MERGEFIELD Département } = "78" "46.24.48.91"
"46.30.01.10" } }
N'oubliez pas de nous contacter avant le 30 novembre au { Téléphone }
Lors de l'opération de découpage en N fichiers : lire ce premier mot, l'effacer, l'utiliser comme nom de sauvegarde du fichier. J'ai bien essayé ce genre de choses, mais comment "lire" dans le document.
J'essaye d'appliquer ce que je lis dans l'aide (voir ci-dessous) en faisant quelque chose comme SET MonChamp "MaValeur", mais je ne retrouve rien dans le doc. fusionné...
L'opération de découpage se fait sur le document fusionné et non lors de la fusion. Je n'ai donc plus accès aux champs.
Quelque chose m'échappe dans ce que tu proposes : peux-tu développer ton idée STP ?
Merci !
Exemples de champ SET Un champ SET affecte une valeur (texte ou chiffre) à un signet. Pour imprimer cette valeur dans chaque document fusionné résultant, vous devez insérer un champ de signet dans le document principal. La valeur en question est répétée dans chaque document fusionné. Le signet représente cette valeur jusqu'à ce que vous lui en affectiez une autre. Vous pouvez insérer un signet à plusieurs endroits ou l'utiliser dans plusieurs champs, tels que des champs IF ou des champs = (Formule). Insérez le signet n'importe où après le champ SET.
Exemple Le premier champ SET définit le signet « Coût », qui est ensuite utilisé pour calculer la valeur du signet « Rabais ». Le signet Coût doit être défini dans le document principal avant le champ SET qui définit le Rabais.
{ SET Coût "95,00" } { SET Rabais " { = Coût * 10%} " }
Insérez les champs SET dans le document principal. Lorsque vous insérez le second champ SET, laissez vide la zone Valeur de la boîte de dialogue Insérer le mot clé. Cliquez entre les guillemets vides dans les codes de champ SET, appuyez sur CTRL+F9 pour insérer les caractères de champ ({}), puis tapez les instructions appropriées dans le champ = (Formule).
Le texte et les champs ci-après sont insérés dans un document principal de fusion pour une lettre type. Le champ IF détermine quel numéro de téléphone doit être affecté au signet « Téléphone ». Le numéro « 46.24.48.91 » est imprimé dans toutes les lettres adressées aux destinataires domiciliés dans les Yvelines.
{ SET Téléphone { IF { MERGEFIELD Département } = "78" "46.24.48.91" "46.30.01.10" } }
N'oubliez pas de nous contacter avant le 30 novembre au { Téléphone }
Christophe Cerbourg
Ca fonctionne finalement en faisant comme ça : Set toto = ActiveDocument.Words(1) cchamp = toto.Text toto.Delete Unit:=wdCharacter, Count:=1 ActiveDocument.SaveAs FileName:="C:fmfm_" & cchamp & ".doc"
Merci à Anacoluthe pour l'idée !
Ca fonctionne finalement en faisant comme ça :
Set toto = ActiveDocument.Words(1)
cchamp = toto.Text
toto.Delete Unit:=wdCharacter, Count:=1
ActiveDocument.SaveAs FileName:="C:fmfm_" & cchamp & ".doc"
Ca fonctionne finalement en faisant comme ça : Set toto = ActiveDocument.Words(1) cchamp = toto.Text toto.Delete Unit:=wdCharacter, Count:=1 ActiveDocument.SaveAs FileName:="C:fmfm_" & cchamp & ".doc"