[Résolu] Conserver les sauts de ligne d'une incrémentation

Discussions à propos du tableur Calc.
Les questions sur les macros doivent être postées dans la section dédiée en dessous.

Modérateur : Vilains modOOs

Règles du forum
Cette section est uniquement dédiée au tableur Calc. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Egide
NOOuvel adepte
NOOuvel adepte
Messages : 15
Inscription : 30 avr. 2019 15:33

[Résolu] Conserver les sauts de ligne d'une incrémentation

Message par Egide »

Bonjour !

Alors voici mon problème, je dois créer un très grands nombre d'étiquette. Je vous passe les exceptions etc car mon problème est sur la base général.
Donc vu que ce sont des étiquettes dans le but d'être imprimées pour faire des cotes de livre, elles doivent avoir un format spécifique c'est à dire chaque cellule (étiquette) doit faire :
2.12 de hauteur
3.81 de largeur

Jusque là tout va bien. Cependant aujourd'hui je dois en faire un grand nombre qui se suit. (je traite de longues séries)
Le début de l'étiquette ne change pas c'est toujours (ça changera par série en fait)
PC.A 1
année
numéro du livre

Donc voilà ce à quoi c'est censé ressembler dans chaque cellule :

https://cdn.discordapp.com/attachments/385020139839422464/572778958844854292/unknown.png


Et donc c'est là qu'arrive mon incrémentation. Car autant l'année change de façon relativement irrégulière, par contre le dernier chiffre lui se suit ! Du coup j'ai voulu faire une incrémentation et ça fonctionne. Le chiffre de fin continu etc

MAIS l'incrémentation "bug" visuellement parlant.

Je m'explique : si je fais ça je vais me retrouver avec seulement une ligne avec tout qui se suit comme si l'incrémentation avait retiré les sauts de ligne

https://cdn.discordapp.com/attachments/385020139839422464/572779296846905345/unknown.png

MAIS si je fais un double clique dessus ça redevient normal... uniquement pendant un temps. Le temps que je suis "dans" la cellule. Si je ne fais rien dedans (genre ajouter et retirer un espace) ça reste comme ça en ligne. Si je fais ne serait ce qu'ajouter un espace, en retirer un ou n'importe quoi de ce genre, ça me mets la cellule comme je veux.

Le problème donc c'est que je ne veux pas faire ça pour CHAQUE ligne et j'ai essayé de cliquer sur retour à la ligne, de mettre en gras, de changer de taille de tout en fait pour faire "réagir" les cellules mais rien. Il faut que j'ajoute ou supprime un caractère dans chaque cellule une à une. Je perds donc tout le gain de temps que m'apportait l'incrémentation.

Sauriez vous donc comment faire pour incrémenter tout en gardant le format visuel ?

Merci d'avance pour vos réponse :) voici en pièce jointe le fichier
Pièces jointes
test auto.ods
(11.78 Kio) Téléchargé 43 fois
Dernière modification par micmac le 10 mai 2019 16:15, modifié 2 fois.
Raison : Balisage
Windows 10, OpenOffice 4.1.7
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
Messages : 12196
Inscription : 08 nov. 2005 17:23
Localisation : Caen, France
Contact :

Re: bogue ? Conserver les sauts de ligne lors d'une incrémen

Message par Bidouille »

Bonjour,

Vous avez illustré votre question avec des fichiers en provenance d'un site tiers. Or, souvent ces sites n'assurent aucune pérennité sur les données qu'ils hébergent.

C'est pour cela que nous préférerons que vous utilisiez notre service de pièce-jointe dont le lien est mentionné en bas lorsque vous écrivez votre message : http://forum.openoffice.org/fr/forum/ft ... forum.html

Veuillez corriger votre message en utilisant le bouton "Editer" (situé à droite) et en mettant en ligne votre fichier correctement.

Vous en remerciant par avance.
Egide
NOOuvel adepte
NOOuvel adepte
Messages : 15
Inscription : 30 avr. 2019 15:33

