Problémes fonction IF lors de l'execution du script Erreur #NAME
J'ai un problème avec une fonction de mon script. Ma formule ne fonctionne pas et affiche l'erreur #NAME?. Pourtant, lorsque je copie-colle cette même formule directement dans une cellule, elle fonctionne correctement. Auriez-vous une solution ?
Voici mon code :
commandesSheet.getRange('M5').setFormula("=IF(J5<0;C5;SI(J5<5000;C5;IF(J5<10000;C5+TEMPS(0;10;0);IF(J5<50000;C5+TEMPS(0;30;0);IF(J5<100000;C5+TEMPS(1;0;0);IF(J5<500000;C5+1;C5+2)))))))");
commandesSheet.getRange('O5').setValue("En cours");J'ai également essayé d'étendre la formule vers le haut et de faire un copier-coller, mais j'obtiens toujours le même problème.
Merci d'avance pour votre aide !
Salut !
Essaye de remplacer TEMPS par TIME je crois que dans GAS il faut impérativement mettre les formules en anglais.
J'ai déjà essayé cela ne fonctionne pas aussi . le plus bizarre c'est quand que je fais copier coller manuel ou quand j'étire aussi ma formule manuellement cela fonctionne correctement .
Bonjour à tous,
Si la formule existe déjà dans le classeur, vous pouvez la copier via le script directement :
Rng1.setFormula(Rng2.getFormula())
En fait, mon script recrée une ligne, copie et colle des informations d'une feuille, puis remet la feuille à zéro. Sur la feuille où les informations sont collées, j'ai une formule qui doit être ajoutée à la fin. Voici le script en entier :
function EnregistrerC1() {
var spreadsheet = SpreadsheetApp.getActive();
var historiqueVentesSheet = spreadsheet.getSheetByName('Historique | Ventes');
var carnetSheet = spreadsheet.getSheetByName('🔵 | CARNET');
var globalVentesSheet = spreadsheet.getSheetByName('Historique | Ventes [Global]');
// Historique | Ventes
historiqueVentesSheet.insertRowBefore(17);
historiqueVentesSheet.getRange('B17').setFormula('=B18+1');
var rangesVentes = [
{ target: 'C17', source: 'C6:D6' },
{ target: 'D17', source: 'C7:D7' },
{ target: 'E17', source: 'C4:D4' },
{ target: 'F17', source: 'C5:D5' },
{ target: 'G17', source: 'F17:G17' },
{ target: 'H17', source: 'F23:G23' },
{ target: 'I17', source: 'C11:D11' },
{ target: 'J17', source: 'F11:G11' },
{ target: 'K17', source: 'F14:G14' },
{ target: 'L17', source: 'C14:D14' },
{ target: 'M17', source: 'F20:G20' },
{ target: 'N17', source: 'C23:D23' }
];
rangesVentes.forEach(function(range) {
carnetSheet.getRange(range.source).copyTo(historiqueVentesSheet.getRange(range.target), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
});
// Historique | Ventes [Global]
globalVentesSheet.insertRowBefore(5);
globalVentesSheet.getRange('B5').setFormula('=B6+1');
var rangesGlobal = [
{ target: 'C5', source: 'C6:D6' },
{ target: 'D5', source: 'C7:D7' },
{ target: 'E5', source: 'C4:D4' },
{ target: 'F5', source: 'C5:D5' },
{ target: 'G5', source: 'F17:G17' },
{ target: 'H5', source: 'F23:G23' },
{ target: 'I5', source: 'C11:D11' },
{ target: 'J5', source: 'F11:G11' },
{ target: 'K5', source: 'F14:G14' },
{ target: 'L5', source: 'C14:D14' },
{ target: 'M5', source: 'F20:G20' },
{ target: 'N5', source: 'C23:D23' }
];
rangesGlobal.forEach(function(range) {
carnetSheet.getRange(range.source).copyTo(globalVentesSheet.getRange(range.target), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
});
carnetSheet.activate();
}
function CommandeC1() {
var spreadsheet = SpreadsheetApp.getActive();
var commandesSheet = spreadsheet.getSheetByName('Liste des Commandes');
var carnetSheet = spreadsheet.getSheetByName('🔵 | CARNET');
commandesSheet.insertRowBefore(5);
commandesSheet.getRange('B5').setFormula('=B6+1');
var rangesCommandes = [
{ target: 'C5', source: 'C6:D6' },
{ target: 'D5', source: 'C7:D7' },
{ target: 'E5', source: 'C4:D4' },
{ target: 'F5', source: 'C5:D5' },
{ target: 'G5', source: 'F17:G17' },
{ target: 'H5', source: 'F23:G23' },
{ target: 'I5', source: 'C11:D11' },
{ target: 'J5', source: 'F11:G11' },
{ target: 'K5', source: 'F14:G14' },
{ target: 'L5', source: 'C14:D14' },
{ target: 'N5', source: 'C23:D23' }
];
rangesCommandes.forEach(function(range) {
carnetSheet.getRange(range.source).copyTo(commandesSheet.getRange(range.target), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
});
commandesSheet.getRange('M5').setFormula('=IF(J5<0;C5;SI(J5<5000;C5;IF(J5<10000;C5+TIME(0;10;0);IF(J5<50000;C5+TIME(0;30;0);IF(J5<100000;C5+TIME(1;0;0);IF(J5<500000;C5+1;C5+2))))))');
commandesSheet.getRange('O5').setValue('En cours');
carnetSheet.activate();
}J'ai repris ta formule il y avait plusieurs erreurs mineures, voici une correction fonctionnelle (sans erreur du moins, je n'ai pu tester la logique) :
commandesSheet.getRange('M5').setFormula("=IF(J5<0;C5;IF(J5<5000;C5;IF(J5<10000;C5+TIME(0;10;0);IF(J5<50000;C5+TIME(0;30;0);IF(J5<100000;C5+TIME(1;0;0);IF(J5<500000;C5+1;C5+2))))))");Sa fonctionne je te remercie