Il mio Addin: Excel Swiss Knife

giulianovac

Access/VBA Expert
Expert
9 Giugno 2018
2.735
115
Italy
2013 2019
197
bekkino92 @bekkino92
L'errore di base è che non si tiene conto del fatto che ciò che 'comanda' non è quello che si vede, ma quello che c'è sotto! Ovvero la proprietà Value e la proprietà Value2.
Quello che vedi è solo una 'formattazione' del valore reale che sta sotto.

Nel foglio che allego si vede chiaramente la differenza tra valore (proprietà Value/Value2) e formattazione (propiretà Text).
le riga 3 e 6 riportano rispettivamente 01/10/2019 e 01-ott quindi si ha un Text differente, ma sia il Value che il Value2 sono identici.

Tu stai 'ragionando' relativamente ad una stringa arbitrariamente formattata da te, ed è questo l'errore di fondo. La formattazione è solo un aspetto 'visuale', non puoi dedurre il valore partendo da questo aspetto. E' sempre vero e corretto il contrario.

Non importa se leggi 05/06/2018, il Value mi darà sempre il valore corretto.
Se un inglese apre lo stesso file Excel (con le impostazioni internazionali in inglese) leggerà: 06/05/2018 (e guai mai che non fosse così!)

Relativamente al Value2, guarda cosa avviene nella finestra Immediata
Codice:
?year(43256), month(43256), day(43256)
2018          6             5
Come vedi l'individuazione di una data, è inequivocabile in modo assolutamente corretto.

Infine, confronta le diferse formattazioni nelle celle della colonna A, e vedrai che sono quelle che cambiano la visualizzazione. ';)
 

Allegati

  • Like
Reactions: Marco Lauria

bekkino92

Utente abituale
1 Novembre 2018
136
18
Excel 2016
1
Ciao bekkino92 @bekkino92 , intanto grazie per i complimenti e spero che il programma possa esserti di qualche ispirazione, magari guardando il codice sorgente che rendo sempre disponibile per il download.
E poi hai ragione: non ci sono strumenti che lavorano sulle date, che sono sempre un campo minato... ma sarebbe molto utile implementare qualcosa tipo quello che hai suggerito qui, che tra l'altro è già un bell'esempio dell'utilizzo di vari costrutti, per cui ti faccio i miei complimenti :StrettaDiMano: sebbene abbia dei "difetti di gioventù" che ne determinano il malfunzionamento, come ad esempio:
- se una data ha entrambi i numeri sotto al 12, la procedura scambia sempre giorno e mese (prova ad esempio con "05/06/2019")
- avendo dichiarato la variabile d come Data, essa memorizzerà lo stesso dato sia che trovi "26/11/2018", sia che trovi "11/26/2018". Quindi di fatto basterebbe, per effettuare la conversione:
d = ActiveCell.Value
ActiveCell.Value = d

Il problema è, appunto, quando le date sono ambigue e possono leggersi in entrambi i modi... se non sei certo di quale sia il formato iniziale, non puoi fare una conversione affidabile. Vedi quanti problemi saltano fuori, scavando in profondità? SmileFace
Effettivamente il problema dell'ambiguità c'è, ma lo stabilire il formato iniziale l'avevo lasciato all'accortezza dell'utilizzatore, che come ti dicevo si era trova più volte davanti a date che sapeva essere nel formato sbagliato e che non riusciva a trasformare agevolmente. Per un caso generico non saprei neanche come impostare un riconoscimento per date come 05/06/2019
 

klingklang

Ciappinaro VBA_Expert
Expert
20 Ottobre 2017
5.255
245
43
San Giovanni in Persiceto (BO)
www.excelswissknife.com
2016, 365
378
bekkino92 @bekkino92
L'errore di base è che non si tiene conto del fatto che ciò che 'comanda' non è quello che si vede, ma quello che c'è sotto! Ovvero la proprietà Value e la proprietà Value2.
Quello che vedi è solo una 'formattazione' del valore reale che sta sotto.
Ciao giulianovac @giulianovac , tutto vero e sacrosanto quello che dici, ma se e solo se il valore viene interpretato come "Data": se in un file "italiano" viene memorizzato in una cella il valore "11/26/2018", infatti, il motore di Excel non saprà interpretarlo, e lo considererà una stringa. A questo punto non resta che scomporre il .Text, tramite formule o VBA, per far "rileggere" il valore come data, e non come stringa cappello_saluta
 
  • Like
