[Risolto]Richiamare un foglio con nome e cancellare le celle

Discussioni sull'applicazione per i fogli di calcolo
Rispondi
Avatar utente
Tuoangelo
Messaggi: 12
Iscritto il: venerdì 21 maggio 2021, 21:35

[Risolto]Richiamare un foglio con nome e cancellare le celle

Messaggio da Tuoangelo »

Buongiorno a tutti,
prima di scrivere qui ho cercato sul web e provato alcune "soluzioni" ma senza riuscirci completamente.

Ho un file con due fogli di cui uno protetto da password (successivamente si aggiungeranno degl'altri), uno denominato Elenco e l'altro Scheda1.
Il mio intento è quello di utilizzare il pulsante "cancella scheda" situato nel foglio "Elenco" e permettere di richiamare il foglio "Scheda1" utilizzando il nome che è scritto sulla linguetta e cancellare tutte le celle sprotette presenti su quel foglio.

Girovagando sul web ho trovato la macro che permette di richiamare il foglio basandosi sul nome della linguetta:

Codice: Seleziona tutto

REM *** DEFINIRE LE VARIABILI ***
dim Document As Object, Sheets As Object
dim Sheet As Object, Controller As Object

sub Ric_Scheda1
Document = ThisComponent
	Sheets = Document.Sheets
	Sheet = Sheets.getByName("Scheda1")
	Controller =Document.getcurrentController
	Controller.setActiveSheet(Sheet)
end Sub
e questo codice che in teoria dovrebbe cancellare le celle sbloccate:

Codice: Seleziona tutto

REM *** DEFINIRE LE VARIABILI ***
Dim Doc As Object
Dim oCell As Object, oCursor As Object, aAddress As Variant, cell as Object

sub Canc_sbloccate

Doc = ThisComponent
Sheet = Doc.Sheets.getByIndex(0)
oCursor = Sheet.createCursor
oCursor.GotoEndOfUsedArea(True)
aAddress = oCursor.RangeAddress
LastUsedColumn = aAddress.EndColumn
LastUsedRow = aAddress.EndRow

for r=0 to LastUsedrow
  for c = 0 to LastUsedColumn
    Cell = Sheet.getCellByPosition(c,r)
     cell.string = ""
  next
next
End sub
Peccato che mettendo questi due codici insieme, quest'ultimo codice mi da l'errore di variabile non definita e mi evidenzia le voci "LastUsedColumn = aAddress.EndColumn e LastUsedRow = aAddress.EndRow".

Dov'è che sbaglio e come posso far in modo che le due macro sopra citate possano lavorare senza problemi?
In allegato trovere il file ods, sperando che possa esservi d'aiuto.
Colgo l'occasione per ringraziare tutti voi per l'aiuto che mi state dando, con il VBA di Excel me la cavo abbastanza ma con il linguaggio usanto da Libreoffice sinceramente ho diverse difficoltà che provo a capire a mano a mano che mi si presentano i problemi.
Allegati
Test.ods
(40.65 KiB) Scaricato 74 volte
Ultima modifica di Tuoangelo il domenica 27 giugno 2021, 9:32, modificato 1 volta in totale.
LibreOffice 7 su Windows 10
Avatar utente
lucky63
Volontario assiduo
Volontario assiduo
Messaggi: 2997
Iscritto il: martedì 18 maggio 2010, 17:01

Re: Richiamare un foglio con nome e cancellare le celle

Messaggio da lucky63 »

.
Ho apportato modifiche utili nel modulo "Generico".
Test - Macro - RichiamareFoglioConNome_e_CancellareLeCelle.png
Allegati
Test - Macro - RichiamareFoglioConNome_e_CancellareLeCelle.ods
(37.44 KiB) Scaricato 79 volte
Avatar utente
Tuoangelo
Messaggi: 12
Iscritto il: venerdì 21 maggio 2021, 21:35

Re: Richiamare un foglio con nome e cancellare le celle

Messaggio da Tuoangelo »

Grazie alla tua modifica Lucky63, ora la macro funziona egregiamente
LibreOffice 7 su Windows 10
Rispondi