Pagina 1 di 1
[Risolto] Simulare pressione tasto invio
Inviato: giovedì 20 ottobre 2016, 10:28
da mario-T
Ciao
è possibile durante lo svolgimento di una macro simulare la pressione del tasto invio per evitare che lo debba premere io?
Ad esempio se un copia incolla va a finre su delle celle piene, il programma si ferma ad aspettare che io prema invio, è questo genere di situazioni che vorrei evitare.
Grazie
Re: Simulare pressione tasto invio
Inviato: giovedì 20 ottobre 2016, 11:02
da patel
allega un file di esempio in modo da capire meglio e testare l'eventuale soluzione
Re: Simulare pressione tasto invio
Inviato: giovedì 20 ottobre 2016, 14:06
da mario-T
Ciao
ho allegato il file TEST.ods
visto che ci sono, alla prima richiesta di mio intervento, dovrei anche rispondere si, prima di dare invio.....
In pratica la macro dovrebbe mettere insieme (nella stessa cella) il nome evidenziato, con il cognome della cella soprastante.
Grazie
Re: Simulare pressione tasto invio
Inviato: giovedì 20 ottobre 2016, 16:00
da patel
non sono certo di aver capito bene ma prova questa macro (cancella la tua registrata)
Codice: Seleziona tutto
sub Main
doc = ThisComponent
sh = doc.Sheets(0)
ultimariga = 6 ' righe e colonne si contano a partire da zero
for riga = 2 to ultimariga step 2
nome = sh.GetCellbyPosition(4, riga ).string
Cognome = sh.GetCellbyPosition(4, riga-1 ).string
CognomeNome = Cognome & " " & nome
sh.GetCellbyPosition(4, riga-1 ).string = CognomeNome
next
end sub
Re: Simulare pressione tasto invio
Inviato: venerdì 21 ottobre 2016, 0:53
da mario-T
Ciao
innanzitutto, grazie.
Poi... ho modificato la macro per le mie esigenze, ed il risulato è questo
Codice: Seleziona tutto
Sub OnSelectionChange(Target)
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
doc = ThisComponent
sh = doc.Sheets(0)
oRange=ThisComponent.getcurrentselection()
aPos=oRange.getRangeAddress()
c=aPos.StartRow
r=aPos.StartColumn
rem Sh = Target.getSpreadsheet()
rem addr = Target.getCellAddress()
rem r = addr.row
rem c= addr.column
rem print "colonna = " & r & " riga = " & c
nome = sh.GetCellbyPosition(r, c ).string
Cognome = sh.GetCellbyPosition(r, c-1 ).string
CognomeNome = Cognome & " " & nome
sh.GetCellbyPosition(r, c-1 ).string = CognomeNome
dispatcher.executeDispatch(document, ".uno:DeleteRows", "", 0, Array())
End Sub
sembra funzionare, può sembrare strano, ma la macro mi serve perchè devo spesso scaricare dei gran pdf con pagine e pagine di tabelle. Con okular e la selezione tabella, riesco a trasferire i dati in calc, ma alcuni campi, random, vengono divisi su sue righe, la macro serve per ricomporre il contenuto in una unica cella.
Ancora grazie