Inserire nel codice Macro: grassetto, sottolineato

Anonimo
2025-01-08T16:53:36+00:00

Ciao,
ho questo codice marco che genera una mail automatica attraverso un template pronto.
In questo template rispetto a prima devo mettere dei caratteri in: grassetto, sottolineati, in rosso.

Ho provato a cambiare solo il template mettendo appunto i caratteri nella modalità sopra indicata ma quando la macro genera la mail non li riporta, cosa devo cambiare nel codice per far in modo di mantenere grassetto etc?

Microsoft 365 e Office | Excel | Per il lavoro | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Eleuterio Tedeschi 18,590 Punti di reputazione Moderatore volontario
2025-01-10T18:41:48+00:00

Questo foglio ha un testo dove ci sono caratteri anche in grassetto/sottolineati/in rosso.

Se devi recuperare il formato delle celle, devi leggerne il contenuto carattere per carattere, per poi replicarlo con i tag HTML, non so se sono stato più chiaro adesso,

ciao.

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2025-01-09T13:07:56+00:00

Non dici cosa devi evidenziare, ti faccio un esempio:

strBody = strBody & "<td>" & .Cells(lngR, lngC).Value & "</td>" 

questa parte, se volessi applicare il grassetto, devi scriverla così (nota i tag bold):

strBody = strBody & "<td><b>" & .Cells(lngR, lngC).Value & "</b></td>" 

Hai avuto modo di leggere la pagina di cui ti ho dato il link?

Ciao.

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

5 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2025-01-09T11:55:10+00:00

    Ciao,
    ho questo codice marco che genera una mail automatica attraverso un template pronto.

    Non c'è nessun codice VBA, inoltre tieni a mente che la macro è l'insieme delle istruzioni VBA, Marco è un nome di persona.

    In questo template rispetto a prima devo mettere dei caratteri in: grassetto, sottolineati, in rosso.

    Genericamente, devi usare un body HTML ed usare i tag <b> e <i>, qui trovi indicazioni utili.

    Ciao.

    M scuso se ho scritto Marco invece che Macro, ovviamente la mia intenzione era scrivere quest'ultimo termine anziché il nome di persona.
    Il codice macro che devo modificare è il seguente:

    Sub InviaEmailFiltro()

    Dim lngC As Long, lngR As Long, lngRows As Long, lngCols As Long 
    
    Dim blnF As Boolean, lngF As Long, strF As String, strH As String, strEmail As String 
    
    Dim olApp As Outlook.Application, dicF As Dictionary, varF 
    
    Dim mail As MailItem, strBody As String 
    
    Dim wksS As Worksheet, wksH As Worksheet 
    
        Set wksS = Worksheets("righe da sollecitare dali") 
    
        Set wksH = Worksheets("email da inviare") 
    
        Set dicF = New Scripting.Dictionary 
    
        With wksS 
    
            lngRows = .Range("B" & Rows.Count).End(xlUp).Row 
    
            If lngRows = 1 Then Exit Sub 
    
            For lngR = 2 To lngRows 
    
                If Not dicF.Exists(.Cells(lngR, 2).Value) And Not Rows(lngR).Hidden Then 
    
                    dicF.Add .Cells(lngR, 2).Value, "e-" & .Cells(lngR, 2).Value 
    
                End If 
    
            Next lngR 
    
        End With 
    
        lngF = 2 
    
        For Each varF In dicF.Keys 
    
            strBody = Replace(Replace(wksH.Range("A1").Value, "Gentile fornitore,", "Gentile " & varF & ","), Chr(10), "<br>") 
    
            strEmail = "" 'dicF(varF) 
    
            strBody = strBody & "<table><thead><tr>" 
    
            lngC = 4 
    
            With wksS 
    
                Do Until .Cells(1, lngC).Value = "" 
    
                    strBody = strBody & "<th>" & .Cells(1, lngC).Value & "</th>" 
    
                    lngC = lngC + 1 
    
                Loop 
    
                lngCols = lngC - 1 
    
                strBody = strBody & "</tr></thead><tbody>" 
    
                lngRows = .Range("B" & Rows.Count).End(xlUp).Row 
    
                blnF = False 
    
                For lngR = 2 To lngRows 
    
                    If UCase(.Cells(lngR, 3).Value) = UCase(varF) Then 
    
                        blnF = True 
    
                        strBody = strBody & "<tr>" 
    
                        For lngC = 4 To lngCols 
    
                            strBody = strBody & "<td>" & .Cells(lngR, lngC).Value & "</td>" 
    
                        Next lngC 
    
                        strBody = strBody & "</tr>" 
    
                    End If 
    
                Next lngR 
    
                strBody = strBody & "</tbody></table>" 
    
            End With 
    
            If blnF Then 
    
                Set olApp = New Outlook.Application 
    
                Set mail = olApp.CreateItem(olMailItem) 
    
                With mail 
    
                    .To = strEmail 
    
                    .Subject = "Sollecito" 
    
                    .HTMLBody = strBody 
    
                    .Display 
    
                End With 
    
            Else 
    
                MsgBox "Nessun record trovato per il fornitore " & wksS.Range("L1").Value, vbCritical, "Fine" 
    
            End If 
    
            lngF = lngF + 1 
    
        Next varF 
    
    End Sub
    

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2025-01-09T07:15:54+00:00

    Ciao,
    ho questo codice marco che genera una mail automatica attraverso un template pronto.

    Non c'è nessun codice VBA, inoltre tieni a mente che la macro è l'insieme delle istruzioni VBA, Marco è un nome di persona.

    In questo template rispetto a prima devo mettere dei caratteri in: grassetto, sottolineati, in rosso.

    Genericamente, devi usare un body HTML ed usare i tag <b> e <i>, qui trovi indicazioni utili.

    Ciao.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Eliminata

    Questa risposta è stata eliminata a causa di una violazione del codice di comportamento. La risposta è stata segnalata manualmente o identificata tramite il rilevamento automatizzato prima dell'esecuzione dell'azione. Per ulteriori informazioni, fai riferimento al codice di comportamento.


    I commenti sono stati disattivati. Ulteriori informazioni