Condividi:        

Cella con formato personalizzato: inserire "a capo"

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Cella con formato personalizzato: inserire "a capo"

Postdi Ricky0185 » 09/01/24 19:15

Buonasera, ho una cella con un numero (che uso poi nelle operazioni) formattato personalizzato con alcune parole prima ed altre dopo il numero, sempre racchiuse tra virgolette. Vorrei suddividere la visualizzazione nella cella in due righe, la prima con quanto scritto prima del numero e la seconda con il numero e quanto scritto dopo. Ho provato ad inserire il CHAR(10) nel formato personalizzato, ma non funziona, pur rimanendo nella cella il valore 40 utilizzabile nelle successive operazioni.
"Ambarabà cicì cocò" "& CHAR(10) &" "40 €/giorno"
Suggerimenti?
Saluto
R
Ricky0185
Utente Senior
 
Post: 266
Iscritto il: 10/12/19 20:38

Sponsor
 

Re: Cella con formato personalizzato: inserire "a capo"

Postdi Anthony47 » 09/01/24 20:17

Non puoi usare una formula all'interno di una formattazione personalizzata; puoi pero' simulare l'input del carattere corrispondente a CHR(10) usando il tastierino numerico in combinazione col tasto Alt.
Quindi:
1) avvia la formattazione con formati personalizzati
2) scrivere da tastiere "Ambarabà cicì cocò " prima del formato numerico
3) scrivere da tastiera " €/giorno" dopo il formato numerico
4) tornare prima delle Virgolette dopo cocò, premere il tasto Alt e digitare "sul tastierino numerico" 010; rilasciare il tasto Alt
La strana sequenza 2-3-4 e' dovuta al fatto che probabilmente dopo aver inserito il carattere Alt(010) il formato viene splittato su 2 righe ma lo spazio consente di visualizzare solo la prima

Insomma il formato introdotto sarà del tipo
Codice: Seleziona tutto
"Ambarabà cicì cocò H" #.##0,00 " €/giorno";[Rosso]-#.##0,00
dove la H indica il posto dove hai introdotto il carattere ALT(010)
Questa stringa formatta solo i numeri positivi, ma per il tuo caso mi sembra sufficiente

Inoltre la cella va formattata spuntando l'opzione "Testo a capo", nel tab Allineamento della finestrella Formato celle.

Ribadisco che Alt(010) va introdotto usando il tastierino numerico, non i numeri che si trovano in alto in genere sotto la fila dei tasti funzione.
Prova...

keyw
custom format with wrap text

Avatar utente
Anthony47
Moderatore
 
Post: 19228
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Cella con formato personalizzato: inserire "a capo"

Postdi Ricky0185 » 09/01/24 20:51

Che dire...eccezionale è riduttivo
Ti ringrazio e saluto.
R
PS La cosa curiosa è che la larghezza della colonna è esattamente uguale al contenuto della cella come se fosse un unica riga, quindi essendo 2 righe avanza spazio ad inizio ed a fine delle 2 righe
Ricky0185
Utente Senior
 
Post: 266
Iscritto il: 10/12/19 20:38

Re: Cella con formato personalizzato: inserire "a capo"

Postdi Ricky0185 » 27/01/24 13:53

E se invece volessi andare a capo con "al mese" nella cella con formato personalizzato come questa
"± €" #.##0,00 "al mese"
dove metto l'Alt010 ?
Ricky0185
Utente Senior
 
Post: 266
Iscritto il: 10/12/19 20:38

Re: Cella con formato personalizzato: inserire "a capo"

Postdi Anthony47 » 27/01/24 15:17

Devi usare "± €" #.##0,00 "Hal mese", dove H rappresenta sempre il posto per Alt(010)
Tuttavia quel "±" mi fa venire il sospetto che voglia gestire sia numeri positivi che negativi; se e' così allora tieni presente che i formati personalizzati variano per numeri positivi, negativi, e zero; vedi https://support.microsoft.com/it-it/off ... f18b4eae68

Insomma forse il tuo formato dovrebbe essere
Codice: Seleziona tutto
"€" #.##0,00 "Hal mese"; "- €" #.##0,00 "Hal mese"
Con 2 Alt(010) da inserire

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19228
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Cella con formato personalizzato: inserire "a capo"

Postdi Ricky0185 » 27/01/24 20:07

Mannaggia, avevo provato la tua soluzione, ma dimenticandomi di formattare la cella con l'A Capo e con l'Adatta per la larghezza colonna, vedevo solo la cella riempita di asterischi. Come ti ho detto più sopra se adatti la colonna al contenuto ottieni una larghezza come se il testo fosse su un unica riga.
Il ± significa "circa".
Ciao e grazie
R
Ricky0185
Utente Senior
 
Post: 266
Iscritto il: 10/12/19 20:38

Re: Cella con formato personalizzato: inserire "a capo"

Postdi Anthony47 » 27/01/24 23:15

