[Risolto] Riconoscimento Colore Sfondo
[Risolto] Riconoscimento Colore Sfondo
Devo prendere dei file con dei dati e metterli in un ordine totalmente diverso
con un po' di funzioni riesco a fare quasi tutto
il mio più grande problema è che alcune informazioni sono state messe cambiando lo sfondo della cella
io devo prendere le celle con lo sfondo in giallo e scrivere in un'altra cella "Giallo"
C'è un modo per riconoscere la formattazione di una cella? e quindi poter mettere un valore ad un'altra cella che "guarda" la cella con uno sfondo? può restituirmi un numero o qualunque cosa io poi vedo di metterle in ordine per tipologia e immettere il dato che mi serve
Allego un esempio di quello che devo fare
a sinistra il file dal quale parto
a destra come devo consegnare i dati
sono a conoscenza che le ore siano numeri, ma tali sono e tali devono rimanere
con un po' di funzioni riesco a fare quasi tutto
il mio più grande problema è che alcune informazioni sono state messe cambiando lo sfondo della cella
io devo prendere le celle con lo sfondo in giallo e scrivere in un'altra cella "Giallo"
C'è un modo per riconoscere la formattazione di una cella? e quindi poter mettere un valore ad un'altra cella che "guarda" la cella con uno sfondo? può restituirmi un numero o qualunque cosa io poi vedo di metterle in ordine per tipologia e immettere il dato che mi serve
Allego un esempio di quello che devo fare
a sinistra il file dal quale parto
a destra come devo consegnare i dati
sono a conoscenza che le ore siano numeri, ma tali sono e tali devono rimanere
- Allegati
-
- Richiesta riconoscimento formattazione.ods
- (15.93 KiB) Scaricato 247 volte
Ultima modifica di Charc7is il lunedì 24 giugno 2019, 10:44, modificato 1 volta in totale.
OpenOffice 4.1.1 su Windows 8
Re: Riconoscimento formattazione
un'idea potrebbe essere convertirlo in HTML
<TD STYLE="border-top: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000" ALIGN=CENTER BGCOLOR="#FFFF00" SDVAL="8,56" SDNUM="1040;0;00,00"><FONT FACE="Geneva">08,56</FONT></TD>
<TD STYLE="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000" ALIGN=CENTER BGCOLOR="#66CCFF" SDVAL="13,56" SDNUM="1040;0;00,00"><FONT FACE="Geneva">13,56</FONT></TD>
è solo un'idea non saprei come sfruttarla
<TD STYLE="border-top: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000" ALIGN=CENTER BGCOLOR="#FFFF00" SDVAL="8,56" SDNUM="1040;0;00,00"><FONT FACE="Geneva">08,56</FONT></TD>
<TD STYLE="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000" ALIGN=CENTER BGCOLOR="#66CCFF" SDVAL="13,56" SDNUM="1040;0;00,00"><FONT FACE="Geneva">13,56</FONT></TD>
è solo un'idea non saprei come sfruttarla
OpenOffice 4.1.1 su Windows 8
Re: Riconoscimento formattazione
non vedo neanche una funzione nel tuo esempio, comunque penso che per riconoscere il colore di sfondo occorra una macroCharc7is ha scritto:Devo prendere dei file con dei dati e metterli in un ordine totalmente diverso
con un po' di funzioni riesco a fare quasi tutto
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Re: Riconoscimento formattazione
Qui ho fatto a mano, perché per farlo uso prima funzioni come CONCATENA ma poi uso il blocconote e parti a mano permettere a postopatel ha scritto:non vedo neanche una funzione nel tuo esempio, comunque penso che per riconoscere il colore di sfondo occorra una macro
il mio punto è che il resto una soluzione la trovo, per far riconoscere il fondo e per esempio farli mettere in ordine per colore (e poi a fianco ad ogni colore mettere io a mano ciò che mi serve) non saprei come fare
OpenOffice 4.1.1 su Windows 8
Re: Riconoscimento formattazione
come ti ho detto occorre una macro, per farla occorre un file significativo e spiegazioni dettagliate sul criterio di costruzione della tabella
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Re: Riconoscimento formattazione
La tabella la prelevi già cosi
Se invece dobbiamo partire da zero, devi fare quanto già detto da patel, dovresti dirci se le tabelle hanno tutte la stessa struttura, quindi con la scritta del mese iniziale i giorni nella cella di sotto, 7 righe per tabella la scritta prima e seconda sempre allo stesso posto, questi sono dati fondamentali per la costruzione di una macro che si possa adattare bene, altrimenti si perde solo tempo a scrivere una macro che vada bene solo per l'esempio postato.
Dovresti allegare quanto da te fatto, quindi quello che riesci a fare da solo, perchè se il problema è lo sfondo della cella questo si risolve facilmente.Charc7is ha scritto:Devo prendere dei file con dei dati e metterli in un ordine totalmente diverso
con un po' di funzioni riesco a fare quasi tutto
Se invece dobbiamo partire da zero, devi fare quanto già detto da patel, dovresti dirci se le tabelle hanno tutte la stessa struttura, quindi con la scritta del mese iniziale i giorni nella cella di sotto, 7 righe per tabella la scritta prima e seconda sempre allo stesso posto, questi sono dati fondamentali per la costruzione di una macro che si possa adattare bene, altrimenti si perde solo tempo a scrivere una macro che vada bene solo per l'esempio postato.
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Openoffice 4.1.13 su windows 10
Re: Riconoscimento formattazione
Come ? sono curioso.Gaetanopr ha scritto:....perchè se il problema è lo sfondo della cella questo si risolve facilmente......
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Re: Riconoscimento formattazione
Siccome sono diverse il resto me lo gestisco io a mano, il mio scoglio insormontabile è che non saprei come identificare una cella con lo sfondo giallo al posto di una con lo sfondo azzurro, se avessi la funzione =BACKGROUND(A1) e questo mi restituisce FFFF00 al posto di 00FFFF io poi trovo il modo di trasformare quei codici in "A", "B" o "C"Gaetanopr ha scritto:se il problema è lo sfondo della cella questo si risolve facilmente
OpenOffice 4.1.1 su Windows 8
Re: Riconoscimento formattazione
Possiamo creare una funzione personalizzata come questaCharc7is ha scritto:....se avessi la funzione =BACKGROUND(A1) e questo mi restituisce FFFF00 al posto di 00FFFF io poi trovo il modo di trasformare quei codici in "A", "B" o "C"
Codice: Seleziona tutto
Function Colore(Col, Riga)
Sh = ThisComponent.CurrentController.ActiveSheet
Colore = Hex(Sh.GetCellByPosition(Col-1, Riga-1).CellBackColor)
End Function
Codice: Seleziona tutto
=COLORE(3; RIF.RIGA(A6))
Codice: Seleziona tutto
=COLORE(3; 6)
Conoscendo i codici dei colori tramite altre funzioni, come il cerca verticale puoi ricavarti il nome dei colori, ma devi costruirti una tabella con le varie colorazioni.
Allego esempio
- Allegati
-
- Richiesta riconoscimento formattazione.ods
- (17.94 KiB) Scaricato 215 volte
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Openoffice 4.1.13 su windows 10
Re: Riconoscimento formattazione
Meglio modificare la macro aggiungendo tra i parametri il numero del foglio, usando CurrentController.ActiveSheet all'apertura del file esce fuori un errore di variabile dell'oggetto non impostata in quanto la funzione va alla ricerca del foglio attivo ancora non caricato e quindi non conosciuto.
il primo parametro identifica il numero del foglio1
Codice: Seleziona tutto
Function Colore(Fg, Col, Riga)
Sh = ThisComponent.Sheets(Fg-1) 'CurrentController.ActiveSheet
Colore = Hex(Sh.GetCellByPosition(Col-1, Riga-1).CellBackColor)
End Function
Codice: Seleziona tutto
=COLORE(1;3; RIF.RIGA(A6))
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Openoffice 4.1.13 su windows 10
Re: Riconoscimento formattazione
infatti ho anche installato la nuova versione di OpenOffice, ma mi creava ancora problemi, adesso devo capire come modificare una macro (mai usate)
OpenOffice 4.1.1 su Windows 8
Re: Riconoscimento formattazione
ok sto modificando la macro ma questa parte non la trovoGaetanopr ha scritto:il primo parametro identifica il numero del foglio1Codice: Seleziona tutto
=COLORE(1;3; RIF.RIGA(A6))
OpenOffice 4.1.1 su Windows 8
Re: Riconoscimento formattazione
Certo che non la trovi, trattandosi di una funzione la devi scrivere sulla cella dove vuoi che venga restituito il risultato.
Per funzionare devi abilitare il programma alle macro andando su Strumenti - Opzioni - Sicurezza - Sicurezza delle macro - imposti a medio, ad ogni apertura del file ti comparirà una finestra dove dovrai selezionare il pulsante Abilita macro.
Per funzionare devi abilitare il programma alle macro andando su Strumenti - Opzioni - Sicurezza - Sicurezza delle macro - imposti a medio, ad ogni apertura del file ti comparirà una finestra dove dovrai selezionare il pulsante Abilita macro.
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Openoffice 4.1.13 su windows 10
Re: Riconoscimento formattazione
Per la definizione del nome della funzione personalizzata usa un nome diverso da "Colore".
Una funzione =COLORE() non è ancora presente in AOo 416 ma è già implementata in LIBREO 624 con altre caratteristiche.
Al posto della parola "Colore" puoi per esempio usare "ColoreSfondoCella".
Una funzione =COLORE() non è ancora presente in AOo 416 ma è già implementata in LIBREO 624 con altre caratteristiche.
Al posto della parola "Colore" puoi per esempio usare "ColoreSfondoCella".
Re: Riconoscimento formattazione
ho seguito i consigli sia di Gaetanopr che ha gettato le basi fondanti che il consiglio di lucky63
la formula adesso è =COLORESFONDO(1;RIF.COLONNA(C6); RIF.RIGA(C6))
come si può vedere il nome non è più semplicemente Colore, ma ColoreSfondo così da non confondersi con possibili nuove formule
ho aggiunto anche Rif.Colonna così da poterlo mettere dove si vuole, ovviamente bisogna cambiare C6 nei due punti con la cella che si vuole controllare e poi copiando la formula senza fare più nulla ^_^
Grazie a tutti
la formula adesso è =COLORESFONDO(1;RIF.COLONNA(C6); RIF.RIGA(C6))
come si può vedere il nome non è più semplicemente Colore, ma ColoreSfondo così da non confondersi con possibili nuove formule
ho aggiunto anche Rif.Colonna così da poterlo mettere dove si vuole, ovviamente bisogna cambiare C6 nei due punti con la cella che si vuole controllare e poi copiando la formula senza fare più nulla ^_^
Grazie a tutti
- Allegati
-
- Richiesta riconoscimento formattazione Test.ods
- (18.5 KiB) Scaricato 150 volte
OpenOffice 4.1.1 su Windows 8
Re: Riconoscimento formattazione
lucky63 ha scritto:Una funzione =COLORE() non è ancora presente in AOo 416 ma è già implementata in LIBREO 624 con altre caratteristiche......

LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Openoffice 4.1.13 su windows 10