Transformer VBA avec bouton, en Script GS pour feuille de planning

Bonjour à tous,

J'ai trouvé sur le net un VBA avec bouton qui m'intéresse, et j'aimerais si c'est possible l'adapter à un planning d'atelier découverte pour ados.

Etant très novice en la matière j'ai grand besoin de votre aide.

D'avance je vous remercie pour vos réponses.

https://docs.google.com/spreadsheets/d/1CTqqZC5RCzkf3wxILprqZdtA9DWtm-NVDfdmOddrcLk/edit#gid=4710916...

A l'intérieur de chaque petite cellule il y a 15 mn.

Chaque couleur représente un atelier, je souhaite par un script (et actionné par un bouton) additionner le nombre d'heure par jour et par atelier

CDLT

Alex

Voici le VBA :

Sub Totaliser()

Set RngVal = Range("D12:BW18")    '>>> Range zone cellules à totaliser sans titre (A régler)
Set RngTot = Range("J19:J29")   '>>> Range zone totaux (A régler)

For Each CelTot In RngTot
    CelTot.Value = 0
    Next CelTot

For Each CelVal In RngVal.Cells
    If IsNumeric(CelVal) Then
        For Each CelTot In RngTot.Cells
            If CelVal.Interior.ColorIndex = CelTot.Interior.ColorIndex Then _
            CelTot.Value = CelTot.Value + CelVal.Value
            Next CelTot
        End If
    Next CelVal

Set RngVal = Range("D12:BW18")    '>>> Range zone cellules à totaliser sans titre (A régler)
Set RngTot = Range("AL19:AL21")   '>>> Range zone totaux (A régler)

For Each CelTot In RngTot
    CelTot.Value = 0
    Next CelTot

For Each CelVal In RngVal.Cells
    If IsNumeric(CelVal) Then
        For Each CelTot In RngTot.Cells
            If CelVal.Interior.ColorIndex = CelTot.Interior.ColorIndex Then _
            CelTot.Value = CelTot.Value + CelVal.Value
            Next CelTot
        End If
    Next CelVal

End Sub

Merci

Salut Alex ...

function sommeCouleur() {
  var f = SpreadsheetApp.getActiveSheet();
  for (var ligne=9;ligne<=15;ligne++){
    var couleur = f.getRange('I' + ligne).getBackground()
    f.getRange('H' + ligne).setValue(nbCouleur(couleur,'B3:Y7'))
  }
}

function nbCouleur(couleur, cellules) {
  var f = SpreadsheetApp.getActiveSpreadsheet();
  var r = f.getRange(cellules);
  var x = 0;
  for (var i = 1; i <= r.getNumRows(); i++) {
    for (var j = 1; j <= r.getNumColumns(); j++) {
      var cell = r.getCell(i, j);
      if(cell.getBackground() == couleur){
        x ++;
      }
    }
  }
  return x;
}

comme je ne sais pas (encore) calculer proprement la somme des heures, j'ai juste compté le nombre de cellules par couleur (> colonne H) que j'ai multiplié par 1/4 d'heures (en A16)

Salut Mike, c'est super !

Je vais essayé de comprendre et l'appliquer dans la colonne AA par jour. je reviendrai vers toi en cas de besoin.

comme je ne sais pas (encore) calculer proprement la somme des heures,

ça m'arrange, du coup j'ai pu retirer les 00:15:00 par cellule de B3:Y7 ça fait plus propre.

Un grand merci pour ton aide, toujours aussi précieuse.

Bon ben après 2 heures de tentatives, pas moyen !

je souhaite par un script (et actionné par un bouton) additionner le nombre d'heure par jour et par atelier

Après que tu ais concrétisé mon projet sur le nombre d'heure par atelier, peux-tu m'aider à additionner le nombre de cellule coloriée, par jour, en colonne AA ?

D'avance je te remercie.

Peut mieux faire, mais cela fonctionne

function sommeCouleur() {
  var f = SpreadsheetApp.getActiveSheet();
  for (var ligne=9;ligne<=15;ligne++){
    var couleur = f.getRange('I' + ligne).getBackground()
    f.getRange('H' + ligne).setValue(nbCouleur(couleur,'B3:Y7'))
  }
  var couleur = f.getRange('A1').getBackground()
  for (var ligne=3;ligne<=7;ligne++){
    f.getRange('AA' + ligne).setValue(24-nbCouleur(couleur,('B'+ligne+':Y'+ligne)))
  }
}

function nbCouleur(couleur, cellules) {
  var f = SpreadsheetApp.getActiveSpreadsheet();
  var r = f.getRange(cellules);
  var x = 0;
  for (var i = 1; i <= r.getNumRows(); i++) {
    for (var j = 1; j <= r.getNumColumns(); j++) {
      var cell = r.getCell(i, j);
      if(cell.getBackground() == couleur){
        x ++;
      }
    }
  }
  return x;
}

la couleur de fond testée est cella de A1

C'est TOP !

Un grand merciiiiiii !!!

C'est forcément un peu long, car on ne peut pas capter dans le script d'un seul coup la couleur de fond comme on le ferait avec des valeurs dans les cellules.

J'ai pas encore senti, peut-être quand j'aurai fait mes 52 semaines ?

Bien que je n'y comprends pas grand chose mais en lisant le script ça me paraît logique, par contre, pourquoi tu utilises la cellule A1 ?

var couleur = f.getRange('A1').getBackground()

J'avais d'abord utilisé #ffffff qui est la couleur blanche, mais in fine il semble qu'il y ait une différence entre blanc et ... blanc !! c'est-à-dire entre la sélection de la couleur blanche et réinitialiser ... quoique j'n sais rien in fine, mais comme je n'avais pas eu le résultat souhaité, j'ai pris une cellule témoin de la couleur à ne pas compter.

C'est du génie !

Rechercher des sujets similaires à "transformer vba bouton script feuille planning"