Re: Conserver les sauts de ligne d'une incrémentation

Message par Egide »

Bonjour,

c'est corrigé.
Windows 10, OpenOffice 4.1.7
Avatar de l’utilisateur
rollmops
PassiOOnné
PassiOOnné
Messages : 665
Inscription : 20 déc. 2017 15:45

Re: Conserver les sauts de ligne d'une incrémentation

Message par rollmops »

Bonjour,

Moi pour faire des étiquettes, j'utilise Writer et la fonction de publipostage.
OpenOffice 4.1.15 - Windows 10
Egide
NOOuvel adepte
NOOuvel adepte
Messages : 15
Inscription : 30 avr. 2019 15:33

Re: Conserver les sauts de ligne d'une incrémentation

Message par Egide »

La fonction de publipostage ne me permettra pas le suivi numérique. J'ai plus de 8 000 étiquettes à faire dont les chiffres se suivent parfois (en fonction des collections)
L'intérêt c'est qu'en utilisant l'incrémentation ça me permette d'avoir les étiquettes au format voulu ET les numéros de volumes se suivant.
Windows 10, OpenOffice 4.1.7
Avatar de l’utilisateur
OOotremer971
ManitOOu
ManitOOu
Messages : 2744
Inscription : 16 avr. 2010 15:31

Re: Conserver les sauts de ligne d'une incrémentation

Message par OOotremer971 »

Bonjour,

Une éventuelle solution avec les fonctions de Calc, sous réserve que ça ne te paraisse pas trop compliqué :) :

Code : Tout sélectionner

=CAR(10)&"PC.A 1"&CAR(10)&1972&CAR(10)&21+COLONNE(A1)+(LIGNE(A1)*5)
formule à étirer vers la droite sur 5 colonne puis vers le bas autant que nécessaire.
L'expression CAR(10) génère un saut de ligne et les fonctions COLONNE() et LIGNE()l'incrémentation
En principe, toujours à jour des dernières versions dites stables
AOO
LibreOffice
Debian 10 et 11
Avatar de l’utilisateur
Hubert Lambert
SuppOOrter
SuppOOrter
Messages : 1214
Inscription : 06 avr. 2016 09:26

Re: Conserver les sauts de ligne d'une incrémentation

Message par Hubert Lambert »

Bonjour,

À tout hasard : ce bug a été corrigé dans LibreOffice :wink: .
Cordialement.
AOOo 4.1.7 sur Win10
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
| « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
Avatar de l’utilisateur
Jean-Louis Cadeillan
GourOOu
GourOOu
Messages : 5732
Inscription : 03 janv. 2009 00:56

Re: Conserver les sauts de ligne d'une incrémentation

Message par Jean-Louis Cadeillan »

