Pagina 1 di 1
[Risolto] Modifica macro
Inviato: giovedì 10 novembre 2022, 12:09
da solitariopc
Buongiorno a tutti e serena giornata di lavoro.
Nel file allegato ho due tabelle con nomi (ma possono essere anche numeri) dove con una macro che cortesemente (hubert lambert) tempo addietro rese fattibile la mia richiesta di aiuto, dove la tabella nuova veniva aggiunta a una tabella fissa. Quella richiesta cancellava le righe superiori, spostava le celle restanti sopra e aggiungeva le righe della nuova tabella sotto. Quello che chiedo ora è avere la azione opposta, cancellare le righe sotto, spostare giù le celle che restano e aggiungere sopra la nuova tabella. La macro è commentata, e la parte da modificare penso di conoscerla ma non conosco la sintassi per poter operare e tentare io stesso la modifica. Grazie per la risposta che mi sarà data.
Ancora buona una giornata.
Re: Modifica macro
Inviato: giovedì 10 novembre 2022, 21:01
da patel
prova questa
Codice: Seleziona tutto
sub main
doc = thiscomponent
tabella_fissa = doc.NamedRanges.getByName("vecchia").ReferredCells
dati_fissi = tabella_fissa.DataArray
tabella_nuova = doc.NamedRanges.getByName("nuova").ReferredCells
dati_nuovi = tabella_nuova.DataArray
max = ubound(dati_fissi)+1
for n = max -1 to 1 step -1
dati_fissi(n) = dati_fissi(n-1)
next
dati_fissi(0) = dati_nuovi(0)
tabella_fissa.setDataArray(dati_fissi)
tabella_nuova.clearContents(7)
end sub
Ho spostato le righe nella matrice con un ciclo, ma mi piacerebbe sapere se il risultato può essere ottenuto utilizzando REDIM
Re: [Risolto] Modifica macro
Inviato: venerdì 11 novembre 2022, 16:57
da solitariopc
Si. La soluzione e la riscrittura della macro è la soluzione che chiedevo e ringrazio molto Patel per la sua disponibilità. Per una risposta alla curiosità esposta non oso neanche aprire bocca non ho la conoscenza quindi ad altri la parola. Ancora grazie per l'aiuto.
Re: [Risolto] Modifica macro
Inviato: venerdì 11 novembre 2022, 17:17
da patel
La mia domanda ovviamente non era rivolta a te, ti prego di togliere temporaneamente il risolto in attesa di altre soluzioni.
Re: Modifica macro
Inviato: venerdì 11 novembre 2022, 18:16
da charlie
patel ha scritto: ↑venerdì 11 novembre 2022, 17:17
ti prego di togliere temporaneamente il risolto in attesa di altre soluzioni.
L'ho fatto io.
Re: Modifica macro
Inviato: venerdì 11 novembre 2022, 22:09
da Rafkus_pl
patel ha scritto: ↑giovedì 10 novembre 2022, 21:01
Ho spostato le righe nella matrice con un ciclo, ma mi piacerebbe sapere se il risultato può essere ottenuto utilizzando REDIM
Domanda interessante che dovevo controllare... puoi; P.
Codice: Seleziona tutto
sub main2
doc = thiscomponent
tabella_fissa = doc.NamedRanges.getByName("vecchia").ReferredCells
dati_fissi = tabella_fissa.DataArray
tabella_nuova = doc.NamedRanges.getByName("nuova").ReferredCells
dati_nuovi = tabella_nuova.DataArray
ReDim Preserve dati_fissi(-1 to 2)
dati_fissi(-1) = dati_nuovi(0)
tabella_fissa.setDataArray(dati_fissi)
tabella_nuova.clearContents(7)
end sub
Riflettendo per una dimensione dell'array sconosciuta:
Codice: Seleziona tutto
sub main3
doc = thiscomponent
tabella_fissa = doc.NamedRanges.getByName("vecchia").ReferredCells
dati_fissi = tabella_fissa.DataArray
tabella_nuova = doc.NamedRanges.getByName("nuova").ReferredCells
dati_nuovi = tabella_nuova.DataArray
diff = ubound(dati_nuovi)+1
' min =LBound(dati_fissi) - diff rem LBound(dati_fissi)=0
max = ubound(dati_fissi)-diff
ReDim Preserve dati_fissi(-diff to max)
for n = -diff to -1
dati_fissi(n) = dati_nuovi(diff + n)
next n
tabella_fissa.setDataArray(dati_fissi)
tabella_nuova.clearContents(7)
end sub
Re: Modifica macro
Inviato: sabato 12 novembre 2022, 8:50
da patel
Grazie Rafkus, io non osavo provare con indici negativi.
A questo punto penso si possa considerare il problema RISOLTO
Re: Modifica macro
Inviato: lunedì 14 novembre 2022, 7:45
da solitariopc
Come proposto da Patel metto risolto.
Grazie ancora a tutti per l'aiuto reso, faccio mio il ringraziamento di Patel a Rafkus.
Buona giornata.