Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

formattare parte di un testo all'interno di formula excel

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

formattare parte di un testo all'interno di formula excel

Postdi bubbalucky » 07/01/08 23:40

ciao a tutti e buon anno,
ho il seguente quesito:

in excel (che ritengo di saper usare benino) all'interno di un foglio ho quattro colonne nelle quali ho sia testo sia numeri

li concateno con la & ed ottengo una stringa unica

vorrei però che nella stringa finale il contenuto di una delle celle mi capaia sottolineato, un'altro in grassetto, un'altro in corsivo

ho provato con la funzione TESTO(val; formato) inserendo in formato [s] e [/s], ma non mi accetta la formula nè così nè combinando in qualsiasi altro modo i campi.

ho girato un po' su internet, ma non trovo niente di risolutivo, qualcuno di voi può darmi una mano? P.S. devo poter utilizzare solo EXCEL senza alcun applicativo aggiuntivo

grazie in anticipo a chi mi saprà aiutare
bubbalucky
Utente Junior
 
Post: 61
Iscritto il: 23/02/05 15:27

Sponsor
 

Re: formattare parte di un testo all'interno di formula excel

Postdi Anthony47 » 08/01/08 03:03

Se la cella contiene una formula puoi applicare la formattazione solo all’ intera cella, non a porzioni di essa.

Puoi aggirare la cosa in questo modo:
-ti calcoli la stringa concatenata in una cella di servizio
-sviluppi una macro di tipo Private Sub Worksheet_Change in cui:
---verifichi subito se e’ cambiata una delle celle sorgenti del concatenamento; se No esci
----- per questo userai qualcosa come
Codice: Seleziona tutto
If Intersect(Target, Range("A1:A3")) Is Nothing Then Exit Sub

---Copi la cella di servizio e fai Incolla speciale/Valore nella cella che ti serve
---su “questa” cella applichi la formattazione, usando
Codice: Seleziona tutto
.Characters(start, N° Crt ).Font.Bold = True
e le varianti .Italic e .Underline
Non dimenticare un
Codice: Seleziona tutto
Application.EnableEvents = False
all’ inizio della macro (subito dopo la If Intersect etc etc) e un
Codice: Seleziona tutto
Application.EnableEvents = True
subito prima di End Sub.

Se con queste guidelines non risolvi, fatti sentire che approfondiamo insieme; se invece risolvi sarebbe bello postare il codice che ti viene fuori.

Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13891
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: formattare parte di un testo all'interno di formula excel

Postdi bubbalucky » 08/01/08 14:12

ti ringranzio per l'interessamento, ma mi parli di programmazione che io non conosco..., possibile che sono incappato in una diavoleria così grande?
bubbalucky
Utente Junior
 
Post: 61
Iscritto il: 23/02/05 15:27

Re: formattare parte di un testo all'interno di formula excel

Postdi Anthony47 » 08/01/08 23:52

Beh, parlare di diavoleria per una cosa che non si puo’ fare mi sembra una esagerazione.

Poi, mi ero limitato alle linee guida delle cose da fare perche’ avevo interpretato ottimisticamente il tuo “benino”.
Facciamo cosi’:
-da excel, tasto dx sul tab col nome del foglio su cui lavori; scegli Visualizza codice
-ti si apre l’ editor vba, che dovrebbe ever a dx un frame vuoto
-copia questo codice e incollalo in quel frame:

Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
'If Intersect(Target, Range("A1:A3")) Is Nothing Then Exit Sub
If Target.Address <> "$A$1" And Target.Address <> "$A$2" _       
And Target.Address <> "$A$3" Then Exit Sub        '<<<<< celle iniziali
Application.EnableEvents = False
Range("H1").Copy     '<<<<< Cella con formula CONCATENA
Range("A5").Select   '<<<<< Cella del risultato multiformattato
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
lu1 = Len(Range("A1").Value)    '<<<<<
lu2 = Len(Range("A2").Value)    '<<<<<
lu3 = Len(Range("A3").Value)    '<<<<<

With Range("A5")                       '<<<<<
.Characters(1, lu1).Font.Bold = True
.Characters(1 + lu1, lu2).Font.Italic = True
.Characters(1 + lu1, lu2).Font.Bold = False
.Characters(1 + lu1 + lu2, lu3).Font.Underline = True
.Characters(1 + lu1 + lu2, lu3).Font.Bold = False
End With

Application.EnableEvents = True
End Sub


La macro ipotizza che le celle di partenza siano A1, A2 ed A3, la cella H1 contiene la formula di concatenamento e che la cella dove concretizzi la stringa con le formattazioni diverse sia A5.
Se le celle da utilizzare sono altre, allora devi cambiare le istruzioni marcate <<<; oppure dai un nome alle celle che usi (Menu /Inserisci /Nome /Definisci) e poi usi quel nome al posto degli indirizzi.

Ciao, fai sapere i progressi.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13891
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "formattare parte di un testo all'interno di formula excel":


Chi c’è in linea

Visitano il forum: Nessuno e 15 ospiti