scelta, confronto, copia di dati

Creare una macro - Scrivere uno script - Usare le API
Rispondi
settepixel
Messaggi: 20
Iscritto il: giovedì 4 dicembre 2014, 22:53

scelta, confronto, copia di dati

Messaggio da settepixel »

Openoffice Calc

Inesperta. Vi spiego i passaggi che dovrei fare:

- Poter scegliere delle righe (variabili) da confrontare (ES. DA RIGA 45 A RIGA 60) di un Foglio1
- Confrontare ogni dato presente nelle colonne da F a J corrispondenti a queste righe con i dati presenti nella colonna A di un altro foglio (Foglio2).
- Se la corrispondenza viene trovata devo catturare i dati di tutte le celle piene corrispondenti alla riga (quindi es. b2,c2,d2, ectt) e copiarli uno sotto l'altro in un terzo Foglio
- Ripetere per ogni corrispondenza trovata, aggiungendo nel terzo foglio sempre a seguire.

Chi mi aiuta? Per ora non mi è possibile allegare il file. Grazie.
open office 4.1
Gaetanopr
Volontario
Volontario
Messaggi: 3300
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: scelta, confronto, copia di dati

Messaggio da Gaetanopr »

Dovresti allegare un esempio rispecchiante l'originale nel formato con il risultato desiderato
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
settepixel
Messaggi: 20
Iscritto il: giovedì 4 dicembre 2014, 22:53

Re: scelta, confronto, copia di dati

Messaggio da settepixel »

questo è il file

1) le righe variabili sono in riferimento alle date (da - a ) presenti nel foglio MENU (volendo, se non sapete consigliarmi di meglio, potrei impostare le 2 date nel foglio impostazioni e poi tramite un pulsante passare al punto 2)
2) ogni dato (es.RISO IN BIANCO) devo ricercarlo/confrontarlo nel foglio RICETTE colonna A (vedi dati da A17 in poi)
3) se il piatto cè allora devo prendere gli ingredienti descritti nelle riga corrispondente (es, b18 c18 d18 ect) e copiarli nel foglio DA COMPRARE

gRAZIE
Allegati
MENU SETTIMANALE.ods
(37.28 KiB) Scaricato 164 volte
Ultima modifica di charlie il giovedì 11 dicembre 2014, 22:59, modificato 1 volta in totale.
Motivazione: Eliminata ripetizione del primo messaggio
open office 4.1
settepixel
Messaggi: 20
Iscritto il: giovedì 4 dicembre 2014, 22:53

Re: scelta, confronto, copia di dati

Messaggio da settepixel »

nessuno ? :/
open office 4.1
settepixel
Messaggi: 20
Iscritto il: giovedì 4 dicembre 2014, 22:53

Re: scelta, confronto, copia di dati

Messaggio da settepixel »

io intanto sono riuscita nel mio piccolo a fare un piccolo pezzo del punto 2, ossia confrontare UN SOLO dato con i dati nella colonna A del foglio RICETTE. Per comodità ho fatto partire la lista dalla cella a1 cosi tramite la funzione CONFRONTA riesco almeno a ricavare la riga nel quale si trova il dato che sto cercando.

=CONFRONTA(MENU.F6;RICETTE.A1:A239)

Poi non so andare avanti :/
Ultima modifica di charlie il giovedì 11 dicembre 2014, 22:58, modificato 1 volta in totale.
Motivazione: Eliminata citazione inutile
open office 4.1
Avatar utente
unlucky83
Volontario
Volontario
Messaggi: 2355
Iscritto il: lunedì 7 gennaio 2013, 1:23
Località: Latina

Re: scelta, confronto, copia di dati

Messaggio da unlucky83 »

Ciao
la mia opinione è che il file che hai allegato è ordinato in forma soggettiva e si presta male all'utilizzo di macro. Mi spiego meglio.
Indubbiamente tu nell'usarlo ti trovi bene, ma vedendo che nelle colonne F,G,H,I,J ci scrivi un pò di tutto (separi a volte con i +, altre volte con i -, altre volte metti dei commenti tipo in H31), è molto probabile che un'eventuale macro ti riporta i dati corretti e completi una volta ogni tanto.
Secondo me dovresti prima lavorare sulla riorganizzazione dei fogli, in modo tale da rendere il lavoro più facile a chi vorrebbe darti una mano a scrivere le macro che ti servono...

alcuni suggerimenti per foglio Menu:
1)cerca il più possibile di inserire meno dati possibili con la tastiera, usa la validità delle celle per inserire le ricette
2)considera il numero massimo di ricette che puoi applicare a pranzo a cena ( 3, 4 , o 5) e quindi scegli un numero pari di colonne per inserire le ricette di pranzo e cena
3)scegli una colonna dove mettere eventuali note, diversa da quella dove inserisci le ricette

Ti allego un file in cui ti ho messo due formule nella colonna A e C di foglio Menu, per semplificarti la vita per l'inserimento di nuovi dati. Basta copiare le formule nelle righe successive e in automatico hai la data e il giorno della settimana.

