Pannello di Controllo Moderatore ]

[Risolto] Copia e incolla speciale

Discussioni sull'applicazione per i fogli di calcolo

Re: [Risolto] Copia e incolla speciale

Messaggioda Nando69 » sabato 23 gennaio 2021, 19:09

Ciao,capisco. Riguardo le macro spero qualcuno mi possa aiutare in tal senso
openoffice 3.1 su Windows vista
Nando69
 
Messaggi: 260
Iscritto il: lunedì 21 settembre 2020, 11:03

Re: [Risolto] Copia e incolla speciale

Messaggioda lucky63 » sabato 23 gennaio 2021, 21:54

.
Sulla base della tua ultima richiesta ho applicato una piccola macro (poi rimossa)..
Il risultato mi sembra corretto.
.
Allegati
23 gennaio---01.ods
(30.9 KiB) Scaricato 29 volte
Avatar utente
lucky63
Volontario assiduo
Volontario assiduo
 
Messaggi: 2567
Iscritto il: martedì 18 maggio 2010, 17:01

Re: [Risolto] Copia e incolla speciale

Messaggioda Nando69 » sabato 23 gennaio 2021, 22:17

Grazie. Ma come mai la macro è stata rimossa ?
openoffice 3.1 su Windows vista
Nando69
 
Messaggi: 260
Iscritto il: lunedì 21 settembre 2020, 11:03

Re: [Risolto] Copia e incolla speciale

Messaggioda lucky63 » domenica 24 gennaio 2021, 11:14

Nando69 ha scritto:come mai la macro è stata rimossa ?

Pensavo non ti servisse più.

Codice: Seleziona tutto   Espandi visualeStringi visuale
Sub CopiaValoriPresentiDalRangeG1H433_AlRangeD1E433
Doc = ThisComponent
Foglio = Doc.Sheets(0)
For Riga = 0 To 432
G = Foglio.GetCellByPosition(6,Riga).Value
H = Foglio.GetCellByPosition(7,Riga).Value
  If G > 0 Or H > 0 Then
  Foglio.GetCellByPosition(3,Riga).Value = G
  Foglio.GetCellByPosition(4,Riga).Value = H
  End If
Next
MsgBox("Copia terminata",0,"AVVISO:")
End Sub
Allegati
23 gennaio---02.ods
(31.51 KiB) Scaricato 23 volte
Avatar utente
lucky63
Volontario assiduo
Volontario assiduo
 
Messaggi: 2567
Iscritto il: martedì 18 maggio 2010, 17:01

Re: [Risolto] Copia e incolla speciale

Messaggioda Nando69 » giovedì 11 febbraio 2021, 19:24

Salve. Devo riprendere tale argomento causa un piccolo intoppo. Con riferimento al file allegato,al valore 92 posto in cella H274,devo aggiungere
un +1 a tutte le altre celle che seguono (della stessa colonna) partendo da H314 fino ad H584,facendo perciò un copia e incolla speciale che possa
concludersi senza che mi compaia il valore ripetuto 92,cosicchè le celle H317,H318,H322 eccetera,rimangano automaticamente vuote,evitando
quindi un noioso procedimento manuale di eliminazione. Il copia e incolla speciale da me applicato mi porta purtroppo sempre questo fastidioso
problema. Grazie
Allegati
11 febbraio.ods
(59.42 KiB) Scaricato 19 volte
openoffice 3.1 su Windows vista
Nando69
 
Messaggi: 260
Iscritto il: lunedì 21 settembre 2020, 11:03

Re: [Risolto] Copia e incolla speciale

Messaggioda Tuoangelo » lunedì 14 giugno 2021, 19:40

Buonasera a tutti,
sto realizzando un file per il lavoro con Libreoffice Calc.
Ho un foglio con due tabelle e i loro rispettivi totali (Riga 13).
Avrei bisogno di copiare questi totali nella tabella bimestrale, togliendo le formule e cancellando il contenuto delle tabelle stesse.
Ho registrato la macro che permette di fare tutte queste cose, peccato che quando la faccio eseguire tramite il pulsante "Copia totali", non funziona correttamente; avvolte copia i totali della tabella 2, in ambo le righe 13 e 15 della tabella bimestrale, altre volte invece non copia nulla; l'unica cosa che fa correttamente è la cancellazione delle due tabelle stesse.
In compenso se prendo la macro che ho registrato e la faccio eseguire passo passo, fa tutto e in maniera corretta.
Come mai succede questo?
Ho provato a cercare su questo forum e anche su google ma non sono riuscito a trovare il motivo di tale "anomalia" se così si può chiamare.
Qui sotto vi lascio il codice "registrato" e il file ods.
Colgo l'occasione per ringraziare tutti per l'aiuto.
Codice: Seleziona tutto   Espandi visualeStringi visuale
sub BimestraleCanc
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$E$13:$Q$13"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())

