Macro con array in una cella

Discussioni sull'applicazione per i fogli di calcolo
Rispondi
ilkappa
Messaggi: 39
Iscritto il: mercoledì 1 febbraio 2017, 12:52

Macro con array in una cella

Messaggio da ilkappa »

Ciao a tutti.
Sto realizzando un foglio per calcolare il costo di alcuni articoli, ogniuno dei quali è ottenuto sommando differenti valori.
Ho realizzato 3 fogli:
nel primo vengono generate delle variabili generali che utilizzo per calcolare i totali
il secondo (chiamato Preventivo) nel quale ho intenzione di esplodere in modo leggibile e modificabile i valori che concorrono a formare il prezzo finale
il terzo (Articoli) che contiene una lista di articoli con alcuni valori utili a generare il prezzo finale.

Nel terzo foglio ho creato quattro colonne che devono (questa sarebbe la mia idea e qui accetto consigli) contenere un array relativo alle tabelle presenti nel foglio Preventivo
cosi che, quando seleziono quella riga spostandomi nel foglio Preventivo, ritrovo all'interno delle celle bianche i valori utilizzati per generare il prezzo finale.
Quindi la domanda sostanzialmente è: vale la pena inserire un array in una cella (o qualcosa di simile)del fogli Articoli che poi una macro si occupera di splittare ed inserire nelle relative celle del foglio Preventivo o conviene creare tante colonne quante sono le righe necessarie nelle tabelle del foglio Preventivo?

Allego il foglio che sto utilizzando, non è ancora finito e alcuni campi restituiscono errore ma non sono interessanti per questo argomento.
Ho riportato alla riga 2 del foglio Articoli quello che secondo me potrebbe essere la rappresentazione di un array (assurdo) e nel foglio Preventivo, la sua esplosione.
Allegati
prezziario_prova.ods
(37.2 KiB) Scaricato 88 volte
OpenOffice 3.1 su Ubuntu 16.04
ilkappa
Messaggi: 39
Iscritto il: mercoledì 1 febbraio 2017, 12:52

Re: Macro con array in una cella

Messaggio da ilkappa »

Buonasera ragazzi.
Ok, visto che nessuno ha risposto probabilmente è perchè non avete capito la domanda. Questo significa una cosa sola: mi sono espresso da schifo!!

Vediamo se riesco ad arrivarne a capo provando ad esprimere la domanda in modo diverso.

E' possibile tramite una Macro, acquisire i valori di un range di celle per poter poi utilizzare i valori stessi separatamente?

Che so, se ho la colonna B
riga1 pinco
riga2 pallino
riga3 ando
riga4 al
riga5 mercato

riesco con una funzione ad acquisire (senza il getcellbyname(B1),getcellbyname(B2) ecc..) le 5 righe della colonna B ed esploderle in un semplice msgbox cosi:
pinco-pallino-ando-al-mercato

???

Mi sono spiegato meglio? Sperem... :D

Grazie per la pazienza
OpenOffice 3.1 su Ubuntu 16.04
patel
Volontario attivo
Volontario attivo
Messaggi: 4020
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Macro con array in una cella

Messaggio da patel »

E' possibile, ti sei spiegato bene, se non ti risponde nessuno dovrai attdendere il mio ritorno dalla vacanza previsto per il 20 p .v.
-------------------
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
patel
Volontario attivo
Volontario attivo
Messaggi: 4020
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Macro con array in una cella

Messaggio da patel »

sono tornato, dal file allegato non ho capito niente ma dal secondo post sì, quindi sei hai i dati nella colonna B prova questa macro

Codice: Seleziona tutto

Sub ColumnToArray 
dim arr()
Sheet = ThisComponent.Sheets(0)
CellRange = Sheet.getCellRangeByName("B1:B5")
arr = CellRange.getDataArray
For i = LBound(arr()) To UBound(arr())
   oRow() = arr(i)
   s=s & oRow(0) & " "
Next
msgbox s

End Sub
-------------------
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
Rispondi