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.