IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

APIs Google Discussion :

Envoie D'un contrat (1 seul onglet) sur Google Sheet


Sujet :

APIs Google

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    janvier 2023
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : janvier 2023
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Envoie D'un contrat (1 seul onglet) sur Google Sheet
    Bonjour a Tous

    J'ai fais ce code pour l'envoie d'un contrat automatisé

    Toute fois a chaque fois ca m'envoie le fichier en entier

    Pourriez vous m'aider ?

    Merci a toi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    // @ts-nocheck
    function envoiecontrat() {
     
    var ui = SpreadsheetApp.getUi();
    var Contrat = SpreadsheetApp.openById('1Xwhn7zQWKev5IzX2R5FgFcMdoJzAWCNZYMri3rGfQzc');
    Logger.log(Contrat.getName()); 
     
    var colis=Contrat.getRange('D30').getValue();
     
    var result=ui.alert('Confirmation du contrat','Confirmez vous le contrat '+colis+' ?', ui.ButtonSet.YES_NO);
     
    if (result == ui.Button.NO){
     
      ui.alert('Contrat non créé','Vous pouvez corriger',ui.ButtonSet.OK);
     
      }else{
     
        var sender = Session.getActiveUser().getEmail();
        var receiver = Contrat.getSheetByName('Contrat').getRange('A58').getValue();
        var serveur = Contrat.getSheetByName('Contrat').getRange('B10').getValue();
        var mailserveur = Contrat.getSheetByName('Contrat').getRange('A58').getValue();
     
        MailApp.sendEmail(receiver, "Contrat pour "+serveur, "Bonjour Veuillez trouver votre contrat en pièce jointe. Cordialement", {
          name : "Votre Contrat",
          cc : 'academie.ic.lyon@gmail.com',
          attachments : [Contrat.getAs(MimeType.PDF).setName("Contrat")]})
     
          MailApp.sendEmail(message);
      SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Contrat").activate();
     
        ui.alert('Contrat Transmis','Vous allez recevoir un mail de Confirmation',ui.ButtonSet.OK);
     
    }}

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    septembre 2010
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : septembre 2010
    Messages : 745
    Points : 1 084
    Points
    1 084
    Par défaut
    c'est normal, tu envoies un classeur pas un onglet, comme si tu utilisais un fichier excel
    et tu transformes (si je lis bien le code) tout le fichier Contrat en pdf; à voir si tu ne peux convertir qu'un onglet du fichier

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    janvier 2023
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : janvier 2023
    Messages : 3
    Points : 1
    Points
    1
    Par défaut bien entendu
    Merci j'ai beau suivre des tutos sur youtube

    Je n'arrive pas a le faire

    As tu un brin de code pour m'aider?

    Merci

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    septembre 2010
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : septembre 2010
    Messages : 745
    Points : 1 084
    Points
    1 084
    Par défaut
    A priori, l'idée serait de copier la feuille dans un nouveau classeur et convertir ce classeur en pdf
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    // @ts-nocheck
    function envoiecontrat() {
     
    var ui = SpreadsheetApp.getUi();
    var Contrat = SpreadsheetApp.openById('1Xwhn7zQWKev5IzX2R5FgFcMdoJzAWCNZYMri3rGfQzc');
    Logger.log(Contrat.getName()); 
     
    var colis=Contrat.getRange('D30').getValue();
     
    var result=ui.alert('Confirmation du contrat','Confirmez vous le contrat '+colis+' ?', ui.ButtonSet.YES_NO);
     
    if (result == ui.Button.NO){
     
      ui.alert('Contrat non créé','Vous pouvez corriger',ui.ButtonSet.OK);
     
      }else{
     
        var sender = Session.getActiveUser().getEmail();
        var receiver = Contrat.getSheetByName('Contrat').getRange('A58').getValue();
        var serveur = Contrat.getSheetByName('Contrat').getRange('B10').getValue();
        var mailserveur = Contrat.getSheetByName('Contrat').getRange('A58').getValue();
        // Création d'une copie de la feuille
        var source = SpreadsheetApp.getActiveSpreadsheet(); //source est le classeur actif
        var sheet = source.getSheets()[0]; // identifie la feuille à copier (indice 0 pour le 1er onglet/feuille); à adapter au besoin (peut être .getSheetByName("name")
        var destination = SpreadsheetApp.create("Contrat"); // créé et définit le nom du nouveau classeur
        sheet.copyTo(destination); // Copie de la feuille dans le nouveau classeur
        sheet=destination.getSheets()[0].activate(); // active la 1ère feuille du nouveau classeur
        destination.deleteActiveSheet(); // supprime la feuille active du nouveau classeur (par défaut, un classeur a une feuille, qu'il faut alors supprimer)
     
        /// on passe alors le nouveau classeur à sendEmail
        MailApp.sendEmail(receiver, "Contrat pour "+serveur, "Bonjour Veuillez trouver votre contrat en pièce jointe. Cordialement", {
          name : "Votre Contrat",
          cc : 'academie.ic.lyon@gmail.com',
          attachments : [destination.getAs(MimeType.PDF).setName("Contrat")]})
     
          //MailApp.sendEmail(message); // ligne inutile il me semble
         SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Contrat").activate();
     
        ui.alert('Contrat Transmis','Vous allez recevoir un mail de Confirmation',ui.ButtonSet.OK);
     
    }}
    PS: on est d'accord que c'est de l'Apps Script de Google ?

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    janvier 2023
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : janvier 2023
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Merci
    Merci pour votre réponse

    Toute fois ca me copie et envoie uniquement une Cellule Sur page blanche

    Mais c'est déjà un bon debut

    Je pense que c'est la que je pèche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var sheet = source.getSheets()[0]; // identifie la feuille à copier (indice 0 pour le 1er onglet/feuille); à adapter au besoin (peut être .getSheetByName("name")
    J'ai beau mettre 2 en Onglet ca fonctionne pas

    Nom : Capture d’écran 2023-03-09 140942.jpg
Affichages : 39
Taille : 18,7 Ko

    Merci a vous

Discussions similaires

  1. Les macros s'invitent sur Google Sheets, le tableur en ligne de Google
    Par Stéphane le calme dans le forum Actualités
    Réponses: 3
    Dernier message: 18/04/2018, 09h20
  2. Copier/coller en Javascript sur google Sheet
    Par Laurent77165 dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 10/10/2016, 10h30
  3. [Google Sheets] Conditions sur google Sheet
    Par Pavel37 dans le forum APIs Google
    Réponses: 0
    Dernier message: 11/05/2015, 13h25
  4. Plusieurs TCD sur un seul onglet
    Par OMthebest dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 02/06/2008, 17h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo