Funzione Copia automatica con listato di 90 numeri

Salve a tutti. Osservando il topic dell’utente Westham volevo gentilmente chiedere a Gaetano (non solo a lui ovvio,ma a chiunque esperto in materia),se si poteva fare una cosa analoga (preferibilmente tramite una macro) con la funzione Copia,applicata in qualche modo ai soli valori numerici. Entro nel dettaglio così e’ tutto più chiaro. Facendo riferimento al file allegato vorrei che la cella Q1 si trasformasse in un listato di 90 numeri (quello che ho io creato in maniera fittizia in Q1,non rispecchia chiaramente la scala da 1 a 90 ma purtroppo non sapevo come fare). A fianco di questa lista,saranno presenti 90 righe di 4 numeri ciascuna,partendo da R1-U1 fino ad arrivare a R90-U90. Bene,a seconda della cifra che verrà inserita in cella Q1,entrerá a questo punto in gioco la suddetta funzione Copia,con la riga di riferimento che dovrà essere evidenziata (al momento non trovo il termine giusto per definire il momento quando i ranges vengono preposti a questo processo,mi scuso). Se ad esempio in Q1 selezionerò il numero 57,automaticamente la riga 57 andrà a porsi in risalto,affinché questa/o row/intervallo possa essere già pronta/o per essere incollata/o da qualche altra parte (sullo stesso foglio o in un file diverso). Spero di aver espresso bene il concetto. Una buona serata

Senza nome 1.ods (9.4 KB)

senza nome

La macro è abbastanza semplice, ti allego file…
Io ho lasciato tutto come da tuo allegato, ho messo i numeri presenti nel menù a tendina in Q1 in ordine, invece i 4 numeri che compongono le righe come devono essere inseriti? devono essere generati oppure cosa?

Sub Copia(Target)
Sh = Target.getSpreadsheet()
oCell() = Split(Target.AbsoluteName, ".")
oCellTarget = oCell(1)
If oCellTarget = "$Q$1" Then 
   Riga= Target.String
   document   = ThisComponent.CurrentController.Frame
   dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
   dim args1(0) as new com.sun.star.beans.PropertyValue
   args1(0).Name = "ToPoint"
   args1(0).Value = "$R$" & Riga & ":$U$" & Riga
   dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
   dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())

End If 

End Sub

Senza nome 1.ods (10.9 KB)

Ciao,i 4 numeri che compongono le righe vengono generati da calcoli miei pregressi circa contabilità aziendale ed altro ancora. Ho semplificato e…raso a zero(0) il file per rendere tutto
più semplice. Svilupperò poi di nuovo con calma il tabulato. Quello che mi occorreva era
proprio il concetto di base che grazie alla tua macro mi semplifica notevolmente il lavoro.
Grazie mille

1 Like