[Risolto] Una macro per copiare celle su altro file

Discussioni sull'applicazione per i fogli di calcolo
Rispondi
solitariopc
Messaggi: 63
Iscritto il: mercoledì 1 febbraio 2012, 12:36

[Risolto] Una macro per copiare celle su altro file

Messaggio da solitariopc »

Buona sera a tutti coloro che leggono queste righe!
Ritorno a chiedere aiuto per una soluzione che certamente necessita di una macro e che non sono in grado di scrivere (buona volontà ma testa dura). Spiego quello che cerco e allego file
per maggior chiarezza. Scopiazzando qua e là ho costruito un quadro della ruota di Bari (saranno prodotti altri file uno per ogni ruota) e un file a parte dove importare le letture delle estrazioni settimanali (ho inserito i due fogli nello stesso file per comodità). Ciò che interessa al progetto e quello di smistare ogni ruota dell'estrazione importata nel l'ultimo rigo libero del proprio file senza star lì a copiarlo uno alla volta. Chiedo anticipatamente scusa se sono stato poco chiaro nell'esporre la richiesta, rimango a vostra disposizione per chiarimenti.
Buonanotte e grazie dell'ascolto.
Allegati
Lotto.ods
(20.9 KiB) Scaricato 146 volte
Ultima modifica di solitariopc il sabato 9 dicembre 2017, 22:35, modificato 1 volta in totale.
LibreOffice 5.1.6.2 su LinuxMint 18
patel
Volontario attivo
Volontario attivo
Messaggi: 4030
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Una macro per copiare celle su altro file

Messaggio da patel »

io non ho capito, dovresti dire chiaramente quali sono i dati da copiare e dove
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
solitariopc
Messaggi: 63
Iscritto il: mercoledì 1 febbraio 2012, 12:36

Re: Una macro per copiare celle su altro file

Messaggio da solitariopc »

Buonasera Patel, chiedo scusa per la poca chiarezza e pongo rimedio alla mia confusione.
L'idea è creare una cartella con 12 file differenti uno per ogni singola ruota (Bari, Cagliari... attenzione non fogli, ma file, questo per leggerezza e praticità) e uno dove copiare le singole estrazioni settimanali. Acquisiti gli estratti dal sito lottomatica copia-incolla chiedo come copiare in modo automatico (macro) la riga Bari e relativi estratti nel file Bari, la riga Cagliari con estratti nel file Cagliari e via di seguito per tutte e undici ruote, tenendo presente che questo copia-incolla deve aggiungersi sull'ultima riga utile del foglio.
Se non sono stato chiaro nell'esposizione lo dica pure, disponibilità sempre.
Grazie per l'aiuto, come sempre apprezzato e prezioso.
P.S. Allego nuovo file spero sia più chiaro.
Allegati
Lotto2.ods
(24.67 KiB) Scaricato 120 volte
LibreOffice 5.1.6.2 su LinuxMint 18
Avatar utente
unlucky83
Volontario
Volontario
Messaggi: 2355
Iscritto il: lunedì 7 gennaio 2013, 1:23
Località: Latina

Re: Una macro per copiare celle su altro file

Messaggio da unlucky83 »

Visto che usi LinuxMint, ti consiglio di scrivere direttamente uno script bash:
Con wget scarichi la pagina html o il pdf
Con i comandi del terminale lavori sui file di testo, creandoti i 12 file txt che desideri.
Inoltre se hai in mente di fare qualche calcolo strano con i numeri, ti avviso che la potenza di calcolo del terminale batte OpenOffice

Io faccio una cosa del genere per il 10elotto
P.s.
Ci guadagno soltanto un buon esercizio mentale e qualche giga occupato da numeri ahahaha
LibO:Versione: 6.2.8.2
Build ID: 1:6.2.8~rc2-0ubuntu0.16.04.1- 32-bit
-
Se risolvi:
1. Condividi la soluzione qui con noi
2. Metti [Risolto] al titolo del primo messaggio come spiegato qui
patel
Volontario attivo
Volontario attivo
Messaggi: 4030
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Una macro per copiare celle su altro file

Messaggio da patel »

soluzione interessante, ma richiede un discreto bagaglio di cultura informatica, non sarebbe male vedere uno script di esempio.
Oltretutto potrebbe essere utile anche su Win, mi sembra che esista un emulatore bash o qualcosa del genere.
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Avatar utente
unlucky83
Volontario
Volontario
Messaggi: 2355
Iscritto il: lunedì 7 gennaio 2013, 1:23
Località: Latina

Re: Una macro per copiare celle su altro file

Messaggio da unlucky83 »