Se ti serve il "circa" allora usa la combinazione Alt(126), che ti restituisce ~
Avatar utente
Anthony47
Moderatore
 
Post: 19228
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Cella con formato personalizzato: inserire "a capo"

Postdi Ricky0185 » 28/01/24 08:08

Il tilde con il 2003 puoi solo copiarlo dalla mappa caratteri. Più veloce Alt+0177 che restituisce ± che per i non addetti significa "circa".
Buona Domenica.
R
Ricky0185
Utente Senior
 
Post: 266
Iscritto il: 10/12/19 20:38

Re: Cella con formato personalizzato: inserire "a capo"

Postdi Anthony47 » 28/01/24 15:40

Indipendentemente da quale simbolo preferisci usare (mi pare che il file, tra l'altro, sia ad uso personale quindi basta che risponda alle tue convenzioni), mi sembra strano che XL2003 a te non accetti Alt-126 (ma accetta Alt-010). Provato sul mio 2003 funziona regolarmente; va ribadito che se la tastiera non ha il tastierino numerico allora va usato il tastierino virtuale che in genere si attiva col tasto Fn+BlockNum e usa i tasti 7-8-9/u-i-o/etc etc, e noi i tasti numerici che in genere si trovano nella fila in alto della tastiera.
Funziona anche con Alt-0126, come descritto nella tabella Ansi estesa

Ciao!
Avatar utente
Anthony47
Moderatore
 
Post: 19228
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Cella con formato personalizzato: inserire "a capo"

Postdi Ricky0185 » 30/01/24 07:55

Probabilmente il mio 2003 è più anziano del tuo, nonostante abbia più volte provato sul portatile col tastierino numerico.
Immagine
Approfitto per chiederti come fare, sempre con gli stessi presupposti, a mettere in bold la sola cifra, ma non l'Ambarabà......
Ricky0185
Utente Senior
 
Post: 266
Iscritto il: 10/12/19 20:38

Re: Cella con formato personalizzato: inserire "a capo"

Postdi Anthony47 » 30/01/24 13:07

Probabilmente il mio 2003 è più anziano del tuo, nonostante abbia più volte provato sul portatile col tastierino numerico.
Vabbè, ci sono misteri più affascinanti...

Quanto al Bold non si puo' fare (per quel che ne so) senza una macro che vada a trasformare la scritta prodotta dalla formattazione in un testo. Questo ulteriormente limita la fattibilità al solo caso che la cella con la formattazione venga scritta manualmente (e non tramite formula).
Con queste limitazione, e quindi (immagino) solo a livello di curiosità, funzionerebbe la sequente macro "di evento", quindi da copiare nel modulo vba del foglio su cui lavori.
Il codice:
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ckCells As String, cTxt As String, NumOnly As String
Dim LC As Range, numPos As Long

If Target.Count <> 1 Then Exit Sub
Application.EnableEvents = False
With Target
    cTxt = Target.Text
    Target.Value = cTxt
    If Len(cTxt) > 0 Then
        NumOnly = GetNumbers(cTxt)
        If Len(NumOnly) > 0 Then
            numPos = InStr(1, cTxt, NumOnly, vbTextCompare)
            With Target.Characters(Start:=numPos, Length:=Len(NumOnly)).Font
                .FontStyle = "Bold"
                .Size = 14
                .Underline = xlNone     'xlUnderlineStyleSingle per sottolineato
            End With
            Target.HorizontalAlignment = xlRight
        End If
    End If
End With
Application.EnableEvents = True
End Sub

Per aprire rapidamente il modulo vba su cui inserire il codice:
-partendo dal tuo foglio di lavoro, tasto dx sul tab col nome foglio; scegli Visualizza codice

Ciao

EDIT: Vedi aggiornamento nel prossimo messaggio
Avatar utente
Anthony47
Moderatore
 
Post: 19228
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Cella con formato personalizzato: inserire "a capo"

Postdi Anthony47 » 30/01/24 19:13

Nel codice della Sub Worksheet_Change che ho pubblicato prima ho dimenticato di inserire una parte importante, cioe' limitare l'azione della conversione a specifiche celle o aree, altrimenti il codice potrebbe avere BRUTTI EFFETTI COLLATERALI.
Da aggiungere, subito prima di If Target.Count <> 1 Then Exit Sub:
Codice: Seleziona tutto
ckCells = "C1, C3:C5, K8"           '<<< Le celle cui applicare il codice successivo
If Application.Intersect(Target, Range(ckCells)) Is Nothing Then Exit Sub

La riga marcata <<< va compilata con il vostro elenco; nell'esempio la conversione si applica alle celle C1, C3-C4-C5 e K8.
L'effetto collaterale di cui parlo e' il fatto che, non limitando l'azione a specifiche celle, inserendo ad esempio una formula questa viene sostituita dal suo risultato; il BRUTTO e' che di questo rischiate di accorgervene molto tardi, quando vi accorgete che il foglio non fa i calcoli che vi aspettate. E in effetti sento già dei fischi nelle orecchie :D :oops: :D
Avatar utente
Anthony47
Moderatore
 
Post: 19228
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Cella con formato personalizzato: inserire "a capo"

Postdi Ricky0185 » 01/02/24 07:42

Stamattina avevo un pò di tempo e l'ho provata senza successo. Sia su celle con formula che senza. 2003?
Ricky0185
Utente Senior
 
Post: 266
Iscritto il: 10/12/19 20:38

Re: Cella con formato personalizzato: inserire "a capo"

Postdi Anthony47 » 01/02/24 10:15

Se l'hai provata senza successo e non aggiungi altro allora significa che hai inserito il codice nella posizione sbagliata; altrimenti ti sarebbe comparso il messaggio Errore di Compilazione /Sub o Function non definita.

Il codice va inserito nel modulo vba del foglio su cui lavori.
Per aprire rapidamente il modulo vba su cui inserire il codice:
-partendo dal tuo foglio di lavoro, tasto dx sul tab col nome foglio; scegli Visualizza codice


Inserito il codice nella posizione giusta, appena completi di scrivere qualcosa in qualche cella di quel foglio tale macro si avvia, ma (con le istruzioni che ho dato) comparira' il suddetto errore di compilazione evidenziando la funzione GetNumbers sulla riga NumOnly = GetNumbers(cTxt)
Infatti non vi ho dato il codice di questa funzione: è questo, e va messo in un Modulo standard del vba:
Codice: Seleziona tutto
Function GetNumbers(s As String)
  With CreateObject("VBScript.RegExp")
    .Pattern = "[^0-9,+]"
    .Global = True
    GetNumbers = Replace(.Replace(s, ""), ".", ",")
  End With
End Function
Aggiunto il codice della Function il codice e' completo.

Nell'ipotesi che tu abbia mantenuto ckCells = "C1, C3:C5, K8" come ho usato io nelle prove, e nell'ipotesi che la cella C1 sia formattata nello "stile ambarabà etc etc", vai in C1 e scrivi un numero: la macro si attiva, legge il contenuto della cella, trasforma tutto in Testo dove il numero e' in grassetto e lo riscrive nella cella come testo. O comunnque prova con una delle celle che hai elencato in ckCells.

Idem se nella cella scrivi una formula; es. scrivi =3*2 e alla fine vedrai solo il testo con la "formattazione ambarabà" e la formula è scomparsa.
Il codice pubblicato consente anche di impostare la dimensione del "numero" (io ho usato Size = 14) ed eventualmente di sottolinearlo.

Riprova...
Avatar utente
Anthony47
Moderatore
 
Post: 19228
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Cella con formato personalizzato: inserire "a capo"

Postdi Ricky0185 » 01/02/24 12:28

Ahhh.. mbè. Mancava qualcosa. Adesso funziona perfettamente.
Un particolare curioso: definendo nelle scelte della macro anche un area che comprenda righe e colonne con date es m379:p497 funziona tutto, ma le date scritte giorno/mese/anno le trasforma in stile inglese anche se nel formato cella l'impostazione è italiano.
Ciao e grazie.
R
Ricky0185
Utente Senior
 
Post: 266
Iscritto il: 10/12/19 20:38

Re: Cella con formato personalizzato: inserire "a capo"

Postdi Anthony47 » 01/02/24 17:49

Un particolare curioso: [. . .] le date scritte giorno/mese/anno le trasforma in stile inglese anche se nel formato cella l'impostazione è italiano
Hummm... Una cosa di questo tipo potrebbe avvenire se il tuo Office fosse in lingua Inglese

Prova a sostituire la riga Target.Value = etc etc con
Codice: Seleziona tutto
    Target.Value = "'" & cTxt


Ora non so se il tuo interesse e' per applicazione reale o solo per curiosità; il fatto che distrugga la formula (ti e' chiaro, vero) mi fa pensare piu' a curiosità.
In realta' non sarebbe da escludere un utilizzo insieme ad altra macro che, ad esempio quando tutto e' stato elaborato, copia i dati che interessano in un'area di riepilogo che viene "trattata" dalla WorksheetChange e quindi visualizzata con il formato Bold, in un'area pero' esterna a quella usata per i calcoli (ed in effetti e' sempre buona pratica tenere separata la parte destinata ai calcoli dalla parte destinata alla presentazione dei risultati, dove si aggiungono fronzoli, colori e altre amenità).

C'è pero' da tener presente un limite che non ho dichiarato, e cioè che se la cella visualizza altri "numeri" oltre al numero da visualizzare (noi siamo partiti da una cella contenente un numero), ad esempio una data, o anche il risultato di una formattazione personalizzata del tipo "~ € " 0,00 "HSaldo al 31-Dic-2023", allora l'applicazione del Bold fallirebbe credo sempre

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19228
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Cella con formato personalizzato: inserire "a capo"":


Chi c’è in linea

Visitano il forum: Nessuno e 23 ospiti