Reactions: Marco Lauria

giulianovac

Access/VBA Expert
Expert
9 Giugno 2018
2.735
115
Italy
2013 2019
197
Ciao klingklang @klingklang ,
certamente se il valore NON è una data, ma una stringa, non si può certo chiedere ad Excel di fare un miracolo.
 
  • Like
Reactions: klingklang

klingklang

Ciappinaro VBA_Expert
Expert
20 Ottobre 2017
5.255
245
43
San Giovanni in Persiceto (BO)
www.excelswissknife.com
2016, 365
378
Nuova versione rilasciata: 3.1

Ciao a tutti e ben ritrovati :sorriso:

Dopo un po' di tempo torno con un nuovo aggiornamento: spero che troverete le novità utili e interessanti, in particolare la funzione "Snapshots" che volevo aggiungere da tempo e finalmente ho realizzato come l'avevo in mente: in breve, si tratta di un'interfaccia per salvare dei "punti di ripristino" di un file, permettendo di tornare a una versione precedente in pochi clic, senza tanti salva con nome, cancella, sovrascrivi, zioccan-ho-buttato-via-il-file-buono :-D
Bando alle ciance e passiamo all'elenco delle modifiche:

Changelog: v.3.1 (13/02/2018)

Nuovi strumenti:

Nuove funzionalità aggiunte agli strumenti già esistenti:
+ Aggiunto in molti strumenti un campo di testo per filtrare in tempo reale gli elenchi (dei fogli, delle colonne, etc.)

Miglioramenti vari e correzioni di errori:
  • Implementato un registro errori globale, accessibile dal menu "Impostazioni"
  • Migliorata la compatibilità con Excel 2011-2016/365 per sistemi Mac
  • Corretto un bug nella colorazione delle celle in "Gestisci celle duplicate"
  • Corretto un bug nel backup di fogli selezionati multipli
  • Migliorate le prestazioni di "Aggiungi colonne da altri fogli (tramite colonne chiave)"
  • Aggiunte nuove scorciatoie da tastiera
  • Altri bugfix e miglioramenti
===> Link alla pagina di download <===

Screenshot delle novità principali:

 

dohan9

Nuovo utente
17 Ottobre 2017
17
3
VENEZIA
2013
0
Grazie Enrico, splendido lavoro, in particolare ho potuto risparmiare decine di copia incolla speciale trasponi con la funzione del programma trasponi righe per me veramente utile.
 
  • Like
Reactions: klingklang

zio_tom

Utente abituale
21 Ottobre 2015
885
20
Veneto
2016 - Win10
10
carissimo klingklang @klingklang
ho provato ad installare il tuo applicativo...
premetto che ho la versione 2019 32bit...
Excel si è bloccato, praticamente non riesco a fare più nulla
appare la schermata e non risponde più al click del mouse
per chiudere Excel devo fare CTRL+ALT+CANC
ho provato a lanciare anche unistall ma pure si blocca

sono in un bel guaio....
come posso disinstallarlo senza aprire Excel??
AIUTO!!!
 

klingklang

Ciappinaro VBA_Expert
Expert
20 Ottobre 2017
5.255
245
43
San Giovanni in Persiceto (BO)
www.excelswissknife.com
2016, 365
378
Ciao zio_tom @zio_tom , mi spiace per il problema riscontrato, ma del resto abbiamo capito che la tua installazione di office è, per così dire, "traballante". Non ho mai avuto riscontri simili al tuo prima d'ora, in effetti.
Quello che puoi provare a fare:
  1. cancella, anche manualmente, tutte le tracce del programma dalla cartella di installazione
  2. Avvia Excel in modalità provvisoria e cerca di accedere alla schermata dei componenti aggiuntivi, per poi sbiancare la casella di spunta dal mio componente ed evitare così che excel cerchi di caricarlo all'avvio.
 