Su win7 c’è il prompt dei comandi su cui è possibile usare i programmi da linea di comando necessari: bash o sh, wget,pdftk,pdftotxt...la seccatura è che devi indicare il percorso di questi programmi mentre su Linux è sufficiente indicare il nome per eseguire il comando.
A breve allego uno script di esempio per Linux
LibO:Versione: 6.2.8.2
Build ID: 1:6.2.8~rc2-0ubuntu0.16.04.1- 32-bit
-
Se risolvi:
1. Condividi la soluzione qui con noi
2. Metti [Risolto] al titolo del primo messaggio come spiegato qui
solitariopc
Messaggi: 63
Iscritto il: mercoledì 1 febbraio 2012, 12:36

Re: Una macro per copiare celle su altro file

Messaggio da solitariopc »

Buonasera, come osservato e messo in evidenza da Patel ciò che unlucky83 propone comporta un bagaglio di conoscenza che personalmente non possiedo ma la buona volontà di imparare quella c'è. Seguirò la discussione, se Voi vorreste, io sono interessato.
Buona notte. Saluti.
LibreOffice 5.1.6.2 su LinuxMint 18
Avatar utente
unlucky83
Volontario
Volontario
Messaggi: 2355
Iscritto il: lunedì 7 gennaio 2013, 1:23
Località: Latina

Re: Una macro per copiare celle su altro file

Messaggio da unlucky83 »

Metto un esempio di script bash per @patel. Per eseguirlo salvarlo in un file con estensione .sh, poi da terminale dare il comando "bash /percorso/nomefile.sh" .
Lo script crea files se non presenti, in alternativa aggiunge elementi a files esistenti:
- raccolta.txt --> in cui conservo le estrazioni già precedentemente inserite, per evitare doppi inserimenti
- Bari.txt --> in cui conservo la ruota di Bari.
-Cagliari.txt ; Firenze.txt; Genova.txt --> come sopra
Necessita dei comandi wget e html2text che non sono presenti nell'istallazione base di tutte le distro linux.

Codice: Seleziona tutto

#!/bin/bash

wget "http://www.estrazionedellotto.it/" --output-document ultimaEstr.htm

html2text ultimaEstr.htm  > ultimaEstr.txt
estrazione=`grep "Estrazione n." ultimaEstr.txt`
presente=`grep "$estrazione" raccolta.txt`
if [ "${#presente}" -eq "0" ]; then
    sed -n -e  "/^Bari\ .*[0-9]$/p" ultimaEstr.txt >>Bari.txt
    sed -n -e  "/^Cagliari\ .*[0-9]$/p" ultimaEstr.txt >>Cagliari.txt
    sed -n -e  "/^Firenze\ .*[0-9]$/p" ultimaEstr.txt >>Firenze.txt
    sed -n -e  "/^Genova\ .*[0-9]$/p" ultimaEstr.txt >>Genova.txt
###altre ruote    
    echo $estrazione >>raccolta.txt
fi
Evitando il bash e rimanendo in openoffice, bisogna ricorrere alle macro, ovvero scrivere del codice in starbasic che risulterà più lungo e complicato di questo.
@solitariopc a che livello sei con le macro?
LibO:Versione: 6.2.8.2
Build ID: 1:6.2.8~rc2-0ubuntu0.16.04.1- 32-bit
-
Se risolvi:
1. Condividi la soluzione qui con noi
2. Metti [Risolto] al titolo del primo messaggio come spiegato qui
patel
Volontario attivo
Volontario attivo
Messaggi: 4030
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Una macro per copiare celle su altro file

Messaggio da patel »

Credo che questa strada del bash sia la più praticabile visto che lo scopo è ottenere file di testo, io al momento non la posso provare avendo eliminato la partizione Linux dal mio pc, inoltre sul forum di Ubuntu potrai facilmente ottenere assistenza qualificata su bash
https://forum.ubuntu-it.org/viewforum.p ... aa9e8f2a8a
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
solitariopc
Messaggi: 63
Iscritto il: mercoledì 1 febbraio 2012, 12:36

Re: Una macro per copiare celle su altro file

Messaggio da solitariopc »

Buongiorno, scusate il ritardo.
Rispondo a unlucky83. La domanda sulla conoscenza nello scrivere macro e nulla, e una capacità che non sono riuscito ad apprendere. Certo leggo varie spiegazioni e opuscoli ma la non conoscenza dell'inglese mi frena.
Lo script che ha postato lo terminerò di scrivere e le faro sapere, non ho avuto modo di scaricarlo, completarlo e verificarlo. La terrò informata
Grazie dell'interesse che ha dimostrato spero di risentirla presto.
Una buona giornata anche a Patel per le dritte suggeritemi.
LibreOffice 5.1.6.2 su LinuxMint 18
Avatar utente
lucky63
Volontario assiduo
Volontario assiduo
Messaggi: 3059
Iscritto il: martedì 18 maggio 2010, 17:01

Re: Una macro per copiare celle su altro file

Messaggio da lucky63 »

