Sto utilizzando un codice che mi verifica il nome del pulsante tramite Model.Source.Name.
Il codice in questione funziona.
Si è voluto inserire una chiamata ad una sub che trova l'ultima riga utilizzata di un elenco presente in un foglio diverso da quello in cui risiede il Pulsante.
Per poter trovare l'ultima riga usata ho adoperato il codice seguente:
'-----------------
'Creazione della finestra di dialogo e chiamata alla Sub Prova ↓
'-----------------
Codice: Seleziona tutto
Sub Main(Evento)
'Creazione finestra di dialogo
DialogLibraries.LoadLibrary("Standard")
Dlg = CreateUnoDialog(DialogLibraries.Standard.Dlg_Prova)
Call Prova
NomePulsante = Evento.Source.Model.Name
PRINT NomePulsante
End Sub
'Sub Ricerca ultima riga di un elenco in un altro foglio ↓
'-----------------
Codice: Seleziona tutto
Sub Prova
Doc = ThisComponent
FoglioDiversoDalFoglioContenenteIlPulsante = Doc.Sheets.GetByName("Foglio2")
Rem ---------- Spostare la selezione sulla cella A1 del foglio desiderato
Cella = FoglioDiversoDalFoglioContenenteIlPulsante.getCellRangeByName("A1")
REM Seleziona la cella identificata
Doc.CurrentController.Select(Cella)
REM Selezionane il range vuoto
Range = Doc.CreateInstance("com.sun.star.sheet.SheetCellRanges")
Doc.CurrentController.Select(Range)
UltimaRigaUsata_FoglioDiversoDalFoglioContenenteIlPulsante = UltimaRigaUsata
PRINT UltimaRigaUsata_FoglioDiversoDalFoglioContenenteIlPulsante
End Sub
'Function RicercaUltimaRigaUsata ↓
'-----------------
Codice: Seleziona tutto
Function UltimaRigaUsata As Integer
Dim oSheet As Object
If (Not GlobalScope.BasicLibraries.isLibraryLoaded("Tools")) Then
GlobalScope.BasicLibraries.LoadLibrary("Tools")
End If
oSheet = ThisComponent.getSheets().getByIndex(ThisComponent.CurrentSelection.cellAddress.Sheet)
UltimaRigaUsata = GetLastUsedRow(oSheet)
'PRINT UltimaRigaUsata
End Function
Presumo che il problema sia dovuto al cambio di selezione operato dalla sub Prova, che compromette il Source.Model.Name , quindi come potrei fare per raggiungere lo stesso obiettivo?
Esiste un metodo per ottenere l'ultima riga usata del foglio in questione senza cambiare la selezione e operando solo sul codice di questa libreria?
Editato: Forse ci sono arrivato, sto provando a trovare il modo per riportare la selezione sul pulsante di partenza, che però avrà lo stesso nome altri pulsanti uguali sullo stesso foglio, quindi dovrò usare una proprietà diversa dal Model.Name |
Ciao