Buongiorno, a tutti i presenti sul forum. Sono di nuovo qui a chiedere aiuto. Non sono stato capace a cercare oppure non c'è un post alla soluzione che cerco per questa ragione chiedo un aiuto a Voi anche indirizzandomi nel posto giusto. Quello di cui ho bisogno è una macro che cancelli il range di celle A2:E6 e incollare le cinque righe del riquadro sottostante (celle A34:E38) nelle righe 27, 28, 29, 30, 31, (celle A27:E31) tenendo in questo modo sempre la lista che a me necessita. Informo chi legge che il file allegato è solo un esempio, il mio file personale e più corposo contiene 3500 righe con qualche colonna in più. Ho provato con il registratore di macro ma quando taglio, sposto e incollo mi restituisce valori non corretti. Le Funzioni (CONCATENA) non so seguono il cambio dei valori delle celle modificate ho provato e riprovato non ottengo la soluzione desiderata.
Grazie e buona giornata a Voi.
P.S. Allego foglio di esempio.
[Risolto] cancella-aggiungi celle con macro
-
- Messaggi: 63
- Iscritto il: mercoledì 1 febbraio 2012, 12:36
[Risolto] cancella-aggiungi celle con macro
- Allegati
-
- cancella-aggiungi righe.ods
- (24.39 KiB) Scaricato 110 volte
Ultima modifica di charlie il venerdì 3 agosto 2018, 7:20, modificato 2 volte in totale.
Motivazione: Aggiunto [Risolto]
Motivazione: Aggiunto [Risolto]
LibreOffice 5.1.6.2 su LinuxMint 18
Re: cancella-aggiungi celle con macro
non so se ho capito bene, ma prova questa
Codice: Seleziona tutto
Sub Main
Dim range As Object
With ThisComponent.Sheets(0)
Range = .getCellRangeByName("A35:E39").getRangeAddress()
CellAddress = .getCellRangeByName("A2").getCellAddress() 'Destination address
.copyRange(CellAddress, Range)
end with
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: cancella-aggiungi celle con macro
Grazie Patel per avere risposto, la macro che Lei ha suggerito porta ha una soluzione parziale, le righe vengono si copiate ma nella posizione non desiderata. Le celle devono essere copiate in fondo alla lista cancellando le prime righe superiori (righe 2, 3, 4, 5, 6,) mantenendo la tabella sempre nelle 31 righe. Spero di essere stato più chiaro per l'aiuto chiesto.
Grazie ancora, buona giornata e sereno lavoro.
Grazie ancora, buona giornata e sereno lavoro.
LibreOffice 5.1.6.2 su LinuxMint 18
-
- Volontario
- Messaggi: 164
- Iscritto il: venerdì 9 giugno 2017, 13:48
Re: cancella-aggiungi celle con macro
Ciao,
Se ho capito bene a mia volta, ecco un'altra proposta.
Per farla funzionare, devi dare il nome "tabella_fissa" alle celle A2:E31 e "tabella_nuova" alle celle A35:E39. La macro potrà essere utilizzata con qualsiasi gruppo di celle purchè questi due nomi siano utilizzati. Non importa il numero di righe e colonne, invece il numero di colonne deve essere lo stesso nei due gruppi.
La macro:
Saluti.
Se ho capito bene a mia volta, ecco un'altra proposta.
Per farla funzionare, devi dare il nome "tabella_fissa" alle celle A2:E31 e "tabella_nuova" alle celle A35:E39. La macro potrà essere utilizzata con qualsiasi gruppo di celle purchè questi due nomi siano utilizzati. Non importa il numero di righe e colonne, invece il numero di colonne deve essere lo stesso nei due gruppi.
La macro:
Codice: Seleziona tutto
sub main
doc = thiscomponent
tabella_fissa = doc.NamedRanges.getByName("tabella_fissa").ReferredCells
dati_fissi = tabella_fissa.DataArray
tabella_nuova = doc.NamedRanges.getByName("tabella_nuova").ReferredCells
dati_nuovi = tabella_nuova.DataArray
diff = ubound(dati_nuovi)
max = ubound(dati_fissi)+1
redim preserve dati_fissi(diff+1 to max+diff)
for n = 0 to diff
dati_fissi(max+n) = dati_nuovi(n)
next n
tabella_fissa.setDataArray(dati_fissi)
tabella_nuova.clearContents(7)
end sub
- Allegati
-
- cancella-aggiungi righe.ods
- (28.8 KiB) Scaricato 118 volte
OpenOffice 4.1.2/4.1.4 | LibreOffice 5.4.4/6.0
Win7 + LinuxMint
Win7 + LinuxMint
-
- Messaggi: 63
- Iscritto il: mercoledì 1 febbraio 2012, 12:36
Re: cancella-aggiungi celle con macro
Salve, ho scaricato e smanettato sul file con la macro proposta da hubert lambert e dico che si, certamente, era quello che chiedevo ma che non avevo espresso in modo esaustivo all'inizio dell'argomento, grazie ancora a Hubert Lambert per la soluzione e anche a Patel per la sua risposta, cercherò di adattarla al mio file personale e cercherò il Vostro aiuto se non riuscissi nell'impresa. Per adesso spunto il messaggio come risolto
Grazie, grazie ancora a Voi.
Ciao.
P.S.
Non voglio approfittare della pazienza ma, sempre nel corretto spirito che anima il forum posso porre due domande specifiche: 1 le tabelle perché devono avere un nome (solo in questa circostanza o e buona prassi dare un nome sempre), 2 una spiegazione del codice scritto (sempre nel limite della mia conoscenza) può facilitare certamente l'apprendimento.
Grazie, grazie ancora a Voi.
Ciao.
P.S.
Non voglio approfittare della pazienza ma, sempre nel corretto spirito che anima il forum posso porre due domande specifiche: 1 le tabelle perché devono avere un nome (solo in questa circostanza o e buona prassi dare un nome sempre), 2 una spiegazione del codice scritto (sempre nel limite della mia conoscenza) può facilitare certamente l'apprendimento.
LibreOffice 5.1.6.2 su LinuxMint 18
-
- Volontario
- Messaggi: 164
- Iscritto il: venerdì 9 giugno 2017, 13:48
Re: cancella-aggiungi celle con macro
Con piacere .
Ma non è mai un obbligo.
È più facile per l'utente se la macro utilizza nomi di celle, chè così basta modificare il gruppo abbinato al nome per utilizzare la macro con qualunque documento, senza toccare nemeno una linea di codice.solitariopc ha scritto:1 le tabelle perché devono avere un nome (solo in questa circostanza o e buona prassi dare un nome sempre)
Ma non è mai un obbligo.
Allego il file con commenti nella macro.solitariopc ha scritto: 2 una spiegazione del codice scritto (sempre nel limite della mia conoscenza) può facilitare certamente l'apprendimento
- Allegati
-
- cancella-aggiungi righe.ods
- (25.52 KiB) Scaricato 108 volte
OpenOffice 4.1.2/4.1.4 | LibreOffice 5.4.4/6.0
Win7 + LinuxMint
Win7 + LinuxMint
-
- Messaggi: 63
- Iscritto il: mercoledì 1 febbraio 2012, 12:36
Re: cancella-aggiungi celle con macro
Grazie, Hubert Lambert la Sua risposta è da lodare non solo per la competenza ma soprattutto per l'azione di acculturamento che dispensate a noi utenti della rete, rendendo l'open source una realtà con sempre maggior seguito.
Buona giornata e buon lavoro.
Buona giornata e buon lavoro.
LibreOffice 5.1.6.2 su LinuxMint 18