Bonsoir,
Dans la continuité de la solution d'OOotremer971 (que je salue :wink: ), mais en tenant aussi compte de l'année, de la périodicité (dans l'exemple, 5 n° par an) , du premier n°annuel (dans l'exemple, 1971 commence avec le 2ème n°) , ci-joint une solution.
La feuille A_Obtenir est l'exemple de planche d'étiquettes que tu nous a fourni.
Les feuilles Etiquettes et Etiquettes+ essaient de reproduire le plus fidèlement possible A_Obtenir, mais il faudra supprimer manuellement les n° manquants (ou ne pas coller ces étiquettes !) et modifier (copier puis collage spécial avec texte coché) les étiquettes des n° doubles (comme dans l'exemple 1978 64-65).
Ces deux feuilles utilisent la feuille Tb (comme Tableau de bord) qui recense les paramètres susceptibles de changer :
  • le libellé de la série ;
  • la première année de la série ;
  • la périodicité annuelle de la parution ;
  • le n° de la première année de la série (par exemple, si on veut une seule étiquette de 1971 pour une revue à 5 n° par an, on saisit 5 ;
  • le n° d'inventaire de départ de la série.
La périodicité annuelle est prévue par liste déroulante de 1 à 24 (c'est paramétrable) et le n°de la première année de la série aussi par liste déroulante, inféodée à la précédente. La modification des paramètres du tableau de bord modifie automatiquement les étiquettes correspondantes.
J'ai créé un style de cellule nommé Etiquette, avec Centré vertical bas, ce qui économise un CAR(10).
La feuille Etiquettes n'utilise pas le paramètre de la périodicité de parution (c'est fixé à 5). La feuille Etiquettes+, si (la formule est du coup légèrement plus longue).
Utilise un classeur modèle de ces planches d'étiquettes (en oxt) puisque tu peux être amené à détruire des formules, soit en supprimant des étiquettes soit en en modifiant (pour les n° doubles).
Cordialement,
Jean-Louis
Pièces jointes
Egide_20190430_JLC01.ods
(23.16 Kio) Téléchargé 36 fois
LibO 7.6.5.2 (x64 avec Java 1.8.0_401) et AOO 4.1.15 (avec Java x32 1.8.0_381), Windows 7 Édition Intégrale 64 SP1
Egide
NOOuvel adepte
NOOuvel adepte
Messages : 15
Inscription : 30 avr. 2019 15:33

Re: Conserver les sauts de ligne d'une incrémentation

Message par Egide »

Alors déjà d'une Whow :shock:

J'ai un peu de mal à bien tout saisir comment ça fonctionne, je vais bien l'analyser mais si c'est effectivement comme je le crois alors ce serait génial !

Pour ma propre culture, pour que je sois capable de le refaire à l'avenir, serait-il possible de m'expliquer les fonctions utilisées dans etiquettes + ?

Et question :
1 : Y a t'il un moyen de paramétrer pour que chaque année à revienne à zéro ? (exemple j'ai un périodique à chaque changement d'année le compte revient à 1.2.3 etc)
2 : Imaginons que mes périodiques ont une numérotation étrange genre "125/126" puis "127/128" mais tout le long pas juste un de temps en temps, y a moyen de faire quelque chose aussi ?

Merci beaucoup !

PS : Je crois ? Que l'on peut dire que c'est résolu

EDIT : Ma patronne te remercie chaudement aussi x)
Windows 10, OpenOffice 4.1.7
Avatar de l’utilisateur
Jean-Louis Cadeillan
GourOOu
GourOOu
Messages : 5732
Inscription : 03 janv. 2009 00:56

Re: [Résolu] Conserver les sauts de ligne d'une incrémentati

Message par Jean-Louis Cadeillan »

Bonsoir,
Egide a écrit :serait-il possible de m'expliquer les fonctions utilisées dans etiquettes + ?
Pour comprendre comment fonctionnent les formules, surtout lorsqu'il s'agit de formules d'incrémentation, le plus simple est de recopier une des feuilles Etiquettes0x (cliquer/glisser sur l'onglet de cette feuille vers la droite tout en appuyant sur Ctrl) : la nouvelle feuille va s'appeler Etiquettes0x_2. Choisis alors n'importe quelle étiquette et Ctrl+* : toutes les étiquettes sont sélectionnées. Appuie sur Suppr. Toutes les formules seront effacées. Tu as donc une feuille vierge mais avec la bonne mise en forme (hauteur et largeur de cellules). Cette feuille va te servir de « bac à sable ». Tu vas y coller en B1 les portions de formules que tu veux tester, puis les recopier jusqu'en F1 vers la droite, puis recopier B1:F1 vers le bas (par exemple jusqu'en F4). Tu verras ainsi à quoi sert chaque portion de formule. Par exemple, en B1 de Etiquettes01 (j'ai rebaptisé ainsi la feuille Etiquettes+), tu as la formule :

Code : Tout sélectionner

=$Tb.$B$1&CAR(10)&ENT($Tb.$B$2+COLONNE()+LIGNE()*5-6+$Tb.$B$4-2)/$Tb.$B$3)&CAR(10)&$Tb.$B$5+COLONNE()+LIGNE()*5-7
Tu as une portion de cette formule qui utilise la fonction ENT() qui donne la partie entière d'un nombre :

