0
votes

I am using Google Sheets with a series of buttons. I want to click the button to increase the value in a specific row.

For example: When I click on "Player 1" button, it will go to Player 1 row, then when I click on the "Rebound" button, it will add a value of 1 in that cell. Then, if I click the "Steal" button, it will add value in Player 1's row, and under the "Steal" column. The same goes for all of the other "player" buttons. I am having trouble finding out how to do this. I want to create a basketball box score when I can score the game with button clicks. Thank you in advance. enter image description here

Google Script:

function increment(){

  // define the cell to be incremented
  var cell = SpreadsheetApp.getActiveSheet().getRange("B2");
  
  // get and set the cell value
  var cellValue = cell.getValue();
  cell.setValue(cellValue + 1);  // this increments by 1 but could be any number

}

The Google Script that I have allows my to increase the value by one for cell B2 alone. I would like to be able to use the Player Buttons to select the row and the Rebound, Turnover, Steal button to select the column and add value. I am very new to coding and scripting. Sorry.

1
Provide your code and show off your research efforts - TheMaster
Sorry for the vague question. I updated my information. I only found a way to add value to one cell using one button. I would like to use the Player buttons to select the row and the buttons on the right to select the column. Are you able to help with this? Thank you. - S.Clancy
I would use a sidebar. It's easier to create the buttons and assign them to functions. That way you can pass parameters from the buttons to the function so that one function will work for all buttons. You also might want to check out how to use google.script.run. - Cooper
Thank you @Cooper. I will take a look at that information. Would a sidebar be the most efficient way. I will have 12 "Player Buttons" and over 30 "Attribute" buttons. I do not know where to start to create what I am trying to create. Thank you. - S.Clancy

1 Answers

1
votes

There exists:

  1. An setActiveSelection function you could use to select a range of cells when a Player button is clicked, and
  2. A getSelection function you could use when an "event" button is pressed (rebound, turnover, or steal) to get the current selection and then select the correct portion of that.

Player Buttons

I think each of your player functions is going to have to call a custom function, ie, selectPlayerOneRange(), selectPlayerTwoRange(). Something like this:

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];

function selectPlayerOneRange() {
  sheet.setActiveSelection("B2:D2");
}

function selectPlayerTwoRange() {
  ...

Action Buttons

Similarly, each of your action buttons will require their own script. I might do something like this:

function getSelectedRow() {
  var sel = ss.getSelection();
  var range = sel.getActiveRange();
  var row = range.getRow();
  return row;
}

function incrementRebound() {
  var row = getSelectedRow();
  var col = 2;
  var cell = sheet.getRange(row, col);
  // Your increment code here:
  var cellValue = cell.getValue();
  cell.setValue(cellValue + 1);
}

function incrementSteal() {
  var row = getSelectedRow();
  var col = 4;
  ...