Feuille de stats basketball
Bonjour,
Je suis coach adjoint pour une équipe de basketball et je fais les stats à chaque match via un classeur google sheets.
Ça fonctionne bien, mais j'essaie d'améliorer la chose pour me rendre la chose plus facile et rapide surtout que je le fais sur tablette android assis sur le banc de touche, donc moins intuitif pour moi qu'un combo clavier/souris.
Je souhaite donc automatiser quelques actions.
Voici comment se présente la feuille de stats :
Tout se passe par liste déroulante, entrées manuelles et fonction.
Ce que je souhaiterais automatiser afin de gagner du temps se trouve dans les intitulés 2 pts ext, 2 pts int, 3pts et LF.
Pour le moment, si un tire à 2 pts extérieur est réussi, je sélectionne, par exemple, 1 en E8 et ensuite 2 en G8, ce qui me fait 2 actions à réaliser.
Idem pour les 2 pts intérieur en H8 et J8, les 3 points (K8 et M8) et les lancés francs en O8 et Q8.
Je me suis pencher sur le problème et au fil de mes lectures, j'ai trouvé une solution qui fonctionne bien sur PC mais pas du tout sur tablette, or je suis dans l'obligation que cela fonctionne sur tablette, en passant par des boutons, j'avais donc fait des tests en créant des scripts et en rajoutant des colonnes pour loger les boutons, test effectué uniquement sur 2 pts ext.
Je clique sur le + en E et ça modifie bien la colonne F et la colonne J en ajoutant 1 au nombre déjà entré et si je clique en G, ça enlève 1 aux colonnes F et J correspondant à la ligne. Mais sur tablette, ça ne fonctionne pas.
J'ai fait ça à l'arrache et il doit y avoir mieux car j'ai 1 fichier script par ligne pour ajouté 1 et 1 fichier script par ligne pour retiré 1.
1 script pour ajouté 1 (+1) :
function addOne3() {
var sheet = SpreadsheetApp.getActiveSheet();
var cellF10 = sheet.getRange("F10");
var cellJ10 = sheet.getRange("J10");
var currentValueF10 = cellF10.getValue();
var currentValueJ10 = cellJ10.getValue();
cellF10.setValue(currentValueF10 + 1);
cellJ10.setValue(currentValueJ10 + 1);
}1 script pour retirer 1 (-1) :
function suppOne2ext1(){
var sheet = SpreadsheetApp.getActiveSheet();
var cellF8 = sheet.getRange("F8");
var cellJ8 = sheet.getRange("J8");
var currentValueF8 = cellF8.getValue();
var currentValueJ8 = cellJ8.getValue();
cellF8.setValue(currentValueF8 - 1);
cellJ8.setValue(currentValueJ8 - 1);
}Je me suis donc demandé comment faire pour ne pas passer par des boutons et que si je modifie la valeur de la cellule E8 en incrémentant de 1, cela modifie en incrémentant de 1 la cellule G8 (cf 1ère image).
En lisant les différents sujets ici même, j'ai vue la fonction onEdit et j'ai compris qu'on ne pouvais l'utiliser qu'1 fois mais qu'on pouvait faire onEdit1, onEdit2, etc.
J'ai donc testé avec ce code :
function onEdit(e) {
onEdit1(e)
/** onEdit2(e)
onEdit3(e)
onEdit4(e) */
}
function onEdit1(e) {
var sheet = SpreadsheetApp.getActiveSheet();
var cellE8 = sheet.getRange("E8");
var cellG8 = sheet.getRange("G8");
var currentValueE8 = cellE8.getValue();
var currentValueG8 = cellG8.getValue();
cellG8.setValue(currentValueG8 + 1);
}
/** function onEdit2(e) {
}
function onEdit3(e) {
}
function onEdit4(e) {
} */J'ai volontairement commenté des parties car je voulais testé sur 1 ligne avant d'aller plus loin.
Problème, que je monte ou descende la valeur dans la cellule E8, la cellule G8 augmente de 1, ce n'est pas ce que je souhaite comme comportement.
Car si j'en retranche 1 en E8, il faut qu'en G8 ça retire 1 également.
Et surtout si je modifie en G8 directement, ça n'incrémente pas de 1 non plus dans cette même cellule.
Et ça ça doit pouvoir se faire jusqu'en ligne 17 sur les colonnes E, G, H, J, K et M et en option O et Q, mais ces 2 dernières colonnes ce n'est pas important.
Je ne sais pas si s'est faisable, comme dit dans ma présentation, je suis totalement novice en macro, vba, etc.
Ni si je suis parfaitement clair dans mes explications.
Voici l'accès à mon classeur de test, il y a plusieurs Feuille puisque je fais mes tests dessus, la feuille 3 est celle sur laquelle je souhaite votre intervention.
https://docs.google.com/spreadsheets/d/1DSTd7IQEpFh2MoOlz651-HZF04fKVdypy58bHUWvjro/edit?usp=sharing
Si besoin d'un accès Editeur, pas de problème, il suffit de demander.
Merci d'avance pour votre aide et vos réponses.
Ludo.