[Risolto] Eliminare determinati valori all'interno di un foglio 2a parte
[Risolto] Eliminare determinati valori all'interno di un foglio 2a parte
Salve a tutti. Devo riprendere un tema postato il 30 luglio scorso perchè mi servirebbe una piccola variante al riguardo. Con riferimento al file allegato,dal tabulato presente nel foglio e semplificato per l'occasione,vorrei eliminare tramite una macro il range A94-F223 ma lasciando operative (quindi presenti) le righe evidenziate col colore,vale a dire gli intervalli da A110 ad A114,da A139 ad A143,da A168 ad A172 e da A197 ad A201. Faccio notare che nelle celle A111,A114,A140,A143,A169,A172,A198 e A201 (evidenziate col verde) sono presenti delle formule. Una buona serata
- Allegati
-
- 6 settembre.ods
- (8.33 KiB) Scaricato 60 volte
Ultima modifica di Nando69 il giovedì 7 settembre 2023, 16:23, modificato 1 volta in totale.
Libre Office 7.3.0.3
Re: Eliminare determinati valori all'interno di un foglio 2a parte
Cross posting: https://ask.libreoffice.org/t/eliminare ... glio/95531
charlie
macOS 14.6.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
macOS 14.6.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
- Lanfranchi G.Luigi
- Messaggi: 116
- Iscritto il: venerdì 12 aprile 2019, 16:54
Re: Eliminare determinati valori all'interno di un foglio 2a parte
Ciao.
Se il colore determina le celle da non cancellare...
Modificato 1 volta.
Se il colore determina le celle da non cancellare...
Codice: Seleziona tutto
Sub cancella
Doc=ThisComponent
oSh=Doc.Sheets(0)
oCell1=oSh.getcellRangeByName("A94:F223")
Colore = oSh.getCellRangeByName("A110").CellBackColor ' <<< colore da confrontare
Colore1 = oSh.getCellRangeByName("A111").CellBackColor ' <<< colore da confrontare
for nr=Ocell1.RangeAddress.StartRow To Ocell1.RangeAddress.EndRow
for nc=Ocell1.RangeAddress.StartColumn To Ocell1.RangeAddress.Endcolumn
if oSh.getCellByPosition (nc,nr).CellBackColor <> Colore and _
oSh.getCellByPosition (nc,nr).CellBackColor <> Colore1 then oSh.getCellByPosition (nc,nr).string=""
Next
Next
end sub
LibreOffice ver. 7.5.3.2 - Windows 10 Pro 64 bit
Re: Eliminare determinati valori all'interno di un foglio 2a parte
Ciao Luigi,funziona perfettamente,grazie. Mi potresti gentilmente modificare il codice senza che nel foglio sia presente il colore per le celle da mantenere ? Eliminare cioè sempre il range A94-F223 e lasciando operative gli stessi intervalli di prima : da A110 ad A114,da A139 ad A143,da A168 ad A172 e da A197 ad A201. Ciao
- Allegati
-
- 7 settembre.ods
- (8.35 KiB) Scaricato 55 volte
Libre Office 7.3.0.3
- Lanfranchi G.Luigi
- Messaggi: 116
- Iscritto il: venerdì 12 aprile 2019, 16:54
Re: Eliminare determinati valori all'interno di un foglio 2a parte
La soluzione sta proprio nel colore delle celle.....ti basta colorare le celle che non vuoi eliminare in modo diverso da tutte le altre.
La macro memorizza i colori delle celle da non eliminare dal colore delle celle A110 e A111.
La macro memorizza i colori delle celle da non eliminare dal colore delle celle A110 e A111.
LibreOffice ver. 7.5.3.2 - Windows 10 Pro 64 bit
Re: Eliminare determinati valori all'interno di un foglio 2a parte
La questione non era quella di colorare con un altra...tinta le celle che non voglio eliminare al fine di ottenere il risultato voluto. Mi serviva una variante in cui non vi fosse PROPRIO ALCUN COLORE DI NESSUN TIPO anche per quel che riguarda le celle che non voglio cancellare. Comunque grazie mille per il tempo che hai messo gentilmente a mia disposizione
Libre Office 7.3.0.3
- Lanfranchi G.Luigi
- Messaggi: 116
- Iscritto il: venerdì 12 aprile 2019, 16:54
Re: Eliminare determinati valori all'interno di un foglio 2a parte
Il codice è un po "tirato per i capelli" (non mi piace programmare con numeri fissi) ma ci stà.
Codice: Seleziona tutto
Sub cancella
Doc=ThisComponent
oSh=Doc.Sheets(0)
Target = 17
Conta =0
Conta1=0
for Nr=93 to 223
Conta = Conta +1
if Conta1=5 then
Conta1=0
Target =25
end if
For Nc=0 to 5
if Conta= Target and Conta1<5 then
Target = 1
Conta=0
Conta1=Conta1+1
else
oSh.getCellByPosition (nc,nr).string=""
end if
next Nc
next Nr
end sub
LibreOffice ver. 7.5.3.2 - Windows 10 Pro 64 bit
Re: Eliminare determinati valori all'interno di un foglio 2a parte
Grazie,buona giornata. Metto [Risolto]
Libre Office 7.3.0.3