0

toute aide ici serait appréciée!aide de Google Script: copier le tableau croisé dynamique sans lien de source à une nouvelle feuille

Actuellement, j'ai une feuille "dernier tableau de bord" qui contient 3 tableaux croisés dynamiques et la feuille est mise à jour chaque semaine.

Je veux écrire un script qui fera un clone de l'onglet "dernier Scorecard", coller seulement les valeurs et le format (ex formatage conditionnel) et renommer l'onglet comme date actuelle. L'idée est lorsque l'onglet "dernier tableau de bord" est actualisé chaque semaine, nous pouvons avoir une feuille de sauvegarde sur les données de la semaine précédente.

Le script que je reçois jusqu'à présent est capable de faire un clone et de renommer la feuille copiée en date du jour, (MAIS IL COMPREND LE LIEN DE LA "SOURCE"). Quelqu'un peut-il conseiller comment modifier le script afin de ne coller que la valeur et le format au lieu de l'ensemble du lien de la source de la table pivotante.

ici est mon script

/*create scorecard clone*/ 
function cloneGoogleSheet() { 

var ss = SpreadsheetApp.getActiveSpreadsheet(); 

var tz = ss.getSpreadsheetTimeZone(); 

var newDate= new Date(); 

var sheet = ss.getSheetByName('Latest Scorecard').copyTo(ss); 

var stringDate = Utilities.formatDate(newDate, tz, 'MM-dd-yy'); 

/* Make the new sheet active and rename to current date*/ 

ss.setActiveSheet(sheet).showSheet(); 

ss.renameActiveSheet(stringDate); 

ss.moveActiveSheet(6); 

} 

Merci beaucoup!

+0

Pouvez-vous partager une copie de votre feuille de calcul? – Cooper

+0

oui j'ai créé un fichier avec des données factices [link] (https://docs.google.com/spreadsheets/d/1z9Og3GWD4NIaU-HVnEXTSkYN1PsROml_kkUJw7Ckcww/edit?usp=sharing) Donc, la table 1,2,3 est rafraîchie chaque semaine et le Les tableaux croisés dynamiques sur le "dernier tableau de bord" seront également actualisés. Je veux donc que mon script soit écrit pour créer une feuille de sauvegarde nommée avec la date actuelle (ex 06-25-17), comme l'onglet "06-25-27" que j'ai créé sur ce document, ** avec seulement des valeurs et format copié, supprime le lien de la table source **. –

+0

Je l'ai résolu merci. Je poste le script qui fonctionne ici pour référence. –

Répondre

0

Je l'ai résolu merci. Je poste le script qui fonctionne ici.

function cloneGoogleSheet() { 

var ss = SpreadsheetApp.getActiveSpreadsheet(); 
var tz = ss.getSpreadsheetTimeZone(); 
var date = new Date(); 
var sheet = ss.getSheetByName('Latest Scorecard').getDataRange(); 
var newsheet = ss.insertSheet('New Sheet'); 
var stringDate = Utilities.formatDate(date , tz, 'MM-dd-yy'); 

/*copy the scorecard pivot table to a newsheet and make it static without copying the pivot table source*/ 
sheet.copyTo(newsheet.getRange('A1'), {contentsOnly:true}); /*copy only content over to newsheet first*/ 
var newsheet_id = newsheet.getDataRange().getGridId(); 
sheet.copyFormatToRange(newsheet_id, 1, 26, 1, 30); /*then copy the format over to newsheet to break the source link*/ 

/* Make the new sheet active and rename to current date*/ 
ss.setActiveSheet(newsheet).showSheet(); 
ss.renameActiveSheet(stringDate); 
ss.moveActiveSheet(6); 
}