Je ne sais pas du tout combien de temps cela peut prendre, cela dépend de tes fichiers.
Je propose donc de faire d'abord la liste des fichiers et retrouver leur identifiant, ensuite de cocher les cases, d'abord une, puis 5 à la fois ... selon le temps mis par le script, et lancer le remplacement.
Ouvre un nouveau fichier, active le service google Sheets API, copie le script.
Indique dans le script (première ligne) le nom du dossier
lance onOpen qui fera apparaître un menu (et te demandera aussi les autorisations)
var dossier = 'test';
function onOpen() {
SpreadsheetApp.getUi().createMenu('⇩ M E N U ⇩')
.addItem('👉 Rechercher les ID des fichiers', 'listeFichiersUnDossier')
.addItem('👉 Remplacer pour les fichiers cochés', 'remplacer')
.addToUi();
}
function listeFichiersUnDossier() {
var feuille = SpreadsheetApp.getActiveSheet();
feuille.clear();
feuille.appendRow(["nom", "ID"]);
var n = 0
var folders = DriveApp.getFoldersByName(dossier);
var foldersnext = folders.next();
var data = [];
var fichiers = foldersnext.getFiles();
while (fichiers.hasNext()) {
n++
var fichier = fichiers.next();
if (fichier.getMimeType = 'application/vnd.google-apps.spreadsheet') {
data = [
fichier.getName(),
fichier.getId()
];
feuille.appendRow(data);
}
}
var rule = SpreadsheetApp.newDataValidation()
.setAllowInvalid(false)
.requireCheckbox()
.build()
SpreadsheetApp.getActive().getRange('C2:C' + (n + 1)).setDataValidation(rule);
}
function remplacer() {
var liste = SpreadsheetApp.getActiveSheet()
var data = liste.getRange(2, 1, liste.getLastRow() - 1, 4).getValues()
for (var i = 0; i < data.length; i++) {
if (data[i][2] && data[i][3] != 'ok' && data[i][1] != '') {
replacements(data[i][1])
liste.getRange(i + 2, 3).setValue(false)
liste.getRange(i + 2, 4).setValue('ok')
}
}
}
function replacements(id) {
const ar = [
{ text: "A16051964", newText: 'B16051964' },
{ text: "A16051967", newText: 'B16051967' },
];
const requests = ar.map(({ text, newText }) => ({ findReplace: { allSheets: true, find: text, replacement: newText, matchEntireCell: true, matchCase: true } }));
Sheets.Spreadsheets.batchUpdate({ requests }, id);
}