Al momento non mi azzardo a scrivere nemmeno una riga di codice, ma sono disponibile a suggerimenti e chiarimenti orientati a impostare il/i foglio/i al meglio per tale scopo.
Non me ne volere a male :)
Saluti

p.s.
Non c'è bisogno di citare per intero il messaggio precedente, ancor meno se non è utile :alarm:
 Editato: Allegato rimosso perchè presente altra versione nei messaggi seguenti 
Ultima modifica di unlucky83 il sabato 13 dicembre 2014, 12:29, modificato 1 volta in totale.
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
settepixel
Messaggi: 20
Iscritto il: giovedì 4 dicembre 2014, 22:53

Re: scelta, confronto, copia di dati

Messaggio da settepixel »

ciao, grazie per la risposta e per le 2 formule nelle colonne a e c.
Il post l'ho ri-citato perche serviva a me x commentare riportando esattamente i punti (io smemorata).
Sicuramente cè qualche miglioria da fare nelll'organizzazione del foglio, ma mi sono dimenticata di dire che in parte lo avevo già pensato ri-organizzato, infatti i menu saranno composti in totale da 4 piatti (2 a pranzo colonne F e G , 2 a cena H e I), e in J qualche variazione, quindi tutti quei + che semparano una ricetta dall'altra non ci saranno.

In base ai tuoi consigli:
1) non ho capito... cioè? mi puoi fare degli esempi? Non ho specificato tutto, ma le ricette VENGONO GIA' inserite con la validità celle (se è quello che intendi) tramite l'elenco presente in foglio RICETTE (non mi ricordo se l'avevo già impostato nel file allegato, forse solo nelle ultime celle)
2) non ho capito neanche questo... come ho spiegato sopra a pranzo e a cena sono già state previste 2+2 colonne + 1 per le variazioni in enerale
3) idem, x quello ci sarà la K

Quindi... bho, ma mi sembra già di aver fatto tutto... ora mi serve capire come almeno riuscire a fare il punto 1, ossia impostare un intervallo di date (da- a ) da cui poi pescare i dati delle colonne f-g-h-i-j- e confrontarli con quelli dell'altro foglio...
open office 4.1
Avatar utente
unlucky83
Volontario
Volontario
Messaggi: 2355
Iscritto il: lunedì 7 gennaio 2013, 1:23
Località: Latina

Re: scelta, confronto, copia di dati

Messaggio da unlucky83 »

settepixel ha scritto:<...> mi sono dimenticata di dire che in parte lo avevo già pensato ri-organizzato,<...> tutti quei + che separano una ricetta dall'altra non ci saranno.<...>
Buono a sapersi.
<...> ma le ricette VENGONO GIA' inserite con la validità celle
Bene. Mi riferivo proprio a quello che hai fatto SOLO alle righe 61 e 62 del foglio Menu.
come ho spiegato sopra a pranzo e a cena sono già state previste 2+2 colonne + 1 per le variazioni in enerale
Siccome hai allegato un file che dovrebbe essere di esempio, mi sono permesso di guardare un pò tutto il foglio Menu, ti cito il contenuto di F14
"PASTA ALL'OLIO + POMODORI (SPONSOR) + SALMONE AL VAPORE (SPONSOR)"
e ho contato 3 pietanze. Stessa cosa in H12, H15, H26,H28, H40. Quindi mi è sorto il dubbio che il numero massimo di pietanze per pasto fosse 3 e in tal caso due colonne sarebbero risultate insufficienti
3) idem, x quello ci sarà la K
Ovviamente, non sapendo che avrei dovuto guardare solo dal rigo 61 in poi, ho visto che note e commenti erano stati inseriti nelle celle soprastanti insieme alle ricette. Se le scriverai nella colonna K non c'è alcun problema.

Codice: Seleziona tutto

Quindi... bho, ma mi sembra già di aver fatto tutto... 
Bhè...diciamo che potevi presentare un file di esempio più chiaro.

Nonostante ciò, ho preparato una macro, che sfruttando le due formule che hai inserito in "IMPOSTAZIONI", fa ciò che chiedi. Visto il file di esempio, funziona solo con le righe di "MENU" impostate come la riga 61
 Editato: Allegato rimosso perchè presente altra versione nei messaggi seguenti 
Ultima modifica di unlucky83 il sabato 13 dicembre 2014, 14:29, modificato 2 volte in totale.
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
settepixel
Messaggi: 20
Iscritto il: giovedì 4 dicembre 2014, 22:53

Re: scelta, confronto, copia di dati

Messaggio da settepixel »

Bhe, dici giusto!!
Intanto grazie di cuore!!!!
Ora me lo studio perche vorrei anche capire a grandi linee il codice, specialmente a che serve la variabile scovaBastardi :D poi sicuramente avrò altre cose da chiedere... ci sentiamo a breve!! ;*
open office 4.1
Avatar utente
unlucky83
Volontario
Volontario
Messaggi: 2355
Iscritto il: lunedì 7 gennaio 2013, 1:23
Località: Latina

Re: scelta, confronto, copia di dati

Messaggio da unlucky83 »

