caratteri wingdings in forms
Hai un problema con Excel? 
caratteri wingdings in forms
di marinoernestoch data: 25/01/2014 16:46:43
Buon giorno.
Nel foglio allegato, attivando da macro CC, appare un form con i caratteri dallo 0 al 255 del font specificato per la label Campione.
La domanda che vi rivolgo è: è possibile che la grafica del carattere che appare in una cella con un determinato font sia diversa da quella dello stesso carattere, dello stesso font, ma sul form?
Mi serve, in particolare i font con simboli grafici, quali wingdins.
Grazie
'la macro che attiva il form
Sub cc()
Load frm_caratteri
frm_caratteri.Show
End Sub
|
di patel data: 25/01/2014 17:02:56
spiegati meglio, a me sembrano uguali, se scrivo ABCDE nella cella A1 e cambio il carattere in wingdins il risultato è uguale a quello in alto a sinistra della userform
di Marinoernesto (utente non iscritto) data: 25/01/2014 23:04:05
Se e segui la macro apparira in form con I 255 carat terai e no terai le differenze
di patel data: 26/01/2014 08:55:58
mi sembra un indovinello sulla capacità di osservazione
di marinoernestoch data: 26/01/2014 09:19:58
Grazie Patel dell'interesse.
Non è un indovinello!
Questa mattina ho modificato il foglio, inserendo una visualizzazione di tutti i caratteri del tipo wingdings, ho inserito un pulsante di attivazione macro e ho modificato lo show in modal false.
Se noterai molti simboli sono diversi. Personalmente mi sono accorto quando ho avuto la necessità di aggiungere in un form il car 252 o 254 (baffetto). Così ho visto che tanti altri caratteri (es. lo zero o il 35 (forbicina) ecc.) sono sostituiti con altri che, apparentemente, appartengono ad altri tipi. Guarda il 35 che sul form esce # quando dovrebbe essere forbice.
di scossa (utente non iscritto) data: 26/01/2014 10:47:46
Ciao,
è solo che hai sbagliato la "sequenza logica" nel tuo codice.
Sposta l'assegnazione del carattere alla Caption DOPO aver impostato il Font:
.Font.Name = nome_font
.Caption = Chr(i)
|
di scossa (utente non iscritto) data: 26/01/2014 11:12:00
Ovviamente la corrispondenza è garantita per i caratteri base (fino a chr(127)).
di marinoernestoch (utente non iscritto) data: 26/01/2014 13:20:05
Due considerazioni ed una domanda:
La prima, più che una considerazione è un complimento: come fate ad entrare nella logica ( e nella testa) di chi formula quesiti? Forse siete giovani?
La seconda: ero convinto che i parametri dichiarativi ricompresi tra un with ed un end with non avessero una priorità. Mi spiego: che un .font, o un .top, o un .caption, ecc messi in QUALSIASI ORDINE entro la with ed end with fossero rispettati ed eseguiti.
La domanda che ora mi sorge è: come faccio allora ad usare i caratteri grafici superiori al chr(127)? Grazie
di patel data: 26/01/2014 16:21:17
cit.
Ovviamente la corrispondenza è garantita per i caratteri base (fino a chr(127)).
perché è ovvio ?
di patel data: 26/01/2014 16:24:10
with e end with ti permettono soltanto di omettere l'oggetto, ma proprietà ed i metodi vengono eseguiti in sequenza, lo puoi verificare lanciando la macro con F8
di marinoernestoch (utente non iscritto) data: 26/01/2014 17:06:48
concordo con Patel che la with serve per "scrivere meno". Appunto x questo, anche se alla luce dei pochi rudimenti di excel che conosco, mi è parso strana l'osservazione che il .font.name dovesse essere messo prima di .caption. E' un po' come mettere un valore in una cella e poi dire che la cella ha il grassetto. Invertendo la sequenza, il risultato non cambia.
di patel data: 26/01/2014 17:19:03
non è strana l'osservazione visto che facendo così funziona.
di patel data: 26/01/2014 17:21:31
comunque anche io non ci avevo fatto caso, proprio per questo scossa è insuperabile, fa caso a tutto e sa tutto.
di marinoernestoch (utente non iscritto) data: 26/01/2014 18:30:09
OK. Grazie. Devo ora rivedere alcune mie teorie se Excel!
Rimane in essere il problema dei caratteri sopra il 127°. Come si può fare?
di scossa (utente non iscritto) data: 26/01/2014 19:40:34
cit. patel; "cit.
Ovviamente la corrispondenza è garantita per i caratteri base (fino a chr(127)).
perché è ovvio ? "
Hai ragione, il discorso non è per niente ovvio, anzi è piuttosto complesso. Ho cercato di essere "sbrigativo" (anche perché avevo fretta), intendevo dire che i caratteri ASCII fino a 127 sono "stabili" (il set di caratteri non viene influenzato dal codepage).
cit. Mario:"La domanda che ora mi sorge è: come faccio allora ad usare i caratteri grafici superiori al chr(127)?"
Premesso che non ho mai sviscerato il tema Fonts, non è semplice darti una soluzione.
Un primo ripiego è di impostare
.Font.Charset = 2
subito dopo aver impostato il
.Font.Name = name_font
Purtroppo il carattere mostrato non dipende solo dalla proprietà Charset ma anche dal valore hFont che però è una proprietà che non è disponibile, né in lettura né in scrittura.
Se, nel VBE aggiungi alle espressioni di controllo la proprietà font di una label, imposti il font a Wingdings, noterai che, impostando ad esempio .Caption = chr(159)
e poi giochi con i valori della proprietà Charset, noterai che, se pasticci abbastanza ed aggiorni la caption riuscirai ad ottenere caratteri diversi.
Allego un file con cui giocare (Caratteri2.xlsm)
............
.Font.Name = nome_font
.Font.Charset = 2
.......... |
di scossa (utente non iscritto) data: 26/01/2014 19:41:49
P.S.: il file è realizzato al volo, quindi non prendetelo come esempio di "buona scrittura".
di marinoernestoch (utente non iscritto) data: 26/01/2014 22:08:21
OK. grazie. vi allego il mio foglio originale, leggermente modificato, che espone i fonts su foglio e su mappa a beneficio dei nicks.
Considero chiusa e risolta la discussione, anche se chiedo a scossa: "come si fà a bloccare il pulsante sul tuo foglio?" grazie.
di scossa data: 27/01/2014 09:04:06
cit mario: ".... anche se chiedo a scossa: "come si fà a bloccare il pulsante sul tuo foglio?"
Ho solo impostato "blocca riquadri" dal menu "visualizza".
P.S.: riguardo i caratteri, ovviamente puoi completare l'elenco dei caratteri nel mio file usando il tasto Alt + il codice oltre il 255 (anche se CODICE.CARATT() restituisce errore) e trovare il simbolo che ti interessa (per inserirlo nella caption ovviamente non puoi usare chr() ma da tastiera con ALt+codice)
di marinoernestoch (utente non iscritto) data: 27/01/2014 13:17:07
Grazie scossa. Ho fatto come suggerisci (ALT+ tastierino numerico) per fare delle prove, ma anche modificato con charset il foglio.
Vuoi Approfondire?