Publipostage à partir d'une mise en forme conditionnelle

Bonjour à tous,

Nous avons lancé un Google Form afin que les domaines participants à nos événements puissent se positionner sur un certain nombre de dates en fonction de leurs disponibilités. Une fois toutes leurs réponses collectées, nous les avons transformées en Google Sheets.

Nous avons retravaillé le fichier et organisé la répartition entre les participants. Afin de compter le nombre de participants par date, nous avons rempli les cellules avec "1" si le participant était sélectionné pour l'événement. Pour y voir encore plus clair, j'ai utilisé la mise en forme conditionnelle pour que si le "1" était mentionné, la cellule soit toute verte et nous avons coloré la case en rouge si le participant n'est pas sélectionné. Voir la photo ci-jointe.

Maintenant, nous souhaiterions faire un publipostage sous forme de courrier individuel qui contiendra le nom du prestataire ainsi que le nom de toutes les manifestations auxquelles il s'est inscrit (donc ou le chiffre "1" apparaît).

J'ai beau chercher, je n'arrive pas à trouver de solution pour mettre en place... J'ai déjà utilisé Autocrat pour réaliser des publipostages, mais là je pense que c'est la mise en page de notre sheets qui pose problème.

Merci d'avance de votre aide,

inscriptions aux evenements

Bonjour,

pourrais-tu mettre un lien vers ton exemple qui semble déjà anonymisé ? https://www.sheets-pratique.com/fr/cours/partage

merci

Pour y voir encore plus clair, j'ai utilisé la mise en forme conditionnelle pour que si le "1" était mentionné, la cellule soit toute verte et nous avons coloré la case en rouge si le participant n'est pas sélectionné. Voir la photo ci-jointe.

Il n'y a pas de MFC dans le fichier posté... c'est justement là-dessus que je voulais travailler !

Autre point, tu évoques les participants ... mais le tableau n'indique que domaines et événements. Où se trouvent les participants, et à qui faut-il envoyer le courrier. Sous quelle forme ?

En faisant un copier/coller, la MFC a été supprimée.
J'ai réalisé une copie du fichier et anonymisé les données :

https://docs.google.com/spreadsheets/d/1jmQv_nN7co1Ye7RamxCrmBVTDLXnzUgS5lgdSgM4CnY/edit?usp=sharing

Dans l'idée, nous aurions souhaité générer des fichiers docs à partir du tableau et les enregistrer ensuite en PDF. Voir un modèle ci-dessous (non mis en forme)

https://docs.google.com/document/d/14s8EWVPt7R7sR-SuuH9lkApt1JZH7j9ztS6ePmLKGQo/edit?usp=sharing
Merci d'avance de votre réponse,

  1. est-ce qu'il est prévu de l'envoyer par email ? ce qui serait plus simple ....
  2. pourquoi y a il des colonnes singulières comme H, K et V ?

A vérifier

Mets l'identifiant dans ton drive du dossier de stockage des pdf

Si ok, enlève les // devant la ligne

// var data = form.getRange('A2:AC' + form.getLastRow()).getValues()

et supprime la précédente

const dossier = DriveApp.getFolderById('ici l\'id du dossier de stockage des pdf');
function publi() {
  var form = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Réponses au formulaire 1')
  var data = form.getRange('A2:AC5').getValues()
  // var data = form.getRange('A2:AC' + form.getLastRow()).getValues()
  var events = form.getRange('A1:AC1').getValues().flat()
  data.forEach(function (r) {
    var participations = []
    var participant = r[1]
    var conseiller = r[2]
    r.forEach(function (ok, j) {
      if (ok == 1) { participations.push(events[j]) }
    })
    if (participations.length > 0 && participant != '') {
      publier(participant, conseiller, participations)
    }
  })
}
function publier(participant, conseiller, participations) {
  var d = Utilities.formatDate(new Date(), "GMT+1", "yyyy-MM-dd HH:mm")
  var pub = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Publication')
  pub.getRange('participations').offset(0, -1, pub.getLastRow(),2).clearContent()
  pub.getRange('participant').setValue('Cher⸱e ' + participant)
  pub.getRange('participations').offset(0, 0, participations.length).setValues(transpose([participations]))
  pub.getRange('participations').offset(participations.length + 2, -1).setValue('Votre conseiller⸱e ' + conseiller)
  SpreadsheetApp.flush();
  // Création du fichier pdf
  const url = 'https://docs.google.com/spreadsheets/d/' + SpreadsheetApp.getActiveSpreadsheet().getId() + '/export?';
  const exportOptions =
    'exportFormat=pdf&format=pdf' +
    '&size=A4' +
    '&portrait=true' +                     // orientation portrait, false pour paysage
    '&fitw=false' +                        // pas d'ajustement en largeur
    '&sheetnames=false&printtitle=false' + // pas de nom ni de titre à l'impression
    '&pagenumbers=false&gridlines=false' + // pas de numérotation, pas de grille
    '&fzr=false' +                         // frozen rows = pas de répétition de l'en-tête
    '&gid=' + pub.getSheetId();
  var params = { method: "GET", headers: { "authorization": "Bearer " + ScriptApp.getOAuthToken() } };
  var reponse = UrlFetchApp.fetch(url + exportOptions, params).getBlob();
  dossier.createFile(reponse.setName(participant + ' ' + d));
}
function transpose(a) {
  return Object.keys(a[0]).map(function (c) { return a.map(function (r) { return r[c]; }); });
}

reste encore à mettre en forme la feuille publication

Bonjour,

j'espère ne pas avoir travailler pour rien

un retour sur la proposition ?

Bonjour,

Je te remercie de ton retour. Je suis désolée, j'étais en déplacement toute la semaine dernière et je n'ai pas pu regarder en détail...

Je teste tout ceci dans la journée et je te fais un retour.

Merci beaucoup,

Rechercher des sujets similaires à "publipostage partir mise forme conditionnelle"