[Résolu] Fiches individuelles à partir d'une table

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.
Coucoucemoi
NOOuvel adepte
NOOuvel adepte
Messages : 24
Inscription : 12 juil. 2018 12:09

[Résolu] Fiches individuelles à partir d'une table

Message par Coucoucemoi »

Bonjour à tous,
Ceci est mon premier message sur ce forum.
La réponse à ma question s'y trouve peut-être déjà, mais désolé je ne vois pas à partir de quels mots-clés chercher :oops:

Je dispose d'un tableau des coordonnées d'un groupe de personne, de la forme :
Prénom | Nom_de_Famille | Date_naissance |Téléphone | Adresse
Jean | NAIMAR | 1/1/1950 | 01234567 | rue Tartempion
Berthe | OGRANDSPIEDS | 12/12/1912 | 98765432 | Grande rue

(avec beaucoup plus de lignes et de colonnes)

et voudrais à partir de cela pouvoir imprimer des fiches individuelles sur deux colonnes, de la forme :
Prénom : Jean
Nom_de_Famille : NAIMAR
Date_naissance : 1/1/1950
Téléphone : 01234567
etc.

Manuellement, pas de problème :
  • Je sélectionne la ligne de titres de champs, puis la ligne de la personne concernée par Ctrl-sélection,
    Je crée une nouvelle feuille,
    J'y fait un collage spécial / transposer, et voilà, plus qu'à imprimer la feuille.
Mais avec beaucoup de lignes, ça promet d'être fastidieux.
Je suis donc à la recherche d'un moyen d'automatiser cela.
J'ai regardé du côté de la "Table de pilote" mais ça me paraît bien compliqué à utiliser, et je doute que ça puisse sortir un résultat sur n feuilles.

Importer mon tableau dans un SGBD ferait sans doute l'affaire, mais je n'en ai plus sous la main, et si c'est faisable sans sortir de LibreOffice Calc, ça devrait être plus rapide.

