Sostieni il canale: 👉www.buymeacoffee.com/andreaguerri/grazie-per-il-tuo-supporto 👉www.paypal.me/AndreaGuerri
@Biliardofgiglio2 жыл бұрын
Ti sono molto grato, grazie ad un tuo video risparmio un po' di tempo ogni giorno. Io gioco a biliardo con alcuni amici ed ho fatto una piccola applicazione in fogli google con cui in sala segno vincitori e punteggi quindi ne ottengo dei Rank giornalieri. Ero costretto a mettere a mano i dati in un foglio per ottenerne una classifica periodica ed ora con poche istruzioni sono riuscito ad automatizzare il tutto. Grazie ancora
@andreaguerri.educational2 жыл бұрын
Ottimo, puoi sermpre sostenere il canale così ci saranno altri interessanti video...tempo permettendo😱😁
@Biliardofgiglio2 жыл бұрын
Lo farò sicuramente. Gentilmente e quando puoi, mi indicheresti lo script per attivare una macro se casella controllo è vera? O se c'è un tuo video che lo spiega. Avevo chiesto aiuto anche sul forum ma nessuno mi ha ancora suggerito nulla. Grazie
@Biliardofgiglio2 жыл бұрын
Come si fa a sostenere il canale?
@andreaguerri.educational2 жыл бұрын
@@Biliardofgiglio vado a vedere...
@andreaguerri.educational2 жыл бұрын
@@Biliardofgiglio basta espandere il link in descrizione... ad ogni modo Sostieni il canale: www.paypal.me/AndreaGuerri
@gerardozuccala3 жыл бұрын
Grazie Andrea, grazie per questa nuova serie di video, la seguirò attentamente, un saluto
@andreaguerri.educational3 жыл бұрын
Ringrazio te che hai dato uno stimolo a molte persone e avere la passione per questo settore, io non avrei mai avuto forse il coraggio di buttarmi a fare video. Il web ha bisogno di persone come te che fa le cose per passione, e ho letto pure il tuo dietrofront per il tuo forum. Hai dimostrato di essere un vero professionista e di essere una persona speciale, anche se apparentemente non ripaga, hai reso felici molte persone e questo conta più di mille like e milioni di visualizzazioni. A volte mi piacerebbe parlare di Excel e dei suoi punti di forza, ma ci sei già te che fai piazza pulita😂. Grazie dell'incoraggiamento detto da te vale davvero molto.
@RobertoPampalone11 ай бұрын
Ciao, grazie per il tuo lavoro e i tuoi video fatti benissimo.
@andreaguerri.educational7 ай бұрын
Grazie mille
@giuseppeparrotta8327 Жыл бұрын
Buongiorno, e complimenti per le esaudienti soluzioni proposte. Stavo cercando di implementare lo script per archiviare alcune informazioni, ma mi da il seguente errore: TypeError: Cannot read properties of undefined (reading '0'), ho trascritto il codice come in video, cosa puo essere, il file DB è il primo foglio dello file google sheet.
@andreaguerri.educational Жыл бұрын
Il problema potrebbe essere che non hai dichiarato la variabile Dati (proprietà di undefined cioè indefinita riferendosi alla variabile). Dovresti inviarmi il codice per capire bene
@giuseppeparrotta8327 Жыл бұрын
@@andreaguerri.educational function REGISTRA() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var Dati = ss.getRange('A2:AD2').getvalues; ss.getSheets()[0].appendRow(Dati[0]) ss.getRange('B10:B15').clearContent();
@giuseppeparrotta8327 Жыл бұрын
function REGISTRA() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var Dati = ss.getRange('A2:AD2').getValues; ss.getSheets()[0].appendRow(Dati[0]) ss.getRange('B10:B15').clearContent(); ora corretto cosi da il seguente errore: Exception: The rowContents passed to appendRow() must be nonempty. il codice deve copiare i dati('A2:AD2') dal foglio di inserimento al foglio database che si trova nella posizione 1 dei fogli di lavoro
@andreaguerri.educational Жыл бұрын
@@giuseppeparrotta8327 A2:AD2 l'errore, sicuramente non esiste l'intervallo, forse volevi mettere A2:D2. Il mio esempio arriva a F2
@giuseppeparrotta8327 Жыл бұрын
@@andreaguerri.educational confermo che l'intervallo è corretto, non penso che la memoria non supporti un intervallo cosi ampio, ma avevo provato con un intervallo più piccolo e mi dava lo stesso errore
@mattiafamoso979811 ай бұрын
Salve! Il suo contenuto è FORMIDABILE davvero. Una piccola domanda: Qualora volessi scrivere il contenuto del mio InputData in un altro foglio google sheets?
@andreaguerri.educational11 ай бұрын
Devi usare openById o openByUrl. Ad esempio: var sheet = SpreadsheetApp.openById("abc1234567").getSheets()[0] sheet.appendRow(Dati[0]) Ricordati che l'id del foglio è quello tra i due slash dopo la d e prima dell'ultimo (vedi qua: blogcdn.gmass.co/blog/wp-content/uploads/2022/02/find-sheet-id-web.png) e che devi essere Editor di quel foglio per poter inserire dei valori. Grazie anche a te per i complimenti
@giuseppeparrotta832719 күн бұрын
Grazie per le esaudienti informazioni, mi interesserebbe sapere se si può usare la funzione APPENDROW caricando i dati di input su un altro foglio google quindi non nello stesso file, se cosi si può dire.
@andreaguerri.educational18 күн бұрын
Certo, utilizza openByUrl e inserisci l'url del foglio di destinazione (copia e incolla). In pratica al posto di : SpreadsheetApp.openByUrl("url").getSheets()[0].appendRow(Dati[0]) developers.google.com/apps-script/reference/spreadsheet/spreadsheet-app#openbyurlurl
@giuseppeparrotta832711 күн бұрын
Buongiorno, ma non stai più seguendo il canale youtube?
@andreaguerri.educational4 күн бұрын
@@giuseppeparrotta8327 sono molto impegnato...ho fatto diversi video ma non ho tempo per postarli..purtroppo
@albyjkl Жыл бұрын
Buonasera Andrea, grazie per il video molto esaustivo e chiaro, ma avrei un problema con lo script in quanto mi restituisce un'errore di questo tipo "Exception: The parameters (String) don't match the method signature for SpreadsheetApp.Sheet.appendRow." ho provato a cercare dappertutto ma non ne sono venuto a capo, la sola differenza rispetto al suo esempio del video è che ho una selezione di celle diversa (A2:E2), comunque lanciando il debug la variabile dei dati è caricata solo col dato della cella A2, mi potrebbe aiutare, grazie mille in anticipo
@andreaguerri.educational Жыл бұрын
Ti consiglio di scrivere un post o su Fatti da App Script su FB o su Forumexcel (va condiviso il codice e il foglio senza dati sensibili...per come condividere un foglio: kzbin.info/www/bejne/fHnJnaOwZrqYgcU)
@lapettatraditionalstreetfo6929 Жыл бұрын
Ciao un consiglio sul codice anche per formattare alcune celle del db innautomatico una volta inserito l'input? O per inserire automaticamente delle formule? Grazie
@andreaguerri.educational Жыл бұрын
Dipende, la cosa più semplice è usare formato > Colori Alternati, puoi usare un intervallo illimitato che ne so A1:F per i colori. Poi se vuoi cose più complicate tipo carattere, formattazione del testo, colori ecc, hai due aspetti da tenere conto, il primo che lo puoi risolvere registrando la macro per la formattazione particolare, ma il secondo è quello che devi sapere dove collochi i dati con getLastRow, e poi andare a formattarli usando getRange metodo R1C1 o usando la concatenzione delle variabili. Quindi potrebbe essere così se volessi ad esempio mettere il grassetto e il corsivo alla nuova riga: function InputData() { var ss = SpreadsheetApp.getActive(); var Dati = ss.getRange("A2:F2").getValues(); ss.getSheets()[0].appendRow(Dati[0]) ss.getRange("A2:F2").clearContent(); var lr = ss.getSheets()[0].getLastRow(); ss.getSheets()[0].getRange(lr,1,1,6) .setFontWeight('bold') .setFontStyle('italic'); } oppure con la concatezione: function InputData() { var ss = SpreadsheetApp.getActive(); var Dati = ss.getRange("A2:F2").getValues(); ss.getSheets()[0].appendRow(Dati[0]) ss.getRange("A2:F2").clearContent(); var lr = ss.getSheets()[0].getLastRow(); ss.getSheets()[0].getRange("A"+lr +":F"+lr) .setFontWeight('bold') .setFontStyle('italic'); } Qui la classe su developers: developers.google.com/apps-script/reference/slides/text-style?hl=it
@dicsletticoediscalcuto576 Жыл бұрын
Non so cosa ho sbagliato ma ogni volta che inserisco una nuova tipologia nella inputdata ( solo per una casella) mi dice che non posso scriverci sopra in quanto vi è già una convalida dati attiva e mi inserisce tutto ad eccezione di quella casella
@andreaguerri.educational Жыл бұрын
Ciao, così è molto difficile capire il problema...dovresti scrivere su fatti di app script e condividere un file (modalità editor) e mettere anche eventualmente uno screenshot
@dicsletticoediscalcuto576 Жыл бұрын
@@andreaguerri.educational Grazie mille per avermi risposto ho risolto alla fine bastava spuntare la casella "Mostra un avviso" nelle opzione avanzate della convalida dati. Tuttavia ho un altro problema cercherò di essere il più esaustivo possibile: In pratica nella scheda filtro dove ho messo nella casella A la tua formula se.errore(filter(Magazzino!D:D; InputData!A2= InputData!D2)) Non mi ritrovo nella casella D2 del foglio Inputdata i dati in base a ciò che scrivo nella casella A2. Nel concreto io ho un elenco di farmaci: Tachipirina, aspirina ecc (Foglio Magazzino) e voglio filtrare la loro tipologia in base nome che inserisco nella casella A2 del foglio inputdata. Quindi nel foglio input data metto tachipirina e nella casella d2 del foglio imputdata mi dovrebbero comparire ad esempio: compresse, bustine ecc. Ma non compare nulla è tutto vuoto non so perché e sto impazzendo. Se le vuole poso condividere il link del file. Ma lo vuole qui su youtube?
@andreaguerri.educational Жыл бұрын
@@dicsletticoediscalcuto576dicevo in questo canale: facebook.com/groups/AppsScript/?locale=it_IT Qui puoi condividere il tuo file e spiegare anche i problemi ed eventualmente inviare foto. Ci sono molti professionisti che ti possono aiutare. A presto
@andreaguerri.educational Жыл бұрын
@@dicsletticoediscalcuto576 Cmq è semplice il funzionamento di FILTER avviene così: come primo parametro devi selezionare la colonna/colonne che vuoi che vengano restituite dalla funzione. Nel tuo caso dovrai selezionare la colonna compresse, bustine ecc. Ora devi mettere le condizioni: Selezioni la colonna delle condizioni, cioè la colonna dove avrai i farmaci Tachipirina, aspirina ecc. Mettiamo che sia in colonna B, quindi dovrai selezionare quella colonna nel tuo database e poi metti un uguale e il valore che vuoi ricercare, oppure un riferimento, quindi sarà A2 del foglio InputData. In pratica nel foglio FiltroProdotti: =FILTER(intervalloDaRestituire;intervalloDaFiltrare=cella), FILTER(Database!C:C;Database!B:B=InputData!A2) dove Database è il tuo database (o come si chiama il foglio), C:C è la colonna delle compresse ecc, B:B è la colonna del farmaco, InputData è il foglio che hai i dati e A2 la cella su cui digiti i farmaci o selezioni. Ricordati che poi devi creare la convalida dati (ora puoi farla anche da Inserisci>Elenco a discesa) in D2 e collegarla però al foglio dove hai la funzione FILTER, se è in A1 dovrai selezionare tutta la colonna A:A di quel foglio (vedi minuto 10:00 in poi), se in A2 la funzione sarà A2:A e così via
@dicsletticoediscalcuto576 Жыл бұрын
Grazie mille sono riuscito a risolvere@@andreaguerri.educational
@francescoadonia536010 ай бұрын
Ciao Andrea..complimenti per il video. Avrei bisogno di idee/aiuto per realizzare un gestionale magazzino..hai altri video su questo genere da segnalarmi?..grazie infinite per tutto quello che fai.
@andreaamato-x6h Жыл бұрын
non trovo in convalida dati, elenco da un intervallo. Come posso risolvere ? Chi mi può aiutare ??
@andreaguerri.educational7 ай бұрын
Inserisci > Elenco a discesa
@emanuelememeo50410 ай бұрын
Ciao Andrea, bellissimo video complimenti. Non è il primo che vedo nell'arco di una settimana. Su questo però avrei una domanda: la mia situazione è questa. Ho 2 fogli diversi appartenenti allo stesso file. Uno si chiama "ELENCO CLIENTI", l'altro si chiama "NUOVI POLIZZE". Vorrei che ogni qualvolta inserisco dei nuovi dati del foglio "NUOVE POLIZZE" (inserendo ovviamente anche i nomi dei clienti), Google Sheet me lo vada ad inserire in automatico all'interno dell'elenco esistente presente nel foglio "ELENCO CLIENTI". Una features ulteriore può essere legata alla condizione di "trasferimento dei dati" da un foglio all'altro, cioè se effettivamente il cliente della nuova polizza è un nuovo cliente oppure è un cliente già presente che stipula una nuova polizza (ovviamente in questo ultimo caso, non deve essere aggiunto al foglio "ELENCO CLIENTI"). Per questa ultima features ho ipotizzato un elenco a tendina con "SI" e "NO" da impostare al momento dell'inserimento dei dati nel foglio "NUOVE POLIZZE". Il problema effettivo è sulla questione inizialmente sollevata. Un mia riflessione è relativa al momento in cui avviene questo controllo, perciò considerando il tuo video ho pensato l'eventuale aggiunta di un terzo foglio "INSERIMENTO" nel quale si effettua l'inserimento di una riga alla volta (come nel tuo video) e, dopo aver "trasferito i dati" negli altri 2 fogli in base alle condizioni, cancelli la riga appena scritta (esattamente come nel tuo video). SPERO TU MI POSSA AIUTARE CON I COMANDI DA INSERIRE (scusa la lunghezza, sembra una cosa lunga e difficile ma avevo bisogno di spiegarmi il più possibile meglio) GRAZIE ANTICIPATAMENTE
@andreaguerri.educational10 ай бұрын
Devi usare textFinder qui trovi una soluzione simile stackoverflow.com/questions/56517186/searching-through-a-range-with-textfinder-is-slower-than-searching-the-entire-sh Non ricordo però se quando trova il dato corrispondente la variabile è true o false. Nel caso lo sia nella riga successiva devi scrivere if(!found){ Inserisci la riga di appendRow } In pratica se la funzione textFind non trova un dato simile, allora (! Sta per false) inserisci i dati nel foglio dei nuovi clienti, altrimenti non fa nulla. Ti consiglio di rendere univoci i dati, il problema è che devi avere di quel cliente la certezza che almeno un dato lo sia, ad esempio il suo C.F. e che sia scritto correttamente. Ti avviso che non è facile e ci vuole un po' di esperienza e pazienza ma puoi farcela se vuoi. Puoi fai ricerche e trovi cmq delle soluzioni, altrimenti scrivi a fatti di app script su facebook perché qui è difficile senza un file (Condividendo una copia e senza dati sensibili)
@emanuelememeo5049 ай бұрын
@@andreaguerri.educational grazie per la risposta veloce. Purtroppo conosco Google Sheet e Script da qualche giorno e ho qualche difficoltà. Ciò che tu hai descritto nel tuo video l'ho realizzato e ho provato ad applicare lo stesso script per il foglio "ELENCO CLIENTI" (inserendo un "if") ma non funziona. Però se come destinazione del "appendRow" inserisco un foglio vuoto (lo stesso codice) funziona. Non capisco il motivo. Posso inviarti il file e spiegarti lì? Magari tramite mail, facebook
@andreaguerri.educational9 ай бұрын
@@emanuelememeo504 se vieni sul gruppo FB, trovi me ed altri che ti possono aiutare, nella maggioranza il risultato è garantito. Ti consiglio di condividere però una copia e che si possa usare come editor, in modo tale da sfruttare il tutto (poi una volta trovata la soluzione lo cestini)
@fabiopiciucchi13503 жыл бұрын
Per tenere i dati su un file separato dal modulo di input prima di append dovrei chiamare il file (ss.) con url o c'è una maniera più efficiente? Grazie
@andreaguerri.educational3 жыл бұрын
Ciao Fabio, perfetto hai centrato il punto. In quel caso dovrai semplicemente sostituire il codice: ss.getSheets()[0].appendRow(Dati[0]) con SpreadsheetApp.openByUrl("URL").appendRow(Dati[0]); Altrimenti puoi usare anche solo l'ID del foglio SpreadsheetApp.openById("#ID").appendRow(Dati[0]); Ma deve essere di tua proprietà oppure devi essere autorizzato dal proprietario. Se vuoi invece quei dati incollarli in un foglio differente: SpreadsheetApp.openById("#ID").getSheets()[1].appendRow(Dati[0]); oppure SpreadsheetApp.openById("#ID").getSheetByName("NOMEFOGLIO").appendRow(Dati[0]); o usi l'URL: SpreadsheetApp.openByUrl("URL") Spero di averti aiutato👋👋👋
@andreaisella54572 жыл бұрын
Ciao Andrea, complimenti, molto utili soprattutto per uno come me alle prime armi..volevo chiedere, sarebbe possibile avere convalida dati ma come sorgente dati un database su un altro spreadsheet? Mi spiego, vorrei creare un database generale su uno spreadsheet e poi nuovi documenti per ogni scheda articolo. Con cerca.vert ho risolto incorporando importrange, ma con convalida non ne vengo a capo..grazie mille in anticipo
@andreaguerri.educational Жыл бұрын
Certo, se non sei il proprietario devi farti abilitare. Il codice da usare è var sheetOr = SpreadsheetApp.openById('iddelfoglio').getSheetByName('nomedelfoglio'); Il resto è uguale
@gorga04 Жыл бұрын
Ciao Andrea, complimenti per questo video ma anche per altri, mi è stato molto d'aiuto per capire molte dinamiche sui Fogli di google. Ora però sono al punto che mi stavo personalizzando la riga di Input Dati aggiungendo una nuova cella con all'interno una semplice funzione. Tutto normale fino a qui se non che, quando parte lo script, cancella tutto il contenuto compresa la funzione. Sapresti darmi un aito per modificare lo script e cancellare il contenuto mantenendo la funzione? Grazie in anticipo per l'enorme valore dei tuoi video.
@andreaguerri.educational Жыл бұрын
Semplicemente togli la parte del ClearContent() che ti elimina i dati, compresa la funzione che hai inserito, altrimenti puoi limitare il range di azione dello script clearContent. Se ad esempio hai la funzione in G2, il range per cancellare i dati sarà A2:F2
@carlogrendene87812 жыл бұрын
Ciao Andrea, complimenti e grazie per tutti i suggerimenti. Se io volessi usare il metodo appendRow per copiare una funzione e non il valore di una cella è possibile? Facendo riferimento al tuo foglio InputData, se ad esempio la cella B2 contenesse una formula anziché del testo, come faccio a copiarla tramite script? Non ho idea se la domanda sia tanto "fuori tema" (sono un principiante) o se presupponga di cambiare completamente metodo, in tal caso me ne scuso. Grazie in ogni caso
@andreaguerri.educational2 жыл бұрын
Ciao Carlo, grazie tante per i complimenti. Beh dipende da cosa vuoi copiare, ma ad esempio se volessi da un foglio copiare e incollare delle formule, come chiedevi, la funzione è semplicissima: function copyFormula() { var ss = SpreadsheetApp.getActive(); var uR = ss.getSheets()[0].getLastRow()+1 ss.getRange('A1:C1').copyTo(ss.getSheets()[0].getRange('A'+uR+':C'+uR), SpreadsheetApp.CopyPasteType.PASTE_FORMULA,false); }; Nel mio esempio copio delle formule dalla cella A1 a C1 nel primo foglio (puoi anche mettere getSheetByName("nomefoglio").get... Devi però rispettare le dimensioni, nel mio caso sono 3 celle, puoi non è detto che dev'essere per forza da A a C, ma sempre 3 devono essere (nel mio esempio) quindi puoi mettere da C a E. La funzione getLastRow, conteggia quante righe piene hai e poi devi creare una concatenazione delle celle di destinazione. Il getSheets puoi sostituirlo anche per uR con getSheetByName. Non puoi usare appendRow per il semplice motico che i dati array sono dati semplici, anche se puoi formattare un numero (ad esempio in una data particolare od ora). Nel caso di formule, devi usare la funzione CopyTo e CopyPaste
@generatrendgt17903 жыл бұрын
Buonasera, sa se è possibile costruire una sorta di master/details come script di inserimento dati?
@andreaguerri.educational3 жыл бұрын
Si, se intendi una cosa diversa da quella del video, si possono creare delle convalide dati senza l'uso di celle di appoggio con funzioni. Il livello è più alto, bisogna imparare bene ad usare le matrici o Array e se conosci il linguaggio JavaScript non ti è difficile capire di cosa parlo. Non so quando lo farò uscire il video, ma ho tante (forse troppe 😂) idee in mente anche per questo tipo di video. In pratica mostrerò come creare convalide dati usando i dati inseriti, la cosa bella è proprio questa, selezionando una categoria diversa mi permette di avere un master/details ad hoc. Avevo fatto un video più semplice usando la funzione filter, ma questo in futuro sarà un livello superiore. Intanto grazie e continua a seguirmi...
@generatrendgt17903 жыл бұрын
@@andreaguerri.educational Ad esempio io ho realizzato uno script che replica un form di inserimento dati fatto in html con bootstrap e sono riuscito anche a prelevare da un foglio i dati per poi esporli nel form in dropdownlist e memorizzarli in un altro foglio, mi sono poi bloccato nel momento in cui devo gestire, ipotizziamo, degli ordini di acquisto con più prodotti che nel form devo inserire dinamicamente, dunque al submit mi deve scrivere più record nel foglio di lavoro...
@andreaguerri.educational3 жыл бұрын
@@generatrendgt1790 puoi condividere lo script dove ti blocchi? Ipotizzo: raccolgo i dati in una variabile che chiamo datiProdotti, creo poi la variabile per la convalida dati: var lProdotti = SpreadsheetApp.newDataValidation().requireValueInList(datiProdotti).build(); e infine ss.getRange('D2:D').setDataValidation(cdFiltrata); per assegnare la stessa convalida dati per un'intera colonna, altrimenti devi utilizzare un ciclo per assegnare un tipo di prodotto per una specifica categoria...
@alessandroparibodhaoddera3327 Жыл бұрын
Ciao Andrea, prima di tutto complimenti per la chiarezza delle tue descrizioni su temi non esattamente semplici. Seguendo i tuoi video sono riuscito ad implementare in alcuni miei fogli i tuoi suggerimenti riguardo il metodo per filtrare i dati e per l’inserimento in tabelle attraverso un foglio con solo due righe utilizzando il codice.gs macro. In un foglio atto ad inserire i dati sarebbe possibile selezionando una casella di controllo (VERO/FALSO) che alcuni campi (o celle) durante l’inserimento venissero ricopiati in altrettante celle della stessa riga? Altrimenti (se la casella non si spunta) queste celle verrebbero compilate in modo manuale. (tanto per farti capire -solo per esempio- potrebbe essere un indirizzo di residenza e un indirizzo di domicilio se coincidono una volta scritti quelli di residenza cliccando sulla casella di spunta dovrebbero essere ricopiati nelle relative celle che rappresentano i dati di domicilio. Se non coincidono si scriverebbero a mano sia i dati di residenza che quelli di domicilio.). Un’altra domanda: è possibile, usando il codice per inserire i dati da un foglio ad un altro (con appendrow), far si che quando la macro va a cancellare la riga (dopo aver inserito i dati) cancelli solo i valori e non eventuali formule? (che ho inserito per ricercare i dati in un foglio appoggio filtro: tipo ad esempio =foglioFiltro!nomeCella) Grazie per l’eventuale risposta.
@andreaguerri.educational Жыл бұрын
Scusa ma non capisco, quando digito sia i dati di residenza, sia i dati di domicilio cliccando sulla casella, se sono uguali lo script deve ricopiarmi quei dati in colonne differenti ma sulla stessa riga, altrimenti no? e in caso di no, l'operatore deve scrivere manualmente i dati in quelle celle (stessa riga ma in colonne differenti)? 2) Certo, metti una riga che ti copi i dati anziché nel foglio1 (cioè ss.getSheets()[0] > al posto di 0 == 1 metti 1 == foglio 2 ecc) oppure usi getSheetByName("nomefoglio") che fai prima e il resto del codice sempre con appendrow. 3) ovviamente cambi il range non includendo la cella contenente la formula. Se la formula invece è in mezzo al range, esempio in C2 devi usare getRangeList (developers.google.com/apps-script/reference/spreadsheet/range-list?hl=it): ss.getRangeList( [ "A2:B2" , "D2:F2" ] ).clearContent();
@alessandroparibodhaoddera3327 Жыл бұрын
@@andreaguerri.educational Grazie Andrea, molto gentile per la risposta. Ora studierò sulle tue indicazioni facendo anche esperimenti. Sì avevi capito giusto!!! E ancora complimenti per la chiarezza dei tuoi contenuti.
@flyerplanet8 ай бұрын
Molto bello ma permettimi il suggerimento di ridurre la musica troppo alta e di muovere meno il mouse che risulta molto disturbante con quei movimenti estranei al puntamento
@andreaguerri.educational7 ай бұрын
Grazie per i suggerimenti
@rosariosannino59089 ай бұрын
BUONA DOMENICA ANDREA, CONPLIMENTI PER LA TUA CHIAREZZA. POTRESTI INDICARMI COME METTERE IL VALORE TOTALE DEL PORTAFOGLIO TITOLI, ALL INTERNO DI UNA FORMA, TIPO RETTANGOLO, MA PRENDENDO IL DATO DA UN ALTRO FOGLIO ALL INTRNO DELLO STESSO FOGLIO DI LAVORO IN GOOGLE SHEET. GRAZIE ANTICIPATAMENTE
@andreaguerri.educational9 ай бұрын
Ciao e grazie. Attualmente non è previsto come nel caso di Excel per intenderci. Buona continuazione
@BOJADDYO8 ай бұрын
ciao, è possibile contattarti privatamente per una consulenza?
@andreaguerri.educational7 ай бұрын
Mi trovi sul mio canale Linkedin
@ildiariodelmotociclista878713 күн бұрын
Solo io non riesco metodo 2 ??
@andreaguerri.educational13 күн бұрын
Di cosa stai parlando in particoalre? Cosa non riesci ? Dimmi eventualmente il minuto
@robertobadiali17682 жыл бұрын
Ciao, come posso fare per copiare dei dati presenti su colonne non adiacenti (per esempio A e F) da un foglio ad un altro? Nel nuovo foglio vorrei che fossero compilati nelle rispettive colonne (A e B), ho provato così ma non funziona: function prova() { var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var destinazione = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("prova"); var dati = ss.getRange("A2:F160").getValues(); for (i=0;i
@andreaguerri.educational2 жыл бұрын
Ciao Roberto e grazie. Prova a vedere questo video e quelli dopo kzbin.info/www/bejne/mWXIoICrZdx6b7c, in pratica se devi prendere maggiori valori, il metodo appendRow, non va bene e non serve fare un ciclo (altrimenti ti bruci il pc 😂😂). La via più semplice e quella di creare due array uno per la prima colonna e poi usare setvalues e poi crei la seconda array e sempre con setvalues. Altrimenti diventa un po più difficile da creare, ma se è solo per due colonne fai così, dopo che hai seguito i video, penso sarai in grado di farlo da solo
@robertobadiali17682 жыл бұрын
@@andreaguerri.educational grazie per la risposta; porta pazienza, ma sono alle prime armi quindi non comprendo benissimo il tuo consiglio. Riusciresti per cortesia a darmi una traccia del codice? Seguendo il video che mi hai consigliato (fatto molto bene!!!) non riesco ugualmente a trovare la soluzione. Come scrivevo nel commento precedente l'esigenza è trasferire i dati dal foglio di origine, strutturato in + colonne, in un nuovo foglio. La particolarità è che ciò che voglio trasferire non si trova in colonne adiacenti. Potrei, per semplificarmi la vita, riordinare le colonne, ma così facendo andrei a sconfigurare altri foglio Google collegati con IMPORTRANGE. A presto
@andreaguerri.educational2 жыл бұрын
@@robertobadiali1768 Si tranquillo. Come ti dicevo segui il video che ti ho condiviso, e poi il successivo (il 5 della serie). Così comprendi le basi dell'utilizzo di getValues e setValues e i meccanismi di come funzionano le array. Se una volta fatto trovi degli ostacoli puoi dirmelo. Ma prova da solo, seguendo le mie indicazioni e adattandolo al tuo caso. Ti posso suggerire di usare due liste di dati (dati1 e dati2). Fammi sapere poi com'è andata
@andreaguerri.educational2 жыл бұрын
@@robertobadiali1768 In pratica puoi fare in questo modo: var dati = ss.getRange("A2:F160").getValues().map((a=> [a[0],a[5]]); ss.getSheetByName('NOMEFOGLIO').getRange(1,1,dati.length,dati[0].length).setValues(dati); In pratica raccogli tutti i dati e poi rimappi i dati prendendo solo i dati della colonna A e F e poi li inserisci nel nuovo foglio. Cmq se guardi i video capirai anche perché ho usato map o i numeri tra le parantesi quadrate e ho usato length in quel modo
@robertobadiali17682 жыл бұрын
@@andreaguerri.educational Grazie Andrea per il supporto. Purtroppo non funziona e non riesco a trovare la soluzione. Questa funzione la attivo ogni primo del mese importando su un unico foglio i dati contenuti nei precedenti 12 (1 per mese). Le colonne a disposizione sono 19 (dalla A alla S) e le righe variano ogni volta in base ai dati inseriti durante il mese appena trascorso. Quindi il numero di righe è variabile, mentre per le colonne ciò che vorrei importare è ben determinato e sono le colonne dalla A alla F + la colonna I e J + L e M. Il codice che ho scritto, seguendo il tuo ultimo suggerimento è questo: function InputData() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var Dati = ss.getRange("A2:S160").getValues().map((a=> [a[0],a[5]])); ss.getSheetByName('DataBase').getRange(1,1,dati.length,dati[0].length).setValues(Dati); ss.getSheets()[0].appendRow(Dati[0]); } Questo l'errore Errore ReferenceError: dati is not defined InputData @ Codice.gs:5 Seguendo il tuo video e utilizzando il codice pubblicato riesco a importare i dati da A a F (e non quelli nelle colonne successive non consecutive), inoltre mi importa solo la prima riga di dati e non tutto l'elenco. A presto Roberto
@andreapiccoli4514 Жыл бұрын
Ciao Andrea e grazie per i tuoi consigli! Fantastici. Vorrei chiederti: ho una situazione di codice scritto come il tuo, ma... invece di cancellare tutta la riga A2:U2 vorrei cancellare solo alcune celle. mi puoi consigliare come scrivere la il codice? grazie mille! function INSERIMENTO_DATI() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var dati = ss.getRange("A2:U2").getValues(); ss.getSheets()[0].appendRow(dati[0]) ss.getRange("A2:U2").clearContent(); ss.toast('✅ inserimento dati effettuato correttamente!')
@andreaguerri.educational Жыл бұрын
ss.getRange("A2:U2") è la richiesta dell'intervallo, quindi basta sostituire A2:U2 con le celle che vuoi
@andreapiccoli4514 Жыл бұрын
@@andreaguerri.educational quindi in questo modo... A2:C2:F2:G2: ect....? Grazie!