Pannello di Controllo Moderatore ]

Macro con array in una cella

Discussioni sull'applicazione per i fogli di calcolo

Macro con array in una cella

Messaggioda ilkappa » mercoledì 6 giugno 2018, 17:45

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 12 volte
OpenOffice 3.1 su Ubuntu 16.04
ilkappa
 
Messaggi: 26
Iscritto il: mercoledì 1 febbraio 2017, 13:52

Re: Macro con array in una cella

Messaggioda ilkappa » giovedì 7 giugno 2018, 22:01

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
ilkappa
 
Messaggi: 26
Iscritto il: mercoledì 1 febbraio 2017, 13:52

Re: Macro con array in una cella

Messaggioda patel » sabato 9 giugno 2018, 22:00

E' possibile, ti sei spiegato bene, se non ti risponde nessuno dovrai attdendere il mio ritorno dalla vacanza previsto per il 20 p .v.
-------------------
OpenOffice 4.1 e Libre Office 6 su Windows 10
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
patel
Volontario attivo
Volontario attivo
 
Messaggi: 2892
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Macro con array in una cella

Messaggioda patel » venerdì 22 giugno 2018, 10:04

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   Espandi visualeStringi visuale
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
-------------------
OpenOffice 4.1 e Libre Office 6 su Windows 10
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
patel
Volontario attivo
Volontario attivo
 
Messaggi: 2892
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno


Torna a Calc

Chi c’è in linea

Visitano il forum: Nessuno e 10 ospiti