Conversion contenu google sheet en BD

Bonjour,

J'ai jamais fait de script ou de macro sous google sheet.

Et je dois transformer un sheet avec un format "arboresence" comme dans l'exemple dans l'onglet "original" en format Base de Donnée comme dans l'exemple de l'onglet "BD".

L'onglet original est un exemple, je peux avoir x lignes mais le template sera identique

J'ai exporté mon google sheet en XLSX mais le script/macro doit tourner dans le googlesheet.

Merci pour votre support

11bd-test.xlsx (10.74 Ko)

Bonjour,

peux-tu mettre un lien vers ton fichier google sheets ? https://www.sheets-pratique.com/fr/cours/partage

Bonjour,

J'ai un message qui me dis que je suis pas autorisé au partage

proposition

function myFunction() {
  var sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Original')
  var data = sh.getRange('A2:G' + sh.getLastRow()).getValues()
  var bd = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('BD')
  var level = []
  data.forEach(function (d) {
    level[d[1]] = [d[2], d[3], d[4], d[5], d[6]]
    if (d[1] == 6) {
      bd.appendRow(level.flat())
    }
  })
}

ca marche, merci bien

Je vais le tester sur d'autres exemples

Une petite amélioration si possible, a chaque génération je veux que les données de la feuille BD se ré-initialise

merci encore

supprimé, erroné

Merci pour votre support

Je vais la tester et voir si je vois pas d'amélioration en la pratiquant

Puis je revenir vers vous si besoin?

Re Steelson,

La ré-initiliasation marche pas correctement car quand j'éxécute pour la 1ere fois ca marche

puis qaund j'execute 2 fois, ca me garde la dernière ligne (5) et cela ajoute les autres lignes

j'ai ajouté également les dates dans le l'onglet Original que je veux aussi voir dans l'onglet BD

Merci

Désolé, autant pour moi, c'était max et non min

Parfait,

j'ai ajouté également les dates dans le l'onglet Original que je veux aussi voir dans l'onglet BD

Et est ce que vous pouvez me conseiller des tutos pour débuter pour le codage sous GSheet?

Dernière évolution

est ce possible de créer une sheet BD vierge sur la base de la sheet original

En gros cela créer automatiquement la sheet BD

Parfait,

j'ai ajouté également les dates dans le l'onglet Original que je veux aussi voir dans l'onglet BD

function myFunction() {
  var sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Original')
  var data = sh.getRange('A2:AJ' + sh.getLastRow()).getDisplayValues()
  var bd = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('BD')
  bd.getRange(2,1,Math.max(3,bd.getLastRow()),bd.getLastColumn()).clearContent()
  var level = []
  var result=[]
  data.forEach(function (d) {
    level[d[1]] = [d[2], d[3], d[4], d[5], d[6]]
    if (d[1] == 6) {
      result=level.flat()
      result.push(d[7])
      result.push(d[8])
      result.push(d[9])
      result.push(d[10])
      result.push(d[11])
      result.push(d[12])
      bd.appendRow(result)
    }
  })
}

Et est ce que vous pouvez me conseiller des tutos pour débuter pour le codage sous GSheet?

https://www.sheets-pratique.com/fr/codes

plus https://openclassrooms.com/fr/search?page=1&query=javascript

Dernière évolution

est ce possible de créer une sheet BD vierge sur la base de la sheet original

En gros cela créer automatiquement la sheet BD

donc cela ne sert à rien d'effacer ... et la prochaine évolution c'est quoi ?

L'idée est la suivante, par exemple je veux ajouter un niveau 7, je dois re créer ma BD d'où l'évolution

Apres je m'arrête la

par exemple je veux ajouter un niveau 7, je dois re créer ma BD d'où l'évolution

c'est encore une évolution ...

comment savoir quel est le niveau ?

est-ce que tous les cycles se terminent par le même niveau ?

le niveau je le définit en colonne B et j'ai standardisés les noms des colonnes de C jusqu'à G

le cycle des niveaux se termine par le max des niveaux, dans mon exemple c'est 7

Et si j'ajoute un niveau 7, il sera inclus dans le niveau au dessus (6)

pardon dans mon exemple c'est 6

Rechercher des sujets similaires à "conversion contenu google sheet"