formattazione testo word



  • formattazione testo word
    di cristian68 (utente non iscritto) data: 27/09/2014 00:18:47

    Ciao a tutti,
    ho un quesito sul programma Word,
    avrei un elenco di nomi che quando inserisco in un testo di Word dovrebbero essere messi in corsivo in automatico,
    ho provato con correzione automatica ma non prende il corsivo.
    ho stesso problema anche con excel.
    In base alla vostra esperienza si può fare qualcosa?
    spero di essermi spiegato.
    grazie fin d'ora
    cristian



  • di lepat (utente non iscritto) data: 27/09/2014 07:37:12

    non ho capito, sia su Excel che su word puoi imostare il font che desideri



  • di Zer0Kelvin data: 27/09/2014 15:41:59

    Ciao.
    Potresti provare ad effettuare un ripristino di Office.



  • di cristian68 (utente non iscritto) data: 27/09/2014 22:32:49

    ciao Zer0Kelvin
    indendevo che,
    non è che seleziono un blocco di testo e lo modifico in corsivo, sono alcuni termini che sparsi in varie parti del testo, che quando vengono digitati, tipo con correttore automatico si trasformano in corsivo.
    (oppure per excel mettere in un foglio un elenco di questi termini e che con una macro controlla se negli altri fogli del file siano presenti questi termini che una volta trovati prendono il formato corsivo) secondo te si può fare?
    grazie
    cristian



  • di Zer0Kelvin data: 28/09/2014 00:31:45

    In effeti io avevo capito che non riuscivi a mettere il corsivo...
    In Excel si può fare senz'altro.
    Tramite l'evento Worksheet_Change() si può analizzare il contenuto della cella modificata, verificare se contiene una parola da mettere in cosivo e, per mezzo dell'oggetto Range.Characters, impostare la proprietà
    .FontStyle = "Corsivo"
    per la parola selezionata; in alternativa (e forse è più pratico) si può creare una macro che compia l'operazione su tutto il foglio o su parte di esso
    A quest'ora sono troppo cotto per provarci, però.
    Quasi certamente è possibile farlo anche in Word.



  • di cristian68 (utente non iscritto) data: 28/09/2014 21:00:20

    ciao,
    ho messo un file per visione

    praticamente la macro dovrebbe fare un controllo sui fogli il cui nome inizia per All_
    se ci sono parole contenute nel testo delle varie celle (in All_) che hanno riscontro sul elenco del foglio20 colonna N:N
    si dovrebbero modificare in corsivo, solo la parola non l'intero testo della cella.
    secondo voi si può fare?
    grazie
    cristian



  • di Zer0Kelvin data: 28/09/2014 22:31:37

    Eccoti un primo tentativo di macro.
    Ho visto che nel tuo file c'è già il pulsante collegato alla macro.
    Inserisci il codice (sai come si fa?) qui sotto e prova.
     
    Sub Pulsante2_Click()
    Dim Sh As Worksheet, Fnd As Range, Parola, Elenco As Range, tX As Long, fAddr As String
        With ThisWorkbook.Sheets("Foglio20")
            Set Elenco = Range(.Range("M3"), .Range("M3").End(xlDown))
        End With
        For Each Sh In ThisWorkbook.Sheets
            If Left(Sh.Name, 4) = "All_" Then
                With Sh.UsedRange
                    For Each Parola In Elenco.Cells
                        Set Fnd = .Find(Parola, , xlValues, xlPart)
                        If Not Fnd Is Nothing Then
                            fAddr = Fnd.Address
                            Do
                                tX = 1
                                Do
                                    tX = InStr(tX, Fnd.Value, Parola, vbTextCompare)
                                    If tX > 0 Then
                                        Fnd.Characters(Start:=tX, Length:=Len(Parola)).Font.FontStyle = "Corsivo"
                                        tX = tX + Len(Parola)
                                    End If
                                Loop Until tX = 0
                                Set Fnd = .FindNext(Fnd)
                            Loop Until (Fnd Is Nothing) Or (fAddr = Fnd.Address)
                        End If
                    Next Parola
                End With
            End If
        Next Sh
        Set Fnd = Nothing
        Set Elenco = Nothing
    End Sub



  • di cristian68 (utente non iscritto) data: 29/09/2014 17:38:02

    ciao, Zer0Kelvin
    complimenti funziona benessimo, sei veramente bravo,
    approfitto per chiedereti se si volesse che il testo che modifica in corsivo fosse anche in grassetto e di un altro colore tipo blu si potrebbe?
    poi se hai un momentino di tempo, giusto per iniziare a capire il VBA, mi metteresti la spiegazione delle righe di codice...
    come hai fatto ad acquisire così bene le funzionalità del VBA... io proprio faccio fatica.
    con un file di word funzionerebbe questa macro?
    grazie
    cristian




  • di Zer0Kelvin data: 29/09/2014 22:16:34

    Ciao.
    Per quanto riguarda gli attributi del testo, sì , si può impostare anche grassetto, colore, e dimensione dei caratteri. appena posso ti mostro un esempio.
    Per il resto, per il momento non ho tempo (e non ne avrò per un paio di giorni).
    Per quanto concerne Word, la macro così com'è non può funzionare di sicuro, visto che fà riferimento a degli oggetti che sono specifici di Excel.
    Potresti allegare un file Word su cui fare dei tentativi. ma non posso garantire il risultato, dal momento che la mia esperienza del VBA di Word è veramente minima.
    Comunque se alleghi un file posso provarci.



  • di cristian68 (utente non iscritto) data: 10/10/2014 00:06:44

    Grazie a tutti in particolare a Zer0Kelvin del prezioso aiuto.
    cristian