[Risolto] cut and paste macro celle adiacenti su piu' righe
-
- Messaggi: 5
- Iscritto il: domenica 13 ottobre 2013, 2:21
[Risolto] cut and paste macro celle adiacenti su piu' righe
ciao, dopo anni di Excel mi sono convertito a OpenOffice, del quale sono un neofita.
Vorrei creare una macro per fare il "taglia e incolla" di una cella ripetendolo piu' volte su celle adiacenti nella stessa riga. La macro dovrebbe poi "saltare" alla riga successiva e ripetere la procedura. Vorrei anche poter attivare la macro su una riga utilizzando una combinazione di tasti (es: CTRL+U) una volta posizionato sulla corretta riga di partenza.
Per semplicità allego esempio:
posizione iniziale: cella A5
cut A5 e paste in B4
posizionati in C5
cut C5 e paste in D4
posizionati in E5
cut E5 e paste in F4
posizionati in A7 (2 righe sotto la posizione iniziale)
supponendo quindi di avere 1000 righe simili, vorrei, semplicemente premendo una combinazione di tasti (es: CTRL+U) eseguire la macro ad ogni inizio di coppie di righe.
Mi sarei aspettato che fosse abbastanza facile, ma dopo 2 ore di smanettamenti vari non sono riuscito a capire come fare.
Per favore, mi aiutate???????????
Grazie!!!!!
Vorrei creare una macro per fare il "taglia e incolla" di una cella ripetendolo piu' volte su celle adiacenti nella stessa riga. La macro dovrebbe poi "saltare" alla riga successiva e ripetere la procedura. Vorrei anche poter attivare la macro su una riga utilizzando una combinazione di tasti (es: CTRL+U) una volta posizionato sulla corretta riga di partenza.
Per semplicità allego esempio:
posizione iniziale: cella A5
cut A5 e paste in B4
posizionati in C5
cut C5 e paste in D4
posizionati in E5
cut E5 e paste in F4
posizionati in A7 (2 righe sotto la posizione iniziale)
supponendo quindi di avere 1000 righe simili, vorrei, semplicemente premendo una combinazione di tasti (es: CTRL+U) eseguire la macro ad ogni inizio di coppie di righe.
Mi sarei aspettato che fosse abbastanza facile, ma dopo 2 ore di smanettamenti vari non sono riuscito a capire come fare.
Per favore, mi aiutate???????????
Grazie!!!!!
- Allegati
-
- esempio macro.ods
- file esempio
- (10.93 KiB) Scaricato 149 volte
Ultima modifica di alessandro712000 il mercoledì 16 ottobre 2013, 15:20, modificato 1 volta in totale.
alessandro712000 - Apache OpenOffice 4.0.1 - Windows 8
Re: cut and paste macro su celle adiacenti e su piu' righe
Ciao Alessandro
Quello che chiedi è 'facilmente' ottenibile attraverso il registratore di macro, che esiste anche in OpenOffice.
Da lì ho derivato la macro che segue:
Questa riga di codice for rw = 25 to 31 step 2 la devi personalizzare con i numeri della riga iniziale e di quella finale del range di righe su cui devi fare l'operazione che hai chiesto.
Ti allego anche il tuo file con dentro la macro
Saluti e... 'benvenuto'
Quello che chiedi è 'facilmente' ottenibile attraverso il registratore di macro, che esiste anche in OpenOffice.
Da lì ho derivato la macro che segue:
Codice: Seleziona tutto
sub CutPaste
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
dim rw as integer
dim args6(0) as new com.sun.star.beans.PropertyValue
dim args8(0) as new com.sun.star.beans.PropertyValue
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
for rw = 25 to 31 step 2
'--- PRIMO CUT & PASTE DI RIGA DA A2 A B1
args6(0).Name = "ToPoint"
args6(0).Value = "$A$" & rw
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args6())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Cut", "", 0, Array())
rem ----------------------------------------------------------------------
args8(0).Name = "ToPoint"
args8(0).Value = "$B$" & rw-1
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args8())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array())
'--- SECONDO CUT & PASTE DI RIGA DA C2 A D1
args6(0).Name = "ToPoint"
args6(0).Value = "$C$" & rw
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args6())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Cut", "", 0, Array())
rem ----------------------------------------------------------------------
args8(0).Name = "ToPoint"
args8(0).Value = "$D$" & rw-1
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args8())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array())
'--- TERZO CUT & PASTE DI RIGA DA E2 A F1
args6(0).Name = "ToPoint"
args6(0).Value = "$C$" & rw
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args6())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Cut", "", 0, Array())
rem ----------------------------------------------------------------------
args8(0).Name = "ToPoint"
args8(0).Value = "$D$" & rw-1
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args8())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array())
'-------------------------------------------------------------------------
next rw
end sub
Ti allego anche il tuo file con dentro la macro
Saluti e... 'benvenuto'
- Allegati
-
- CutPastedaRegMacro.ods
- (11.55 KiB) Scaricato 177 volte
OpenOffice Windows - Libre su Ubuntu Desktop e Notebook WiFi
Per cortesia, inserisci [Risolto] nel Titolo iniziale se il tuo problema è stato risolto.
Per cortesia, inserisci [Risolto] nel Titolo iniziale se il tuo problema è stato risolto.
-
- Messaggi: 5
- Iscritto il: domenica 13 ottobre 2013, 2:21
Re: cut and paste macro su celle adiacenti e su piu' righe
ciao Mizio,
grazie molte per la tua soluzione. L'ho provata e funziona per le prime 2 celle (fa il taglia e incolla) ma non per le altre dove si "limita" a fare il "copia e incolla".
Inoltre, terminata la riga, la macro non riposiziona il cursore all'inizio della successiva.
Sono io che non ho capito qualcosa (probabile)????
Inoltre, mi è un pochino ostico capire come modificare il codice (a parte la modifica suggerita per il numero di linee). Potresti per favore dirmi come registrare automaticamente la macro con il Registratore e soprattutto come attivare le "Referenze relative" per fare in modo che si possa dire "seleziona" la casella immediatamente a destra dell'attuale piuttosto che specificare non so "B3"??
grazie!!!
ciao
Alessandro
grazie molte per la tua soluzione. L'ho provata e funziona per le prime 2 celle (fa il taglia e incolla) ma non per le altre dove si "limita" a fare il "copia e incolla".
Inoltre, terminata la riga, la macro non riposiziona il cursore all'inizio della successiva.
Sono io che non ho capito qualcosa (probabile)????
Inoltre, mi è un pochino ostico capire come modificare il codice (a parte la modifica suggerita per il numero di linee). Potresti per favore dirmi come registrare automaticamente la macro con il Registratore e soprattutto come attivare le "Referenze relative" per fare in modo che si possa dire "seleziona" la casella immediatamente a destra dell'attuale piuttosto che specificare non so "B3"??
grazie!!!
ciao
Alessandro
alessandro712000 - Apache OpenOffice 4.0.1 - Windows 8
Re: cut and paste macro su celle adiacenti e su piu' righe
Ciao Alessandro
Puoi allegare una parte del tuo file così di inserisco la macro corretta coi riferimenti relativi.
In questo modo entrambi usiamo il tempo in modo corretto, altrimenti ci rincorriamo con soluzioni parziali che mancano sempre di qualcosa
Saluti
Puoi allegare una parte del tuo file così di inserisco la macro corretta coi riferimenti relativi.
In questo modo entrambi usiamo il tempo in modo corretto, altrimenti ci rincorriamo con soluzioni parziali che mancano sempre di qualcosa
Saluti
OpenOffice Windows - Libre su Ubuntu Desktop e Notebook WiFi
Per cortesia, inserisci [Risolto] nel Titolo iniziale se il tuo problema è stato risolto.
Per cortesia, inserisci [Risolto] nel Titolo iniziale se il tuo problema è stato risolto.
-
- Messaggi: 5
- Iscritto il: domenica 13 ottobre 2013, 2:21
Re: cut and paste macro su celle adiacenti e su piu' righe
ciao Mizio,
allego tuo file con aggiunto tab "Test".
Ho modificato il ciclo for con i giusti numeri di riga (dalla 5 alle 23).
grazie!!
Alessandro
allego tuo file con aggiunto tab "Test".
Ho modificato il ciclo for con i giusti numeri di riga (dalla 5 alle 23).
grazie!!
Alessandro
- Allegati
-
- CutPastedaRegMacro (1).ods
- (11.72 KiB) Scaricato 156 volte
alessandro712000 - Apache OpenOffice 4.0.1 - Windows 8
Re: cut and paste macro su celle adiacenti e su piu' righe
Ciao Alessandro
Vedi se così funziona come ti occorre
Ora devi personalizzare il valore della variabile cini che contiene il valore della colonna iniziale dei dati e i valori nella for come per la versione precedente
Saluti
Vedi se così funziona come ti occorre
Ora devi personalizzare il valore della variabile cini che contiene il valore della colonna iniziale dei dati e i valori nella for come per la versione precedente
Saluti
- Allegati
-
- CutPastedaRegMacro.ods
- (12.2 KiB) Scaricato 205 volte
OpenOffice Windows - Libre su Ubuntu Desktop e Notebook WiFi
Per cortesia, inserisci [Risolto] nel Titolo iniziale se il tuo problema è stato risolto.
Per cortesia, inserisci [Risolto] nel Titolo iniziale se il tuo problema è stato risolto.
-
- Messaggi: 5
- Iscritto il: domenica 13 ottobre 2013, 2:21
Re: cut and paste macro su celle adiacenti e su piu' righe
ciao Mizio,
grazie ancora per il tuo prezioso aiuto. Purtroppo il tuo file non è compilabile e la macro non eseguibile
Vedi allegato.
ciao
Alessandro
grazie ancora per il tuo prezioso aiuto. Purtroppo il tuo file non è compilabile e la macro non eseguibile
Vedi allegato.
ciao
Alessandro
- Allegati
-
- Errore.odt
- (145.22 KiB) Scaricato 164 volte
alessandro712000 - Apache OpenOffice 4.0.1 - Windows 8
Re: cut and paste macro su celle adiacenti e su piu' righe
Oops ho dimenticato di togliere quella riga
Togli la riga dove c'è scritto endif e vedrai che funziona.
Saluti
Togli la riga dove c'è scritto endif e vedrai che funziona.
Saluti
OpenOffice Windows - Libre su Ubuntu Desktop e Notebook WiFi
Per cortesia, inserisci [Risolto] nel Titolo iniziale se il tuo problema è stato risolto.
Per cortesia, inserisci [Risolto] nel Titolo iniziale se il tuo problema è stato risolto.
-
- Messaggi: 5
- Iscritto il: domenica 13 ottobre 2013, 2:21
[RISOLTO] cut and paste macro su celle adiacenti e su piu' r
yes!!! risolto!!! grazie ancora per la disponibilità davvero da applausi!!!
ciao
Alessandro
ciao
Alessandro
alessandro712000 - Apache OpenOffice 4.0.1 - Windows 8