[Risolto] Modifica macro
-
- Messaggi: 63
- Iscritto il: mercoledì 1 febbraio 2012, 12:36
[Risolto] Modifica macro
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.
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.
- Allegati
-
- macro_da_modificare.ods
- (25.42 KiB) Scaricato 76 volte
Ultima modifica di solitariopc il lunedì 14 novembre 2022, 7:46, modificato 2 volte in totale.
LibreOffice 5.1.6.2 su LinuxMint 18
Re: Modifica macro
prova questa
Ho spostato le righe nella matrice con un ciclo, ma mi piacerebbe sapere se il risultato può essere ottenuto utilizzando REDIM
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
-------------------
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
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
-
- Messaggi: 63
- Iscritto il: mercoledì 1 febbraio 2012, 12:36
Re: [Risolto] Modifica macro
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.
LibreOffice 5.1.6.2 su LinuxMint 18
Re: [Risolto] Modifica macro
La mia domanda ovviamente non era rivolta a te, ti prego di togliere temporaneamente il risolto in attesa di altre soluzioni.
-------------------
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
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
Re: Modifica macro
L'ho fatto io.
charlie
macOS 14.6.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
macOS 14.6.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Re: Modifica macro
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
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
OpenOffice 4.1.6 / LibreOffice 7.1.6.2 (x64)/ Windows 10
Sto scrivendo con google traduttore mi scuso per eventuali errori.
Sto scrivendo con google traduttore mi scuso per eventuali errori.
Re: Modifica macro
Grazie Rafkus, io non osavo provare con indici negativi.
A questo punto penso si possa considerare il problema RISOLTO
A questo punto penso si possa considerare il problema RISOLTO
-------------------
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
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
-
- Messaggi: 63
- Iscritto il: mercoledì 1 febbraio 2012, 12:36
Re: Modifica macro
Come proposto da Patel metto risolto.
Grazie ancora a tutti per l'aiuto reso, faccio mio il ringraziamento di Patel a Rafkus.
Buona giornata.
Grazie ancora a tutti per l'aiuto reso, faccio mio il ringraziamento di Patel a Rafkus.
Buona giornata.
LibreOffice 5.1.6.2 su LinuxMint 18