solitariopc ha scritto:attenzione non fogli, ma file, questo per leggerezza e praticità
Per rendere “leggero” un file/foglio bisogna cercare di limitare le formule applicate.
Nel tuo foglio BARI le formule di testa gestiscono fino alla riga 2581 (che non è un problema).
Problema subentra nelle singole righe successive in cui devi gestire 90 formule per rigo al fine di posizionare i riscontri sulla specifica colonna.
Moltiplicale per il numero di righe da gestire (e per il numero dei fogli/ruote) e addio leggerezza

Archiviare in singoli file anziché nei fogli comporta anche l'apertura, salvataggio e chiusura con relativi tempi aggiuntivi. Quindi senza ridurre le formule non raggiungeresti comunque un gran risultato.

Nel file che allego propongo una soluzione in cui ho eliminato tutte le formule per il posizionamento dei numeri nelle rispettive colonne del foglio BARI duplicandolo poi in CAGLIARI, FIRENZE, ….

Ho inserito una macro da accettare all'avvio del file.

Cliccando sul pulsante “Rosso” presente nel foglio “Estrazioni” si attiva la macro che in qualche secondo accoda in ciascun foglio i rispettivi riscontri ridistribuendoli anche sulla rispettiva colonna.

I singoli fogli (che non vanno spostati di posizione) risulteranno gestiti poi dalle poche formule presenti nell'intestazione e nel lato destro (da ricontrollare).

Ad esigenza specifica il singolo foglio potrà sempre essere esportato come singolo file.

Fai test …
.
Allegati
Test - MacroCopiaDatiEstrazioneNeiSingoliFogliRuoteDelLotto.ods
(48.72 KiB) Scaricato 167 volte
solitariopc
Messaggi: 63
Iscritto il: mercoledì 1 febbraio 2012, 12:36

Re: Una macro per copiare celle su altro file

Messaggio da solitariopc »

Buonasera A Voi tutti.
Scrivo e rispondo a unlucky83 che con competenza mi ha proposto la soluzione.
Quello che cercavo di creare corrisponde a ciò che il file modificato è riuscito a realizzare, con le parole non riuscivo a spiegare correttamente; le prove fatte come suggerito unlucky83
hanno restituito la giusta soluzione e sono contento delle osservazioni mosse sulla leggerezza del file/foglio. La formattazione condizionata e le varie formule cancellare erano per una panoramica a primo sguardo, un colpo d'occhio; e per dirla tutta non avevo le conoscenze per una si fatta soluzione, apprezzo anche i commenti alle voci della macro che Lei a scritto, la leggero con attenzione, certamente può essere fonte di conoscenza.
Grazie ancora della disponibilità che ha manifestato, la saluto e buon fine settimana.

P.S.
Ho smanettato anche sullo scipt in bash che aveva postato e suggerito ma non ho compreso il funzionamento, crea file di testo vuoti e scarica l'intera pagina dell'estrazioni; non credo che sia opportuno continuare adesso la chiacchierata sugli scipt in bash non è il luogo giusto.
LibreOffice 5.1.6.2 su LinuxMint 18
Avatar utente
unlucky83
Volontario
Volontario
Messaggi: 2355
Iscritto il: lunedì 7 gennaio 2013, 1:23
Località: Latina

Re: [Risolto] Una macro per copiare celle su altro file

Messaggio da unlucky83 »

Per chiarezza il sottoscritto (Unlucky83) è una persona distinta da lucky63...quest’ultimo ha allegato il file con macro mentre colui che sta rispondendo al momento aveva proposto l’utilizzo del file bash :)
Chiarito ciò, solo per dare a Cesare ciò che è di Cesare e dare a lucky63 i meriti che giustamente gli spettano, la strada dello script bash probabilmente non ha dato i risultati attesi solo perchè mancava l’istallazione di Programmi che in Linux non sono inclusi in tutte le distribuzioni.
LibO:Versione: 6.2.8.2
Build ID: 1:6.2.8~rc2-0ubuntu0.16.04.1- 32-bit
-
Se risolvi:
1. Condividi la soluzione qui con noi
2. Metti [Risolto] al titolo del primo messaggio come spiegato qui
solitariopc
Messaggi: 63
Iscritto il: mercoledì 1 febbraio 2012, 12:36

Re: [Risolto] Una macro per copiare celle su altro file

Messaggio da solitariopc »

Salve, sono qui per chiedere formalmente scusa per la svista avuta ieri sera nel rispondere a unlucky83, voglio portare a mia discolpa l'ora inoltrata in cui ho scritto il messaggio, perdono per la confusione e spero di non averla offesa. Chiedo scusa anche a lucky63 per lo scambio involontario dei nomi.
Ancora grazie di tutto il tempo dedicatomi.
Buona domenica.
LibreOffice 5.1.6.2 su LinuxMint 18
Rispondi