Dans GDocs, sous Outils> Préférences, je peux définir des corrections automatiques. Ainsi, si je tape l*
, il est écrit bas, h*
-> élevé, etc.
Dans Google Spreadsheet, rien de tel. Puis-je le faire avec un script? Comment?
Comme Eddy vous l'a dit, vous pouvez le faire en utilisant le déclencheur onEdit.
//global
var ss = SpreadsheetApp.getActiveSpreadsheet();
var name = "Preferences";
function onEdit(e) {
// clear cache if on preferences sheet
if(ss.getActiveSheet().getName() == name) {
CacheService.getPrivateCache().remove(name)
} else {
// get all the data
var prefs = JSON.parse(preferences());
var cValue = e.value, cRange = e.range;
var pref = cValue.match(/\b[a-z]+\*\B/);
// find replacement text
for(var i=1, iLen=prefs.length; i<iLen; i++) {
if(pref == prefs[i][1] && prefs[i][0] == "Yes") {
var text = prefs[i][2];
}
}
// make the change
if(text.length == cValue.length) {
cRange.setValue(prefs[i][2]);
} else {
var modcValue = cValue.replace(pref, text);
cRange.setValue(modcValue);
}
}
}
function preferences() {
// check if cache is available
var cache = CacheService.getPrivateCache();
var cached = cache.get(name);
if (cached != null) {
return cached;
}
// collect data
var data = ss.getSheetByName(name).getDataRange().getValues();
var jsonData = JSON.stringify(data);
cache.put(name, jsonData, 21000);
return jsonData;
}
Le script va d'abord vérifier si la feuille de préférences a été modifiée. Si yes
, le cache sera effacé/supprimé. Après cela, il récupérera toutes les données de la feuille de références ou du cache. Ensuite, il déterminera le raccourci à utiliser, au moyen de match
et regex
. Si les critères sont remplis, la valeur de colonne avec sera ajoutée.
Copiez le tableur que j'ai préparé et regardez sous Outils, Editeur de script. Vous y trouverez le script. Appuyez sur le bouton bug pour valider/authentifier le script.
J'ai créé un exemple de fichier pour vous: n script permettant de modifier automatiquement la valeur du texte
*
. Plusieurs majuscules sont autorisées (voir exemple).Le regex, pour correspondre au texte de remplacement, était tout faux. Ajout de la possibilité de changer le texte de remplacement à partir de la phrase.