Merci d'avance
Dernière modification par Coucoucemoi le 18 juil. 2018 16:01, modifié 2 fois.
À la maison : MacOS 10.14.4, LibreOffice 6.3.5
Au boulot : Windows 10 Pro, LibreOffice 6.1.6.3 (Obligation de version, je n'ai pas la main sur les mises à jour).
Avatar de l’utilisateur
rollmops
PassiOOnné
PassiOOnné
Messages : 669
Inscription : 20 déc. 2017 14:45

Re: Création de fiches individuelles à partir d'une table

Message par rollmops »

Bonjour,

Le publipostage est ton ami
OpenOffice 4.1.15 - Windows 10
Avatar de l’utilisateur
Jean-Louis Cadeillan
GourOOu
GourOOu
Messages : 5753
Inscription : 02 janv. 2009 23:56

Re: Création de fiches individuelles à partir d'une table

Message par Jean-Louis Cadeillan »

Bonjour et bienvenue,
Coucoucemoi a écrit :si c'est faisable sans sortir de LibreOffice Calc
Oui, tu crées une feuille Fiches :
  • • Format > Zones d'impression > Éditer :
    Coucoucemoi_20180712_JLC01.jpg
    • Choisir la dimension de la fiche :
    Coucoucemoi_20180712_JLC02.jpg
    en supprimant ou non En-tête et Pied-de-page
    • faire des sauts de colonnes pour chaque fiche à partir de la deuxième (sélectionner la colonne C de Fiches, puis Insertion > Insérer un saut de page > Saut de colonne, puis sélectionner la colonne D et Maj+Ctrl+Y, etc.)
    • en A1, saisir :

    Code : Tout sélectionner

    =TRANSPOSE(Donnees.$A$1:$J$101)
    Donnees étant la feuille où tu saisis les informations, à valider par Ctrl+Maj+Entrée, c'est une formule matricielle.
Voir ci-joint.
Remarque : pour la saisie sur la feuilles Donnees, tu peux aussi utiliser la commande Données > Formulaire, qui permet de faire une saisie par fiche.
Cordialement,
Jean-Louis
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibO 7.6.6.3 (x64 avec Java 1.8.0_411) et AOO 4.1.15 (avec Java x32 1.8.0_381), Windows 7 Édition Intégrale 64 SP1
Jeff
GourOOu
GourOOu
Messages : 9632
Inscription : 18 sept. 2006 09:40
Localisation : France

Re: Création de fiches individuelles à partir d'une table

Message par Jeff »

Bonjour à tous,
Coucoucemoi a écrit :sans sortir de LibreOffice Calc
Jean-Louis réponds parfaitement à la demande :wink:
Coucoucemoi a écrit :un SGBD ferait sans doute l'affaire, mais je n'en ai plus sous la main
Pourtant LibO doit être "livré" avec Base, et là c’est rollmops qui te donne la piste à suivre :
Coucoucemoi.png
A +
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Coucoucemoi
NOOuvel adepte
NOOuvel adepte
Messages : 24
Inscription : 12 juil. 2018 12:09

Re: Création de fiches individuelles à partir d'une table

Message par Coucoucemoi »

Bonjour à tous,

et merci pour vos réponses aussi rapides que précises et détaillée.
J'ai suivi les instructions de Jean-Louis, avec cependant un ordre qu'il m'a semblé devoir être un peu différent :
1. Créer la feuille Fiches
2. La remplir avec =TRANSPOSE...
3. Insérer les sauts de colonnes
4. Définir la zone d'impression et le format de page

Et ça marche, super !
J'ai ensuite pu éditer la mise en forme de ma fiche (certains champs en gras, des lignes plus espacées, etc.) en intervenant dans la feuille Fiches : les mises en forme sont bien traduites dans les fiches imprimées.

Cependant je rencontre le souci suivant : j'ai ajouté après coup deux colonnes dans Données, avec des contenus de champs vides, afin qu'elles apparaissent comme des lignes de sous-titres sur mes fiches. Je constate que la formule =TRANSPOSE a été automatiquement modifiée pour prendre en compte des nouvelles colonnes : elle est passée de {=TRANSPOSE(Donnees.$A$1:$T$13)} à {=TRANSPOSE(Donnees.$A$1:$V$13)} pour intégrer ces deux colonnes supplémentaires.
Mais sur la feuille Fiche, il n'y a toujours que 20 lignes : les deux derniers champs ont été "éjectés" de cette feuille. J'imagine que c'est parce que les cellules de ces lignes sont vides alors qu'elles devraient contenir {=TRANSPOSE(Donnees.$A$1:$V$13)} comme celles du dessus, mais pas moyen de faire des copier-coller dans ce qui est en fait une matrice.

Merci d'avance pour la solution.

S'agissant de la saisie des données via Formulaire ou Base, ce n'est pas d'actualité. En effet, je ne saisis pas les données, elles sont issues d'un tableur exporté d'un formulaire Framaforms (dans lequel je demande aux personnes concernées de saisir leurs données).
À la maison : MacOS 10.14.4, LibreOffice 6.3.5
Au boulot : Windows 10 Pro, LibreOffice 6.1.6.3 (Obligation de version, je n'ai pas la main sur les mises à jour).
Avatar de l’utilisateur
Jean-Louis Cadeillan
GourOOu
GourOOu
Messages : 5753
Inscription : 02 janv. 2009 23:56

Re: Création de fiches individuelles à partir d'une table

Message par Jean-Louis Cadeillan »

Bonjour,
Tu as deux solutions :
  • mise à jour d'une formule matricielle qui change de dimensions :
    • cliquer sur A1
    • Ctrl + / (la barre oblique du clavier numérique), ce qui sélectionne l'ensemble de la matrice (ici Ctrl+*, qui sélectionne toutes les cellules remplies contiguës, doit marcher aussi)
    • F2 (édite la cellule)
    • Ctrl + A sélectionne le contenu de la cellule
    • Ctrl + C le copie dans le presse papier
    • Echap (désélectionne la cellule)
    • Suppr (supprime la matrice actuelle, mais les sauts de colonne sont préservés)
    • Double-cliquer sur A1 (ou cliquer sur A1 puis F2)
    • Ctrl + V colle la formule du presse-papier dans la cellule
    • Maj+Ctrl+Entrée
  • si tu dois changer souvent les dimensions de la matrice, alors choisis plutôt une formule non matricielle :
    • créer une copie de ta feuille Fiches (par exemple Fiches1), pour éviter toute fausse manip
    • sur Fiches1, supprimer la matrice : Ctrl+/ puis Suppr (mais les sauts de colonne sont préservés)
    • cliquer sur A1
    • saisir la formule suivante

      Code : Tout sélectionner

      =TRANSPOSE($Donnees.A1)
       Ajout : J'ai dû être victime d'une hallucination, TRANSPOSE() non matriciel ne transpose rien du tout :oops: Voici une formule non matricielle qui transpose bien :

      Code : Tout sélectionner

      =INDEX(Donnees;COLONNE(A1);LIGNE(A1))
      Donnees est ici une plage nommée correspondant à l'ensemble des cellules utiles de la feuille Donnees, voir
      Coucoucemoi_20180712_JLC03.ods
       
    • remarque : ce n'est pas une formule matricielle, donc à valider simplement par Entrée
    • tirer cette formule vers le bas ou vers la droite autant que nécessaire
Cordialement,
Jean-Louis
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Jean-Louis Cadeillan le 19 juil. 2018 13:01, modifié 2 fois.
LibO 7.6.6.3 (x64 avec Java 1.8.0_411) et AOO 4.1.15 (avec Java x32 1.8.0_381), Windows 7 Édition Intégrale 64 SP1
Coucoucemoi
NOOuvel adepte
NOOuvel adepte
Messages : 24
Inscription : 12 juil. 2018 12:09

Re: Création de fiches individuelles à partir d'une table

Message par Coucoucemoi »

Merci Jean-Louis.
J'ai suivi la première méthode, qui a fonctionné parfaitement.
J'avais un doute sur le bon fonctionnement de la touche F2, car j'utilise un clavier Apple sur un PC sous Windows, mais ça a marché.
Sinon, quelle aurait été la commande alternative permettant d'éditer le contenu de la cellule ? Un double-clic ne fonctionne pas ("Impossible de modifier uniquement une partie de la matrice").

Pour de prochaines fois, j'essaierai de créer la feuille Fiches selon ta méthode 2 (formule non matricielle). Présente-t-elle des inconvénients par rapport à une formule matricielle ?

Question annexe un peu hors sujet : est-il possible de mettre comme en-tête d'une fiche le contenu d'un des champs ? La commande Insertion / En-têtes et pieds de pages... ne permet, au moyen des icônes proposées, que l'insertion d'un nom de fichier, d'un titre, du numéro de page, de la date et de l'heure.
À la maison : MacOS 10.14.4, LibreOffice 6.3.5
Au boulot : Windows 10 Pro, LibreOffice 6.1.6.3 (Obligation de version, je n'ai pas la main sur les mises à jour).
Avatar de l’utilisateur
Jean-Louis Cadeillan
GourOOu
GourOOu
Messages : 5753
Inscription : 02 janv. 2009 23:56

Re: Création de fiches individuelles à partir d'une table

Message par Jean-Louis Cadeillan »

Coucoucemoi a écrit :quelle aurait été la commande alternative permettant d'éditer le contenu de la cellule ?
Tu cliques directement dans la ligne de saisie.
Coucoucemoi a écrit :Présente-t-elle des inconvénients par rapport à une formule matricielle ?
Pour les paresseux comme moi, l'inconvénient de devoir tirer une formule, parfois sur un nombre de cellules considérable :wink: ; sinon, une matrice est bien protégée des fausses manipulations, ça peut être un avantage, mais aussi, comme tu as pu le voir en cas de modification... un inconvénient.
Coucoucemoi a écrit :est-il possible de mettre comme en-tête d'une fiche le contenu d'un des champs ?
Non (en tout cas pas sans macro), par contre, tu peux très bien créer une ligne de cellules au-dessus de ta matrice et y mettre une formule qui va chercher le champ que tu souhaites (par exemple en B1, tu mets Remarque : pour décaler ta matrice, il faudra la supprimer et la recréer à partir d'A2.
Voir ci-joint.
NB : je viens de me rendre compte que tu dois aussi modifier la zone d'impression par Format > Zone d'impression > Éditer si tu veux que tous tes champs apparaissent sur chaque fiche à l'impression (c'est valable aussi pour le message précédent)
A+
Jean-Louis
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibO 7.6.6.3 (x64 avec Java 1.8.0_411) et AOO 4.1.15 (avec Java x32 1.8.0_381), Windows 7 Édition Intégrale 64 SP1
Coucoucemoi
NOOuvel adepte
NOOuvel adepte
Messages : 24
Inscription : 12 juil. 2018 12:09

Re: Création de fiches individuelles à partir d'une table

Message par Coucoucemoi »

Merci, c'est impec maintenant.

Il reste juste un détail : j'ai 12 enregistrements, mais l'impression me crée 13 fiches, la première ne contenant que les en-têtes de champs de la colonne A, donc une fiche vierge.
Pas trop gênant car il suffit que je pense à demander l'impression des pages 2-13, mais y a-t-il moyen de corriger ça ?
À la maison : MacOS 10.14.4, LibreOffice 6.3.5
Au boulot : Windows 10 Pro, LibreOffice 6.1.6.3 (Obligation de version, je n'ai pas la main sur les mises à jour).
Avatar de l’utilisateur
Jean-Louis Cadeillan
GourOOu
GourOOu
Messages : 5753
Inscription : 02 janv. 2009 23:56

Re: Création de fiches individuelles à partir d'une table

Message par Jean-Louis Cadeillan »

Coucoucemoi a écrit : la première ne contenant que les en-têtes de champs de la colonne A
Tu as dû créer un saut de colonne de trop. Le saut de colonne se repère sur la feuille de calcul par une ligne verticale bleue en pointillé : la première ligne doit se situer entre les colonnes B et C, comme je t'avais indiqué :
Jean-Louis Cadeillan a écrit :sélectionner la colonne C de Fiches, puis Insertion > Insérer un saut de page > Saut de colonne
Or tu dois en avoir une entre les colonnes A et B. Pour enlever un saut de colonne, Affichage > Saut de page > cliquer-glisser le premier trait vertical bleu gauche jusque sur les en-têtes de ligne : il va disparaître, puis Affichage > Normal.
A+
Jean-Louis
LibO 7.6.6.3 (x64 avec Java 1.8.0_411) et AOO 4.1.15 (avec Java x32 1.8.0_381), Windows 7 Édition Intégrale 64 SP1
Coucoucemoi
NOOuvel adepte
NOOuvel adepte
Messages : 24
Inscription : 12 juil. 2018 12:09

Re: Création de fiches individuelles à partir d'une table

Message par Coucoucemoi »

Ben non, j'ai suivi tes instructions à la lettre, et avais bien noté l'apparition des traits bleus à chaque création de saut de colonne.
Et je confirme que je n'en ai pas entre les colonnes A et B, mais bien entre B et C, et les suivantes.

Pour voir, j'en ai ajouté un entre A et B --> même résultat.
Je l'ai donc supprimé (merci des explications car ce n'est pas trivial) pour revenir à la situation antérieure : pas de saut entre A et B, et là même topo j'ai toujours ma première fiche "vide".
À la maison : MacOS 10.14.4, LibreOffice 6.3.5
Au boulot : Windows 10 Pro, LibreOffice 6.1.6.3 (Obligation de version, je n'ai pas la main sur les mises à jour).
Avatar de l’utilisateur
Jean-Louis Cadeillan
GourOOu
GourOOu
Messages : 5753
Inscription : 02 janv. 2009 23:56

Re: Création de fiches individuelles à partir d'une table

Message par Jean-Louis Cadeillan »

Les sauts de page manuels (pointillés bleus) peuvent ne commencer qu'entre B et C, mais tu peux avoir un saut automatique entre A et B (pointillé gris) qui peut être dû :
  • soit à une trop grande largeur de la colonne A
  • soit à une trop grande largeur de la colonne B
As-tu ces pointillés gris ? Sinon en mode Affichage > Saut de page, ce saut automatique se traduit par un trait vertical bleu plus foncé entre A et B : est-il présent dans ce mode ?
Voilà quelques pistes,
A+
Jean-Louis
LibO 7.6.6.3 (x64 avec Java 1.8.0_411) et AOO 4.1.15 (avec Java x32 1.8.0_381), Windows 7 Édition Intégrale 64 SP1
Coucoucemoi
NOOuvel adepte
NOOuvel adepte
Messages : 24
Inscription : 12 juil. 2018 12:09

Re: Création de fiches individuelles à partir d'une table

Message par Coucoucemoi »

Décidément tu es incollable :bravo: !

Pas vraiment un pointillé gris, mais effectivement un trait vertical à peine plus marqué que les traits séparateurs de lignes ; et en mode Affichage > Sauts de pages, un trait à peine plus foncé, mais il fallait avoir l'oeil.

Et c'était bien dû à une de tes hypothèses : la colonne B (de même que toutes les autres) était inutilement large, j'ai donc tout redimensionné par double-clic sur chacun des séparateurs de colonnes, et hop, je n'ai plus cette fiche vierge.

Donc au final un grand merci, je pense qu'on peut passer ce sujet en [Résolu] (c'est un admin qui peut faire ça, ou puis-je modifier le sujet moi-même ?).
À la maison : MacOS 10.14.4, LibreOffice 6.3.5
Au boulot : Windows 10 Pro, LibreOffice 6.1.6.3 (Obligation de version, je n'ai pas la main sur les mises à jour).
Avatar de l’utilisateur
Jean-Louis Cadeillan
GourOOu
GourOOu
Messages : 5753
Inscription : 02 janv. 2009 23:56

Re: Création de fiches individuelles à partir d'une table

Message par Jean-Louis Cadeillan »

Normalement, c'est à l’utilisateur de le faire, dans le titre de ton premier message du fil de discussion : coche verte + [Résolu]. Voir instructions ici et plus bas.
Cordialement,
Jean-Louis
LibO 7.6.6.3 (x64 avec Java 1.8.0_411) et AOO 4.1.15 (avec Java x32 1.8.0_381), Windows 7 Édition Intégrale 64 SP1
Coucoucemoi
NOOuvel adepte
NOOuvel adepte
Messages : 24
Inscription : 12 juil. 2018 12:09

Re: Création de fiches individuelles à partir d'une table

Message par Coucoucemoi »

J'ai tenté de le faire, mais n'ai pu ajouter que "[Résol" : il semble que j'aie atteint la longueur maximale d'un titre de sujet :oops:
Donc j'ai abandonné pour ne pas faire un truc bâtard...
À la maison : MacOS 10.14.4, LibreOffice 6.3.5
Au boulot : Windows 10 Pro, LibreOffice 6.1.6.3 (Obligation de version, je n'ai pas la main sur les mises à jour).
Avatar de l’utilisateur
Jean-Louis Cadeillan
GourOOu
GourOOu
Messages : 5753
Inscription : 02 janv. 2009 23:56

Re: Création de fiches individuelles à partir d'une table

Message par Jean-Louis Cadeillan »

En enlevant "Création de", pas de perte de sens et le label [Résolu] passe !
A+
Jean-Louis
 Ajout : Voir mon message du 18 Juil 2018 11:55 : TRANSPOSE() doit être matriciel sinon ça ne fonctionne pas. Pour une formule non matricielle, utiliser INDEX() en inversant les indices de ligne et de colonne. 
LibO 7.6.6.3 (x64 avec Java 1.8.0_411) et AOO 4.1.15 (avec Java x32 1.8.0_381), Windows 7 Édition Intégrale 64 SP1