Macro sous condition
Bonjour,
Comment transformer cette macro Excel en Sheet : If Application.WorksheetFunction.CountA(Worksheets("Fichier Suivi de livraison").Range("K6")) = 1 Then
Merci
Même cette fonction excel ne me dit rien !
Explique ce que tu veux plutôt. O peut trouver des fonctions natives google sheets qui font le job.
Je souhaite envoyer une page par mail si K6=1 si =0 ne pas envoyer
function ENVOIBS() {
If Application.WorksheetFunction.CountA(Worksheets("Fichier Suivi de livraison").Range("K6")) = 1 Then
DocumentApp.getActiveDocument();
DriveApp.getFiles();
// variables
const doc = SpreadsheetApp.getActive();
const docID = '1RsMfb1--Bdkc8k6OifTL_4efrzPpLa60NrPFzcMTbcg';
const feuilleID = '787784667';
const email = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('BS1').getRange('I5').getValue();
const dossier = DriveApp.getFolderById('1SqovoqlU9EvG-Lo9JarFUtJMC5TVi65K');
const d = Utilities.formatDate(new Date(), "GMT+1", "yyyyMMdd")
const fichier = 'BS' + SpreadsheetApp.getActiveSpreadsheet().getSheetByName('BS1').getRange('G7').getValue() + d + ".pdf"
const objet = "BS "+ SpreadsheetApp.getActiveSpreadsheet().getSheetByName('BS1').getRange('G7').getValue();
const corps = "Veuillez trouver ci joint le bon de sortie référencé :" + SpreadsheetApp.getActiveSpreadsheet().getSheetByName('BS1').getRange('G7').getValue();
// Création du fichier pdf
const url = 'https://docs.google.com/spreadsheets/d/' + '1RsMfb1--Bdkc8k6OifTL_4efrzPpLa60NrPFzcMTbcg' + '/export?';
const exportOptions =
'exportFormat=pdf&format=pdf' +
'&size=A4' +
'&portrait=true' + // orientation portrait, false pour paysage
'&fitw=true' + // 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=' + feuilleID;
var params = {method:"GET",headers:{"authorization":"Bearer "+ ScriptApp.getOAuthToken()}};
var reponse = UrlFetchApp.fetch(url + exportOptions, params).getBlob();
// Envoi email avec fichier attaché
GmailApp.sendEmail(email, objet, corps, {
htmlBody: corps,
attachments: [{
fileName: fichier,
content: reponse.getBytes(),
mimeType: "application/pdf"
}]
});
// Sauvegarde du fichier.
dossier.createFile(reponse.setName(fichier));
}
Là tu mélanges du VBA et du GAS !!
Si c'est dans la feuille active ...
function ENVOIBS() {
if ( SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange('K25').getValue()==1 ) {
// ici ton code
}
}
edit : corrigé !
RE ,
Message d'erreur : Erreur de syntaxe : SyntaxError: Unexpected token '{' (ligne : 19, fichier : Code.gs)
et si j'enlève "{"
17:48:24ErreurReferenceError: If is not definedENVOIBS@ Code.gs:19
Merci de ton aide.
function ENVOIBS() {
If (SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange('K25').getValue()=1 ) {
DocumentApp.getActiveDocument();
DriveApp.getFiles();
// variables
const doc = SpreadsheetApp.getActive();
const docID = '1RsMfb1--Bdkc8k6OifTL_4efrzPpLa60NrPFzcMTbcg';
const feuilleID = '787784667';
const email = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('BS1').getRange('I5').getValue();
const dossier = DriveApp.getFolderById('1SqovoqlU9EvG-Lo9JarFUtJMC5TVi65K');
const d = Utilities.formatDate(new Date(), "GMT+1", "yyyyMMdd")
const fichier = 'BS' + SpreadsheetApp.getActiveSpreadsheet().getSheetByName('BS1').getRange('G7').getValue() + d + ".pdf"
const objet = "BS "+ SpreadsheetApp.getActiveSpreadsheet().getSheetByName('BS1').getRange('G7').getValue();
const corps = "Veuillez trouver ci joint le bon de sortie référencé :" + SpreadsheetApp.getActiveSpreadsheet().getSheetByName('BS1').getRange('G7').getValue();
// Création du fichier pdf
const url = 'https://docs.google.com/spreadsheets/d/' + '1RsMfb1--Bdkc8k6OifTL_4efrzPpLa60NrPFzcMTbcg' + '/export?';
const exportOptions =
'exportFormat=pdf&format=pdf' +
'&size=A4' +
'&portrait=true' + // orientation portrait, false pour paysage
'&fitw=true' + // 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=' + feuilleID;
var params = {method:"GET",headers:{"authorization":"Bearer "+ ScriptApp.getOAuthToken()}};
var reponse = UrlFetchApp.fetch(url + exportOptions, params).getBlob();
// Envoi email avec fichier attaché
GmailApp.sendEmail(email, objet, corps, {
htmlBody: corps,
attachments: [{
fileName: fichier,
content: reponse.getBytes(),
mimeType: "application/pdf"
}]
});
// Sauvegarde du fichier.
dossier.createFile(reponse.setName(fichier));
} }
désolé, if s'écrit en minuscule
if ( SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange('K25').getValue()==1 ) {
pour éviter des allers/retours, partage un fichier
Probleme resolu merci