Macro google sheet devis

Bonjour,

Je souhaiterais modifier une macro, celle-ci me sert à créer un nouveau numéro de devis automatiquement.

Seulement je voudrais que le numéro se crée en fonction de l'année est du mois.

exemple: numéro précédent 2103019 je crée un devis le 21/04 mon numéro sera alors 2104020 ect..

Avec la macro que j'ai actuellement l'année et le mois ne se modifie pas la base reste 2103

function nouveauDevis(){

var Spreadsheet = SpreadsheetApp.getActive();

Spreadsheet.setActiveSheet(Spreadsheet.getSheetByName('DEVIS/FACTURE'), true);

var classeur = SpreadsheetApp.getActiveSpreadsheet();

var feuille = classeur.getSheetByName('DEVIS/FACTURE');

var ligne = getLastDataRow(feuille)

var devis = feuille.getRange('A'+ligne).getValue()

var regExp = new RegExp("([0-9]+)", "g");

var nouveau = regExp.exec(devis)[0]*1 + 1 feuille.getRange('A'+(ligne+1)).setValue('D'+nouveau)

}
function getLastDataRow(sheet) {

var lastRow = sheet.getLastRow();

var range = sheet.getRange("A" + lastRow);

if (range.getValue() !== "") {

return lastRow;

} else {

return range.getNextDataCell(SpreadsheetApp.Direction.UP).getRow();

}

Pourriez-vous m'aider?

Bonjour,

quelques recommandations :

merci d'avance

Bonjour,

Merci pour les indications.

https://docs.google.com/spreadsheets/d/1e2ErbgkyAOIVnOM6m8jWXqZYqPUSKCgtqukPDRFIu4E/copy

function nouveauDevis(){

var Spreadsheet = SpreadsheetApp.getActive();

Spreadsheet.setActiveSheet(Spreadsheet.getSheetByName('DEVIS/FACTURE'), true);

var classeur = SpreadsheetApp.getActiveSpreadsheet();

var feuille = classeur.getSheetByName('DEVIS/FACTURE');

var ligne = getLastDataRow(feuille)

var devis = feuille.getRange('A'+ligne).getValue()

var regExp = new RegExp("([0-9]+)", "g");

var nouveau = regExp.exec(devis)[0]*1 + 1 feuille.getRange('A'+(ligne+1)).setValue('D'+nouveau)

}
function getLastDataRow(sheet) {

var lastRow = sheet.getLastRow();

var range = sheet.getRange("A" + lastRow);

if (range.getValue() !== "") {

return lastRow;

} else {

return range.getNextDataCell(SpreadsheetApp.Direction.UP).getRow();

}

je t'ai demandé une autorisation d'accès, ou bien partage le comme ceci https://www.sheets-pratique.com/fr/cours/partage

ok, merci pour le partage, je regarde cela en fin de matinée

voici

function nouveauDevis(){
  var Spreadsheet = SpreadsheetApp.getActive();
  Spreadsheet.setActiveSheet(Spreadsheet.getSheetByName('DEVIS/FACTURE'), true);

  var classeur = SpreadsheetApp.getActiveSpreadsheet();
  var feuille = classeur.getSheetByName('DEVIS/FACTURE');
  var ligne = getLastDataRow(feuille)
  var devis = feuille.getRange('A'+ligne).getValue()
  var regExp = new RegExp("([0-9]+)", "g");
  var racine = regExp.exec(devis)[0]
  var d = new Date()
  if(Math.floor(racine/1000)*1 != Utilities.formatDate(d,"GMT+1",'yyMM')*1){
    var nouveau = (Utilities.formatDate(d,"GMT+1",'yyMM')*1000 + 1)
  }else{
    var regExp = new RegExp("([0-9]+)", "g");
    var nouveau = regExp.exec(devis)[0]*1 + 1
  }
  feuille.getRange('A'+(ligne+1)).setValue('D'+nouveau)
}

function getLastDataRow(sheet) {
  var lastRow = sheet.getLastRow();
  var range = sheet.getRange("A" + lastRow);
  if (range.getValue() !== "") {
    return lastRow;
  } else {
    return range.getNextDataCell(SpreadsheetApp.Direction.UP).getRow();
  }              
}

Merci cela fonctionne!

Rechercher des sujets similaires à "macro google sheet devis"