Pannello di Controllo Moderatore ]

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

Discussioni sull'applicazione per i fogli di calcolo

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

Messaggioda Tuoangelo » domenica 20 giugno 2021, 10:59

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   Espandi visualeStringi visuale
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   Espandi visualeStringi visuale
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 11 volte
Ultima modifica di Tuoangelo il domenica 27 giugno 2021, 9:32, modificato 1 volta in totale.
LibreOffice 7 su Windows 10
Avatar utente
Tuoangelo
 
Messaggi: 12
Iscritto il: venerdì 21 maggio 2021, 21:35

Re: Richiamare un foglio con nome e cancellare le celle

Messaggioda lucky63 » domenica 20 giugno 2021, 16:14

.
Ho apportato modifiche utili nel modulo "Generico".

Test - Macro - RichiamareFoglioConNome_e_CancellareLeCelle.png
Allegati
Test - Macro - RichiamareFoglioConNome_e_CancellareLeCelle.ods
(37.44 KiB) Scaricato 14 volte
Avatar utente
lucky63
Volontario assiduo
Volontario assiduo
 
Messaggi: 2567
Iscritto il: martedì 18 maggio 2010, 17:01

Re: Richiamare un foglio con nome e cancellare le celle

Messaggioda Tuoangelo » martedì 22 giugno 2021, 20:39

Grazie alla tua modifica Lucky63, ora la macro funziona egregiamente
LibreOffice 7 su Windows 10
Avatar utente
Tuoangelo
 
Messaggi: 12
Iscritto il: venerdì 21 maggio 2021, 21:35


Torna a Calc

Chi c’è in linea

Visitano il forum: Nessuno e 8 ospiti