zio_tom

Utente abituale
21 Ottobre 2015
885
20
Veneto
2016 - Win10
10
ho cancellato i file.... ora Excel mi si avvia

ma ad ogni avvio mi compare il messaggio ".... SwissKnife non è stato trovato" e dice di eliminarlo o rinominarlo (????? ma se NON c'è!!!)
sono andato su opzioni => componenti aggiuntivi
e levo la spunta di SwissKnife e do OK
dice che NON trova il componente aggiuntivo e chiede se voglio eliminarlo dall'elenco, a cui rispondo SI
.... chiudo Excel.... al riavvio ripete la solita trafila

PS: provato pure in modalità provvisoria
 

Bruno

Utente assiduo
Expert
13 Settembre 2015
1.147
115
Italy
365/64 Bit W10
117
Ciao

sono andato su opzioni => componenti aggiuntivi
e levo la spunta di SwissKnife e do OK
Fai una prova, rimuovi tutti i componenti aggiuntivi che stai utilizzando poi chiudi excel
In questo modo hai pulito la lista da eventuali errori non rimovibili diversamente .:studia:

Ora apri Excel, seleziona ed aggiungi tutti i componenti aggiuntivi necessari

Fai sapere se hai risolto
 

klingklang

Ciappinaro VBA_Expert
Expert
20 Ottobre 2017
5.255
245
43
San Giovanni in Persiceto (BO)
www.excelswissknife.com
2016, 365
378
ho cancellato i file.... ora Excel mi si avvia

ma ad ogni avvio mi compare il messaggio ".... SwissKnife non è stato trovato" e dice di eliminarlo o rinominarlo (????? ma se NON c'è!!!)
sono andato su opzioni => componenti aggiuntivi
e levo la spunta di SwissKnife e do OK
dice che NON trova il componente aggiuntivo e chiede se voglio eliminarlo dall'elenco, a cui rispondo SI
.... chiudo Excel.... al riavvio ripete la solita trafila

PS: provato pure in modalità provvisoria
Hai seguito la procedura corretta. Se non si risolve così, il problema sta a monte, ma siccome non è stato causato dal codice contenuto nel mio programma, pregherei di chiudere qui oppure proseguire in privato, perché qui siamo off-topic, grazie
 

zio_tom

Utente abituale
21 Ottobre 2015
885
20
Veneto
2016 - Win10
10
ho scoperto che la 2019 è più 'sensibile' delle vecchie versioni
precedentemente bastava cancellare l'applicativo e tutto andava a posto al successivo avvio
ora bisogna prima deselezionarlo e poi cancellarlo

ora ho creato un file vuoto con estensione .xlam e l'ho messo nella directory d'installazione svuotata
chiamandolo Excel_SwissKnife.xlam
ho mandato in esecuzione Excel.... tutto bene e nessun messaggio
sono andato su opzioni => componenti aggiuntivi ed ho deselezionato SwissKnife
ho riavviato e nessun messaggio
ho cancellato la directory d'installazione... ed ancora tutto OK

e chiudo

penso sia un'informazione utile, e speriamo che MS rimetta l'automatismo precedente
 
  • Like
Reactions: klingklang

klingklang

Ciappinaro VBA_Expert
Expert
20 Ottobre 2017
5.255
245
43
San Giovanni in Persiceto (BO)
www.excelswissknife.com
2016, 365
378
Grazie zio_tom @zio_tom , un'informazione che può tornare utile visto che non ho ancora il 2019 a disposizione per dei test :stringomano:

Ne ho approfittato per caricare una bugfix release (3.1.1), visto che avevo trovato un grave bug che impediva la generazione del registro errori (una delle nuove funzioni introdotte), oltre ad altri piccoli dettagli 43
 

zio_tom

Utente abituale
21 Ottobre 2015
885
20
Veneto
2016 - Win10
10
carissimo klingklang @klingklang non ti consiglio di installare la 2019... al momento
Facendo il ripristino ha installato diversi applicativi di compatibilità con 2007, ma non funzionano ancora bene
e se ci sono 'certe' funzioni in VBA non carica il codice
Al momento ho trovato diverse altre discrepanze...
Momentaneamente ho ovviato, in molti casi ma non in tutti, caricando il file con la 2010 e poi salvandolo con l'estensione o .xlsx o .xlsm, questo non solo se il file è un vecchio .xls (probabilmente il problema è dovuto se si è salvato in modo compatibilità)
Ho visto che devo usare la 2010... anche la 2016 ha problemi di compatibilità specie con 'certi' moduli di classe in vecchi file (ma molto meno)

Sarebbe utile che il forum aprisse una sezione relativa alla 2019, segnalando così, in prima pagina i problemi ricorrenti
 

alfrimpa

VBA Expert
Supermoderatore
Expert
18 Dicembre 2015
21.961
1.745
66
Napoli
2019 Pro Plus
453
Sarebbe utile che il forum aprisse una sezione relativa alla 2019, segnalando così, in prima pagina i problemi ricorrenti
Personalmente penso che aprire una sezione specifica per Excel 2019 sia assolutamente prematuro considerando che tale versione, al momento, non ce l'ha quasi nessuno.

D'altra parte, se dovesse verificarsi l'evenienza, si può sempre postare in Excel in generale.
 

zio_tom

Utente abituale
21 Ottobre 2015
885
20
Veneto
2016 - Win10
10
carissimo alfrimpa @alfrimpa il problema è che se messo in 'Excel generale' nel giro di un giorno un post va già in seconda pagina e nel giro di 3-4 giorni..... scompare...
il forum è MOLTO frequentato!!!!!

una sezione dedicata ai problemi dei vari pacchetti Office, installazione, malfunzionamenti, anomalie di certe Funzioni ecc.... non la vedrei male e più utile, quando serve, di altre sezioni.... ludiche
E' un mio personale punto di vista, per migliorare questo già ottimo forum ... "Anomalie e problemi vari"
 

alfrimpa

VBA Expert
Supermoderatore
Expert
18 Dicembre 2015
21.961
1.745
66
Napoli
2019 Pro Plus
453
zio_tom @zio_tom

Per problemi che possono interessare una platea ristrettissima di utenti non vale la pena creare altre sezioni (già allo stato ce ne sono diverse mai o poco frequentate).

Se le discussioni vanno "indietro" c'è sempre lo strumento "CERCA" per chi volesse appunto "indagare" sul forum e se neanche così si dovessero trovare risposte l'unica è rivolgersi ai siti Microsoft.
 

klingklang

Ciappinaro VBA_Expert
Expert
20 Ottobre 2017
5.255
245
43
San Giovanni in Persiceto (BO)
www.excelswissknife.com
2016, 365
378
Ciao a tutti. Chiedo cortesemente a coloro che hanno scaricato l'ultima versione di segnalarmi (magari in privato) eventuali difficoltà nell'installazione, poiché mi sta arrivando qualche feedback di cui fatico a comprendere le ragioni, e men che meno riesco a riprodurli sui miei sistemi.
Grazie per la collaborazione ☺
 

dohan9

Nuovo utente
17 Ottobre 2017
17
3
VENEZIA
2013
0
Ho provato oggi l' installazione nella versione 3.1.1 e funziona correttamente con Office 2016, la 3.1 invece si installava ma all' avvio di excel segnalava un ' errore runtime risolta con questa versione.
Colgo l' occasione per segnalare l' utilita' almeno nel mio lavoro della funzione cancella caratteri specifici , in particolare lo spazio num 32 nell' elenco.
 

klingklang

Ciappinaro VBA_Expert
Expert
20 Ottobre 2017
5.255
245
43
San Giovanni in Persiceto (BO)
www.excelswissknife.com
2016, 365
378
all' avvio di excel segnalava un ' errore runtime
Grazie dohan9 @dohan9
Ti ricordi per caso se l'errore visualizzato era "spazio dello stack esaurito"? Ho avuto un'altra segnalazione analoga ma ancora non ne ho capito pienamente la ragione
 

Sostieni ForumExcel

Aiutaci a sostenere le spese e a mantenere online la community attraverso una libera donazione!