rem ----------------------------------------------------------------------
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "ToPoint"
args3(0).Value = "$AY$13"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args3())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:PasteUnformatted", "", 0, Array())

rem ----------------------------------------------------------------------
dim args5(1) as new com.sun.star.beans.PropertyValue
args5(1).Name = "ToPoint"
args5(1).Value = "$Z$13:$AL$13"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 1, args5())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Copy", "", 1, Array())

rem ----------------------------------------------------------------------
dim args7(0) as new com.sun.star.beans.PropertyValue
args7(0).Name = "ToPoint"
args7(0).Value = "$AY$15"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args7())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:PasteUnformatted", "", 0, Array())

rem ----------------------------------------------------------------------
rem dispatcher.executeDispatch(document, ".uno:TerminateInplaceActivation", "", 0, Array())

rem ----------------------------------------------------------------------
rem dispatcher.executeDispatch(document, ".uno:Cancel", "", 0, Array())

rem ----------------------------------------------------------------------
rem dispatcher.executeDispatch(document, ".uno:TerminateInplaceActivation", "", 0, Array())

rem ----------------------------------------------------------------------
rem dispatcher.executeDispatch(document, ".uno:Cancel", "", 0, Array())

rem ----------------------------------------------------------------------
dim args13(0) as new com.sun.star.beans.PropertyValue
args13(0).Name = "ToPoint"
args13(0).Value = "$E$15:$Q$45"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args13())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:ClearContents", "", 0, Array())

rem ----------------------------------------------------------------------
dim args15(0) as new com.sun.star.beans.PropertyValue
args15(0).Name = "ToPoint"
args15(0).Value = "$Z$15:$AL$45"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args15())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:ClearContents", "", 0, Array())

rem ----------------------------------------------------------------------
dim args17(0) as new com.sun.star.beans.PropertyValue
args17(0).Name = "ToPoint"
args17(0).Value = "$E$15"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args17())


end sub
Allegati
TEST.ods
(19.24 KiB) Scaricato 13 volte
LibreOffice 7 su Windows 10
Avatar utente
Tuoangelo
 
Messaggi: 12
Iscritto il: venerdì 21 maggio 2021, 21:35

Re: [Risolto] Copia e incolla speciale

Messaggioda lucky63 » lunedì 14 giugno 2021, 22:25

La prossima volta apri nuovo quesito.
Codice: Seleziona tutto   Espandi visualeStringi visuale
Sub CopiaTotali_e_AzzerraLeTabelle
Doc = ThisComponent
Foglio = Doc.Sheets(0) ' il primo foglio
Rem copia totali del primo mese
Foglio.GetCellRangeByName("AY13").Value = Foglio.GetCellRangeByName("E13").Value
Foglio.GetCellRangeByName("BC13").Value = Foglio.GetCellRangeByName("I13").Value
Foglio.GetCellRangeByName("BG13").Value = Foglio.GetCellRangeByName("M13").Value
Rem copia totali del secondo mese
Foglio.GetCellRangeByName("AY15").Value = Foglio.GetCellRangeByName("Z13").Value
Foglio.GetCellRangeByName("BC15").Value = Foglio.GetCellRangeByName("AD13").Value
Foglio.GetCellRangeByName("BG15").Value = Foglio.GetCellRangeByName("AH13").Value
Rem Pulizia dati tabelle
Foglio.getCellRangeByName("E15:Q45").clearContents(1) 'Cancella solo i valori
Foglio.getCellRangeByName("Z15:AL45").clearContents(1) 'Cancella solo i valori
Rem Avviso fine operazioni
MsgBox("Operazione terminata",0,"AVVISO:")
End sub
Avatar utente
lucky63
Volontario assiduo
Volontario assiduo
 
Messaggi: 2567
Iscritto il: martedì 18 maggio 2010, 17:01

Re: [Risolto] Copia e incolla speciale

Messaggioda Tuoangelo » martedì 15 giugno 2021, 0:21

Grazie mille per l'aiuto, funziona :D .
Scusa se non ho aperto un nuovo post ma non volevo creare un eventuale "doppione".
La prossima volta farò così.
LibreOffice 7 su Windows 10
Avatar utente
Tuoangelo
 
Messaggi: 12
Iscritto il: venerdì 21 maggio 2021, 21:35

Precedente

Torna a Calc

Chi c’è in linea

Visitano il forum: Nessuno e 8 ospiti