Code : Tout sélectionner

ENT($Tb.$B$2+(COLONNE()+LIGNE()*5-6+$Tb.$B$4-2)/$Tb.$B$3)
Tu vas extraire l'argument de ENT() :

Code : Tout sélectionner

$Tb.$B$2+(COLONNE()+LIGNE()*5-6+$Tb.$B$4-2)/$Tb.$B$3
et le coller en B1 de ta feuille « bac à sable » en le faisant précéder du signe =. Tu vas avoir en B1 1971,8, en C1 1972, en D1 1972,2, etc. ce qui devrait t'inciter à comprendre pourquoi dans cette portion on divise par la périodicité annuelle de la parution (en Tb.B3). Si ce n'est pas encore assez clair, tu récupères une partie de cette portion, par exemple :

Code : Tout sélectionner

COLONNE()+LIGNE()*5-6
et, après avoir effacé la portion précédente, tu la recopies de la même manière, tu verras apparaître en B1 : 1, en C1 : 2, en D1 : 3, etc.
Egide a écrit : Y a t'il un moyen de paramétrer pour que chaque année revienne à zéro ?
Oui, voir Etiquettes02 et 03, ce qui m'a obligé à utiliser un nouveau paramètre sur Tb en B6 (égal à 1, voir commentaire de cette cellule)
Egide a écrit : une numérotation étrange genre "125/126" puis "127/128" mais tout le long
Possible aussi, voir Etiquettes03 et toujours avec le paramètre Tb.B6 (égal à 2, cette fois-ci).
Pour résumer la feuille Etiquettes03 cumule tous les contrôles et adapte les étiquettes en fonction. Du coup la formule en B1 de cette feuille est devenue plus complexe :

Code : Tout sélectionner

