Liens XPress/Excel pour numérotation, etc.

baron

Membre d’élite
22 Avril 2008
1 483
365
LLN
Il me semble que je préparerais
dans Excell mes séries de chiffres complètes +++123/1234/12328+++ (doublées) puis par rechercher/remplacer comme tu as fait je placerais les sauts de bloc.
 

TYPO 48

Membre junior
11 Juin 2007
97
4
Liège
Il me semble que je préparerais
dans Excell mes séries de chiffres complètes +++123/1234/12328+++ (doublées) puis par rechercher/remplacer comme tu as fait je placerais les sauts de bloc.
As-tu essayé de créer une telle suite : avec le nombre formé par les 10 premiers chiffres incrémenté de 1 et le modulo formé par les deux derniers chiffres calculé à chaque ligne ? Je ne crois pas que ce soit possible.
 

TYPO 48

Membre junior
11 Juin 2007
97
4
Liège
Le but est donc de générer des documents portant chacun, à deux endroits différents, un numéro de communication structurée selon une suite définie de 1000 numéros maximum. En l’occurence : +++400/0000/00039+++, +++400/0000/00140+++, +++400/0000/00241+++… En m’inspirant fortement des principes de ccciolll (que je remercie encore), je procède comme ceci :

Dans un document Excel, en colonne A, je crée une série de nombres de 3 chiffres. Le maximum est donc de 1000 nombres. Pour le test, je me suis limité à 3. Régler le format de cellule : Nombre, sans décimales, personnalisé à 3 positions.

Dans la cellule B1, j’encode la formule [=MOD(400000000+A1;97)], soit le solde de la division par 97 de la valeur de la partie fixe (établie ici à 400/0000/) multipliée par 100 = 400.000.000, additionné de la valeur de la cellule A (0, 1, 2, 3…). Je duplique cette formule dans les autres cellules de la colonne, l’adresse contenue (A1) étant relativisée.

Ensuite, je duplique les colonnes A et B en C et D. Comme dans la méthode de ccciolll, je sauvegarde le fichier Excel dans un document texte (format Texte (séparateur tabulation)) et je nomme ce document Liste prête à l’insertion. Je saute les étapes chercher/remplacer et création d’un document XPress temporaire.

Dans la maquette du document XPress, je place le texte de mon formulaire. Je crée quatre blocs texte accolés sur une même ligne horizontale. Pour chaque bloc, je détermine les attributs texte (police, corps…) comme désiré. Dans le bloc de gauche, j’encode la partie fixe de la communication (ici : +++400/0000/). Dans le bloc de droite, j’encode la chaîne finale [+++]. Ces 4 blocs doivent avoir des dimensions exactement adaptées aux données qu’ils vont recevoir. Notamment le deuxième bloc qui doit contenir 3 chiffres et le troisième bloc qui doit contenir 2 chiffres. C’est très important car, sinon, la méthode ne fonctionne pas ! Il est conseillé d’introduire provisoirement les chiffres pour faire ce réglage. Je duplique l’ensemble des 4 blocs vers le bas. J’obtiens donc 8 blocs que nous numérotons de 1 à 8 en partant de gauche à droite puis de bas en haut. Avec l’outil chaînage, je clique sur le symbole chaînage dans le coin supérieur gauche, puis sur les blocs 2, 3, 6 et 7. Je positionne chaque groupe de blocs dans ma page à l’endroit où doivent apparaître les communications.

Retour à la mise en page. Comme le préconise ccciolll, il est prudent de créer une nouvelle page après la page 1 puis de supprimer cette page 1. Comme cela, la page obtenue correspond exactement à la maquette. Le texte du formulaire doit y apparaître ainsi que les 2 groupes de 4 blocs recevant la communication structurée. Dans le bloc numéro 2 (!), j’importe le document texte. Si les blocs sont correctement dimensionnés, le texte passe d’un bloc à l’autre au bon endroit. Les pages se créent automatiquement et il n’y a plus qu’à imprimer. Bingo !

Encore merci à ccciolll qui m'a mis sur la voie.
 

baron

Membre d’élite
22 Avril 2008
1 483
365
LLN
Je n'ai pas fait de test, j'ai juste dit que j'essaierais si j'étais à ta place — et je ne pourrais le faire que dans LibreOffice ou Numbers pour le moment. Pour cela je créerais encore de nouvelles colonnes où je récupérerais le résultat des premières colonnes et je concaténerais des chaînes, en extrayant le nombre de caractères voulus…

Maintenant, la technique des blocs accolés de bonne largeur me paraît très bien aussi. :)
J'attire juste ton attention sur l'utilité de choisir une police qui offre des chiffres tabulaires (tous de même largeur) pour garantir l'alignement. ;) Généralement, tu trouves cela dans les options avancées OpenType, en espérant que ta version d'XPress le gère bien.
 

TYPO 48

Membre junior
11 Juin 2007
97
4
Liège
Je n'ai pas fait de test, j'ai juste dit que j'essaierais si j'étais à ta place — et je ne pourrais le faire que dans LibreOffice ou Numbers pour le moment. Pour cela je créerais encore de nouvelles colonnes où je récupérerais le résultat des premières colonnes et je concaténerais des chaînes, en extrayant le nombre de caractères voulus…
Vu comme cela, c'est possible mais cela complique les choses.
Maintenant, la technique des blocs accolés de bonne largeur me paraît très bien aussi. :)
J'attire juste ton attention sur l'utilité de choisir une police qui offre des chiffres tabulaires (tous de même largeur) pour garantir l'alignement. ;) Généralement, tu trouves cela dans les options avancées OpenType, en espérant que ta version d'XPress le gère bien.
Ma technique me paraît plus simple à mettre en œuvre.
Quant au type de police à utiliser, la majorité des polices offrent des chiffres de type tabulaire, comme tu dis. Rares sont celles qui présentent le chiffre 1 plus étroit que les autres. Il y en a quand même et c'est plus esthétique dans du texte courant.
Merci de t'être intéressé à mon problème.
 

ccciolll

Vétéran
Club MacG
Comme je n'ai pas une telle maîtrise d'excel, moi aussi j'aurai probablement choisi la solution concatener pour ajouter les parties fixes type +++012/0123/ et +++ à la fin. Mais peu importe la méthode, l'important étant d'avoir au final tes données en txt+tabulation pour l'import dans xpress, sous forme de 2 colonnes minimum. Et c'est plutôt à partir de cet endroit-là, comme tu l'as souligné, que ma participation apporte sa goutte d'eau.