S.Clancy
S.Clancy

Reputation: 65

Google Script Button to increase value to specific rows and columns in Google Sheets

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.

Upvotes: 0

Views: 4001

Answers (1)

Dustin Michels
Dustin Michels

Reputation: 3226

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;
  ...

Upvotes: 2

Related Questions