=$Tb.$B$1&CAR(10)&ENT($Tb.$B$2+(COLONNE()+LIGNE()*5-6+$Tb.$B$4-2)/$Tb.$B$3)&CAR(10)&SI($Tb.$B$6=1;1+ARRONDI(($Tb.$B$2+(COLONNE()+LIGNE()*5-6+$Tb.$B$4-2)/$Tb.$B$3-ENT($Tb.$B$2+(COLONNE()+LIGNE()*5-6+$Tb.$B$4-2)/$Tb.$B$3))*Tb.$B$3);SI($Tb.$B$6=2;$Tb.$B$5+2*(COLONNE()+LIGNE()*5)-14&"/"&$Tb.$B$5+2*(COLONNE()+LIGNE()*5)-13;$Tb.$B$5+COLONNE()+LIGNE()*5-7))
Pour la décortiquer tu peux utiliser la méthode que je t'ai indiquée auparavant, tu peux aussi utiliser l'aide intégrée F1 et /ou l'assistant fonction. Un bon repère dans toutes les formules est CAR(10) qui découpe la formule en trois portions, chacune correspondant à une ligne de l'étiquette.
Pour éditer une formule, tu as intérêt à justifier à gauche la cellule, le mode Édition sera beaucoup plus facile à gérer, quitte à rétablir la justification centrée après.
Tu peux aussi utiliser un éditeur externe, genre Notepad++, qui te permet une coloration syntaxique des parenthèses et aussi de zoomer (on ne peut pas zoomer avec l'assistant fonction). Cela te permettra également de voir simultanément la fonction et le résultat. L'assistant fonction te permet en plus d'avoir les résultats partiels de chaque portion logique de la formule, cela peut t'aider aussi.
Bon courage pour l'analyse de tout ça !
Cordialement,
Jean-Louis
Pièces jointes
Egide_20190430_JLC02.ods
(38.97 Kio) Téléchargé 38 fois
LibO 7.6.5.2 (x64 avec Java 1.8.0_401) et AOO 4.1.15 (avec Java x32 1.8.0_381), Windows 7 Édition Intégrale 64 SP1
Egide
NOOuvel adepte
NOOuvel adepte
Messages : 15
Inscription : 30 avr. 2019 15:33

Re: [Résolu] Conserver les sauts de ligne d'une incrémentati

Message par Egide »

Bonjour,

Désolée ça fait déjà 3h que je suis dessus mais je ne comprends pas du tout. J'ai vraiment essayé de décortiquer etc mais je ne comprends pas.

Je ne comprends pas à quoi sert et comment fonctionne la fonction COLONNE ou LIGNE
Je ne comprends pas pourquoi la mettre ajoute 1
Je ne comprends pas pourquoi tu as mis *5-6 et ajoute les TB en plus

Je ne comprends pas du tout pourquoi tu as formé cette fonction ainsi. Je voulais savoir vraiment concrètement pourquoi avoir utilisé telle ou telle fonction, et pourquoi avoir mit telle ou telle truc mais là je ne comprends vraiment pas. ><

Désolée merci quand même pour l'aide !
Dernière modification par Egide le 13 mai 2019 14:38, modifié 1 fois.
Windows 10, OpenOffice 4.1.7
Xtof68
Fraîchement OOthentifié
Messages : 6
Inscription : 05 déc. 2018 10:59

Re: [Résolu] Conserver les sauts de ligne d'une incrémentati

Message par Xtof68 »

Je ne comprends pas à quoi sert et comment fonctionne la fonction COLONNE ou LIGNE
Je ne comprends pas pourquoi la mettre ajoute 1
Bonjour
En fait, les fonctions LIGNE() et COLONNE() renvoient le numéro de la ligne, ou de la colonne, courante, il est donc logique que, de les étirer sur des cellules voisines, que ce soit horizontalement ou verticalement, provoque l'incrémentation des valeurs que l'une ou l'autre retournera. Juste à titre de test, étirer une formule "ligne" à l'horizontale de A1, vers B1 puis C1, renverra toujours la même valeur.
LibreOffice 5.2.3.3 sous Windows 7 Professionnel
Avatar de l’utilisateur
Jean-Louis Cadeillan
GourOOu
GourOOu
Messages : 5732
Inscription : 03 janv. 2009 00:56

Re: [Résolu] Conserver les sauts de ligne d'une incrémentati

Message par Jean-Louis Cadeillan »

Bonsoir,
Ci-joint un fichier explicatif de la formule utilisée dans la feuille Etiquettes03, avec :
  • un glossaire des opérateurs et fonctions utilisés, y compris des liens vers l'aide en ligne ;
  • la formule développée avec une indentation fonctionnelle, pour mieux distinguer les parties de la formule ;
  • une série de bacs à sable BàS01 à BàS15 qui reprennent chacun une partie de la formule (la correspondance de ces BàSxx est faite sur la formule développée), chaque bac à sable est rempli sur les cellules B1 à F7, pour voir comment se passe l'incrémentation de cette partie de la formule. Un commentaire explicatif est proposé en G1 sur chaque bac à sable ;
  • Tb, bien sûr, le tableau de bord nécessaire à Etiquettes03.
J'ai donc mis en œuvre ce que je te proposais dans mon précédent message. J'espère que ça t'aidera à décortiquer la formule...
Merci à Xtof68 pour sa participation :wink: (Voir BàS01)
Cordialement,
Jean-Louis
Pièces jointes
Egide_20190430_JLC03.ods
(28.68 Kio) Téléchargé 43 fois
LibO 7.6.5.2 (x64 avec Java 1.8.0_401) et AOO 4.1.15 (avec Java x32 1.8.0_381), Windows 7 Édition Intégrale 64 SP1
Verrouillé