ops..quella variabile era il nome della funzione presente nella mia libreria, che ho incollato nel file allegato, modificandola per le tue esigenze (anche rinominata più sobriamente)...la funzione si chiama scovaricetta quindi dovrebbe esserci in quel punto:
scovaricetta=nothing
Mi è sfuggita! :oops:
Complimenti per aver trovato in così poco tempo "l'intruso" nel codice

Fai benissimo a studiarti il codice, perchè se volessi impaginare in maniera diversa i vari fogli, almeno sai quali punti del codice vanno cambiati.
Per esempio, il foglio "Impostazioni" potrebbe essere eliminato, le celle con la data e le due formule potrebbero essere poste nella prima riga del foglio "DA COMPRARE", come anche il pulsante, spostando tutta la tabella del foglio in questione più in basso di una o due righe.
Queste semplici modifiche nei fogli, ovviamente, andrebbero accompagnate a modifiche della macro.
Inoltre ho previsto che il numero massimo di ingredienti per ricetta è 9, quindi nel caso in cui inserisci ricette più complesse, dovresti ampliare l'area di controllo.
Buono studio
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
settepixel
Messaggi: 20
Iscritto il: giovedì 4 dicembre 2014, 22:53

Re: scelta, confronto, copia di dati

Messaggio da settepixel »

Grazie, ho dato un occhiata al codice e mi pare tutto chiaro: ovvio che da sola non ci sarei mai arrivata, quindi veramente grazie!

I prossimi step sono quelli di:
1) eliminare (o meglio integrare) i doppioni nella lista DA COMPRARE (in caso ci siano degli ingredienti doppi/tripli...) quindi ad esempio se ho 2 volte il riso mi deve aumentare le quantità... ora mi studio come impostare il tutto poi magari chiedo nello specifico.

2) Automatizzare i giorni previsti di spesa (magari per 4-6 cicli), ossia: la spesa viene fatta circa ogni 15 giorni, non di sabato, nè di domenica e nè quando nella colonna B vi è la "p". Viene segnato il testo "PREVISTA *num* SPESA" (prevista *prima* spesa) nella colonna K (delle note) magari con la cella colorata di rosso. Sarebbe bello poter impostare altre opzioni (ad es. non il tal giorno...). Il calcolo dei giorni di spesa avviene in automatico a partire dall'ultima cella (precedente al giorno odierno) con scritto SPESA. Sarebbe utile che vengano segnate 4-6 previste spese, quindi diciamo in modo da avere le spese programmate per 2 o piu mesi. Il giorno di spesa reale verrà comunque scritto sempre in quella colonna, quindi verrà o sostituito il testo "prevista spesa" o verrà cancellato e scritto in altra cella.

Mi sai dare qualche dritta per questo? grazie nuovamente
open office 4.1
Avatar utente
unlucky83
Volontario
Volontario
Messaggi: 2355
Iscritto il: lunedì 7 gennaio 2013, 1:23
Località: Latina

Re: scelta, confronto, copia di dati

Messaggio da unlucky83 »

Punto 1 è chiaro e te l'ho sistemato.
settepixel ha scritto: <...>Viene segnato il testo "PREVISTA *num* SPESA" (prevista *prima* spesa) nella colonna K (delle note) magari con la cella colorata di rosso.<...>

Si può fare con la formattazione condizionale, magari usando le espressioni regolari o con la combinazione della funzione SE e della funzione STRINGA.ESTRAI di calc.
Sarebbe bello poter impostare altre opzioni (ad es. non il tal giorno...)
Cioè se è domenica o sabato o in B c'è p vuoi un vistoso "NO SPESA"?
il calcolo dei giorni di spesa avviene in automatico a partire dall'ultima cella (precedente al giorno odierno) con scritto SPESA.<...>Il giorno di spesa reale verrà comunque scritto sempre in quella colonna, quindi verrà o sostituito il testo "prevista spesa" o verrà cancellato e scritto in altra cella.
Secondo me va benissimo se usi ancora la colonna K.
Sarebbe utile che vengano segnate 4-6 previste spese, quindi diciamo in modo da avere le spese programmate per 2 o piu mesi.
Con una macro che viene eseguita ogni tanto, si può inserire la scritta "Prevista Spesa n° #num" fino all'ultima rigache presenta in A la data
Allegati
MENU SETTIMANALE.ods
(51.61 KiB) Scaricato 154 volte
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
settepixel
Messaggi: 20
Iscritto il: giovedì 4 dicembre 2014, 22:53

Re: scelta, confronto, copia di dati

Messaggio da settepixel »

unlucky83 ha scritto:Punto 1 è chiaro e te l'ho sistemato.
Grazie!!
unlucky83 ha scritto: Cioè se è domenica o sabato o in B c'è p vuoi un vistoso "NO SPESA"?
No... ho dimenticato un pezzo... se cade in uno di questi giorni si avanza di un giorno, finchè si trova il "giorno ideale".
Come "altre opzioni" intendo dire "non segnare spesa il 25-12-2014" ossia impostare delle date in cui si è già sicuri di non poter fare la spesa perche magari si hanno altri impegni.

Provo a pacioccare un po' e vedo cosa riesco a fare, intanto grazie!
open office 4.1
Rispondi