Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Testo in TextBox nel corpo email

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

Testo in TextBox nel corpo email

Postdi WCB » 10/04/19 17:44

Buonasera a tutto il forum,
urge un vostro prezioso aiuto :cry:
In una UserForm ho tre TextBox, nelle prime due scrivo dei dati e tramite un command button me li copia nel foglio Excel in determinate celle, nell'ultima invece scrivo altre cose che vorrei che uscissero nell'email.
Vi faccio un esempio: nell'ultima TextBox scrivo "Vi inoltro i dati dei nostri clienti", clicco sul bottone, si apre Outlook e nel corpo email esce il contenuto della TextBox con allegato il foglio attivo in pdf (per questo non c'è nessun problema, ho una macro apposita) comunque lo dico lo stesso in caso cambi qualcosa..
Vi ringrazio in anticipo per la disponibilità e buona serata ;)
"I computer sanno quando vai di fretta"
Excel 2016
Avatar utente
WCB
Utente Senior
 
Post: 101
Iscritto il: 09/01/19 17:52

Sponsor
 

Re: Testo in TextBox nel corpo email

Postdi zsadist » 10/04/19 18:05

Ciao
Sempre premesso che sono con il cellulare, quindi non potrò essere di aiuto al momento, vorrei solo un chiarimento:
Vuoi sapere come dichiarare il corpo della mail?
Cioè dichiarare che, ad esempio, textbox.txt è il corpo della mail?
Adattati! L'incapacità di cambiare direzione porta alla sconfitta
zsadist
Utente Junior
 
Post: 79
Iscritto il: 04/04/19 13:48

Re: Testo in TextBox nel corpo email

Postdi WCB » 10/04/19 18:21

Si esatto, ogni qualvolta che scrivo nella textbox vorrei che, dopo click sul command button, esca il contenuto nel corpo email.
"I computer sanno quando vai di fretta"
Excel 2016
Avatar utente
WCB
Utente Senior
 
Post: 101
Iscritto il: 09/01/19 17:52

Re: Testo in TextBox nel corpo email

Postdi zsadist » 10/04/19 18:36

guarda, non ho capito se sai già come creare una mail da vba (in quel caso non dovresti avere problemi)..

io ti posto questo semplice codice che ho scritto or ora.. ci saranno degli errori ma.. il senso dovresti averlo

alla commanbutton associ la sub

Codice: Seleziona tutto
Sub provamail()

'ovviamente necessita dei riferimenti di outlook (edit ore 19.19)
Dim OutApp As Object '******* peR Email
Dim OutMail As Object '******* peR Email

'bla bla bla

'blabbete blabbete

        Set OutApp = CreateObject("Outlook.Application")
        OutApp.Session.Logon
        Set OutMail = OutApp.CreateItem(0)
       
        With OutMail
        'se vuoi utilizzare l'account, se ne hai più di uno...
                           ' If Val(Application.Version) < 12 Then
                          '  .SendUsingAccount = OutApp.Session.Accounts.Item(1)
                           ' Else
                          '  Set .SendUsingAccount = OutApp.Session.Accounts.Item(1)
                           ' End If
                           

            .To = "pincopallo@gmail.com" '(o riferimento cella o quello che desideri)
            .CC = "" 'o idem come sopra
            .BCC = "" 'o idem come sopra
            .Subject = "il tuo oggetto o riferimento a cella" 'esempio cells(2,3).value
            .BodyFormat = olFormatHTML
            .HTMLBody = textbox3.txt 'o come la vuoi chiamare ***********************************
            '.ReadReceiptRequested = True 'conferma lettura
            '.OriginatorDeliveryReportRequested = True ' conferma recapito
            '.Importance = olImportanceHigh 'Importanza della mail
           
            .Attachments.Add "pincopallo.pdf" 'il tuo pdf
            .display 'visualizza
            '.send 'invia direttamente
       
           
              End With

        Set OutMail = Nothing
        Set OutApp = Nothing

End Sub


ripeto.. è una bozza fatta su due piedi... dimmi se ho capito quale sia il tuo problema :)
Adattati! L'incapacità di cambiare direzione porta alla sconfitta
zsadist
Utente Junior
 
Post: 79
Iscritto il: 04/04/19 13:48

Re: Testo in TextBox nel corpo email

Postdi WCB » 10/04/19 19:02

Lo hai capito e lo hai risolto :D :D
La tua bozza l'ho "smussata" agli angoli (praticamente ho adattato questa riga di codice
Codice: Seleziona tutto
.HTMLBody = TextBox3.Text
) togliendo la conferma di lettura e inserendo l'allegato :P
Grazie ancora della tua disponobilità 8) :)
"I computer sanno quando vai di fretta"
Excel 2016
Avatar utente
WCB
Utente Senior
 
Post: 101
Iscritto il: 09/01/19 17:52

Re: Testo in TextBox nel corpo email

Postdi zsadist » 10/04/19 19:06

Si, ho immesso quello che potrebbe servire... conferma di lettura e altro, tanto per..
Bene dai, l'importante è che io sia riuscito a capire, non è una cosa scontata :)

Buona serata
Adattati! L'incapacità di cambiare direzione porta alla sconfitta
zsadist
Utente Junior
 
Post: 79
Iscritto il: 04/04/19 13:48

Re: Testo in TextBox nel corpo email

Postdi WCB » 10/04/19 20:04

zsadist mi sembrava troppo bello per essere vero....maaa non è così
Non esce l'allegato in pdf.. :aaah
il codice completo è questo:
Codice: Seleziona tutto
Private Sub CommandButton6_Click()
Dim OutApp As Object
Dim OutMail As Object
Dim v As Variant
v = Application.GetSaveAsFilename(Range("A3").Value & " " & Range("B3").Value & " " & Range("C3").Value, "PDF Files (*.pdf), *.pdf")

If VarType(v) <> vbString Then Exit Sub
With ActiveSheet
        .ExportAsFixedFormat Type:=xlTypePDF, Filename:=v, _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, From:=1, To:=1, OpenAfterPublish:=False
    End With

Set OutApp = CreateObject("Outlook.Application")
        OutApp.Session.Logon
Set OutMail = OutApp.CreateItem(0)
On Error Resume Next
With OutMail
  .To = "miaemail@email.com"
  .Subject = "PROVA"
  .HTMLBody = TextBox3.Text
  .Attachment.Add v
  .Display
  '.Send
 
End With
Set OutMail = Nothing
        Set OutApp = Nothing

End Sub

non capisco dove ho sbagliato.. :oops:
"I computer sanno quando vai di fretta"
Excel 2016
Avatar utente
WCB
Utente Senior
 
Post: 101
Iscritto il: 09/01/19 17:52

Re: Testo in TextBox nel corpo email

Postdi zsadist » 10/04/19 20:09

Sono di nuovo distante dal pc..
Comunque, colpa mia..
Per l'allegato devi dare il percorso completo..
Esempio
Prima declami
V= c:\miopercorso\miofile.pdf
E poi puoi inserire quello che hai indicato

Spero di aver capito il problena
Adattati! L'incapacità di cambiare direzione porta alla sconfitta
zsadist
Utente Junior
 
Post: 79
Iscritto il: 04/04/19 13:48

Re: Testo in TextBox nel corpo email

Postdi WCB » 10/04/19 20:12

Purtroppo non posso fare così perchè il nome del file cambia :-?
"I computer sanno quando vai di fretta"
Excel 2016
Avatar utente
WCB
Utente Senior
 
Post: 101
Iscritto il: 09/01/19 17:52

Re: Testo in TextBox nel corpo email

Postdi zsadist » 10/04/19 20:17

Beh.. se cambia, usa un riferimento..
Ad esempio, metti il nome del file in una cella o text box se usi il form..
Poi V sarà uguale a
"C\blablabla\" & riferimento
Adattati! L'incapacità di cambiare direzione porta alla sconfitta
zsadist
Utente Junior
 
Post: 79
Iscritto il: 04/04/19 13:48

Re: Testo in TextBox nel corpo email

Postdi WCB » 11/04/19 08:57

Buongiorno, ho provato come hai detto di fare ma non fa niente :?:
Comunque il riferimento non sarebbe questo?
Codice: Seleziona tutto
v = Application.GetSaveAsFilename(Range("A3").Value & " " & Range("B3").Value & " " & Range("C3").Value, "PDF Files (*.pdf), *.pdf")


La cosa strana è che ho copiato dalla macro che avevo, che appunto invia l'email però col testo già impostato e mi allega il foglio attivo Excel in pdf senza alcun problema, e l'ho inserito tra private sub command button ed end sub non e che ho fatto chissà cosa..
salva il file in pdf nel desktop, il testo dell'email esce ma l'allegato no :eeh:
Non so che pensare.. Intanto ti ringrazio per l'aiuto che mi hai dato :)
"I computer sanno quando vai di fretta"
Excel 2016
Avatar utente
WCB
Utente Senior
 
Post: 101
Iscritto il: 09/01/19 17:52

Re: Testo in TextBox nel corpo email

Postdi zsadist » 11/04/19 09:13

WCB ha scritto:Buongiorno, ho provato come hai detto di fare ma non fa niente :?:
Comunque il riferimento non sarebbe questo?
Codice: Seleziona tutto
v = Application.GetSaveAsFilename(Range("A3").Value & " " & Range("B3").Value & " " & Range("C3").Value, "PDF Files (*.pdf), *.pdf")


Non so che pensare.. Intanto ti ringrazio per l'aiuto che mi hai dato :)


:eeh:
ehm... no.. quello che hai scritto, se non erro, è per salvare un file.... mi sembra...

io dicevo un'altra cosa

cioè, ti faccio un esempio

mettiamo che tu abbia un campo (una cella se nel foglio excel )

Immagine

o una textbox se nel form

Immagine

a questo punto V sarà qualcosa del genere:

Miopercorso= "c:\Documenti\cartellaTua\quellochevuoi\"
File= Cells(1,4).value & ".pdf" (oppure Range("D1") & ".pdf") [oppure ancora uferform1.textbox1.value & ".pdf"]

quindi

V= Miopercorso & File

in pratica, nella cella o nella textbox, metterai solo il nome, senza l'estensione, del file da immettere come allegato

non so se sono riuscito a spiegarmi bene.. abbi pazienza, ho preso con fatica la licenza media inferiore :(
Adattati! L'incapacità di cambiare direzione porta alla sconfitta
zsadist
Utente Junior
 
Post: 79
Iscritto il: 04/04/19 13:48

Re: Testo in TextBox nel corpo email

Postdi WCB » 11/04/19 09:28

Ho fatto la modifica, però adesso non lo salva.
Cioè faccio per cliccare ma esce "documento non salvato" e mi evidenzia questa parte:
Codice: Seleziona tutto
 .ExportAsFixedFormat Type:=xlTypePDF, Filename:=v, _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, From:=1, To:=1, OpenAfterPublish:=False


Ti chiedo anche io di portare pazienza con me che anche io sono uscito con un bel calcio :idea: dalla scuola :lol:
"I computer sanno quando vai di fretta"
Excel 2016
Avatar utente
WCB
Utente Senior
 
Post: 101
Iscritto il: 09/01/19 17:52

Re: Testo in TextBox nel corpo email

Postdi zsadist » 11/04/19 09:34

WCB ha scritto:Ho fatto la modifica, però adesso non lo salva.
Cioè faccio per cliccare ma esce "documento non salvato" e mi evidenzia questa parte:
Codice: Seleziona tutto
 .ExportAsFixedFormat Type:=xlTypePDF, Filename:=v, _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, From:=1, To:=1, OpenAfterPublish:=False


Ti chiedo anche io di portare pazienza con me che anche io sono uscito con un bel calcio :idea: dalla scuola :lol:


bene, dai,
WCB ha scritto: anche io sono uscito con un bel calcio :idea: dalla scuola :lol:
, mal comune mezzo gaudio :D

fammi capire, devi salvare il file o inviarlo? o ambedue le cose?

perché, se lo devi salvare, va benissimo la routine che mi hai scritto prima, poi quelle poche righe che ti ho scritto per poterlo allegare alla mail..

quindi, se devi fare ambedue le cose prima di inviarlo, metti prima la routine di salvataggio, poi, successivamente, la routine per la dichiarazione dell'allegato (V=MioPercorso & File), quindi di seguito, la routine per la creazione della mail..
Adattati! L'incapacità di cambiare direzione porta alla sconfitta
zsadist
Utente Junior
 
Post: 79
Iscritto il: 04/04/19 13:48

Re: Testo in TextBox nel corpo email

Postdi WCB » 11/04/19 09:46

Quindi sarà così:
Dim percorso As String
Dim file As String
percorso = C:ecc
file = Cells(1,4).value & ".pdf"
tutta la pappardella per salvarlo.....
.... lasciandolo invariato

poi scrivo questo :
V= Miopercorso & File

poi lascio invariato il dopo... e dovrebbe funzionare spero
"I computer sanno quando vai di fretta"
Excel 2016
Avatar utente
WCB
Utente Senior
 
Post: 101
Iscritto il: 09/01/19 17:52

Re: Testo in TextBox nel corpo email

Postdi zsadist » 11/04/19 09:50

si, così su due piedi, direi di si.. certo, sto parlando a scatola chiusa, non vedendo il file, ma dovrebbe essere così :D
Adattati! L'incapacità di cambiare direzione porta alla sconfitta
zsadist
Utente Junior
 
Post: 79
Iscritto il: 04/04/19 13:48

Re: Testo in TextBox nel corpo email

Postdi WCB » 11/04/19 09:57

Macchè :evil:
Ti allego il file così dai un'occhiata da vicino..
https://we.tl/t-dk6ASdljH5
il tasto sarebbe "Send e-mail" alla seconda userform
Grazie mille dell'aiuto
"I computer sanno quando vai di fretta"
Excel 2016
Avatar utente
WCB
Utente Senior
 
Post: 101
Iscritto il: 09/01/19 17:52

Re: Testo in TextBox nel corpo email

Postdi Anthony47 » 11/04/19 10:15

Non ho ancora guardato il tuo file...

La variabile V gia' contiene il nome completo del file generato, quindi il codice teoricamente sembra corretto. Tuttavia la presenza del SEMPRE DEPRECABILE "On Error Resume Next" impedisce di rilevare eventuali errori. Elimina quella riga (e non metterla mai piu' se non quando sai che potrebbero emergere degli errori per ragioni ben note e vuoi far finta di niente).
Inserisci anche queste due Debug.Print in questa posizione:
Codice: Seleziona tutto
    End With
Debug.Print v          'Aggiungere
Debug.Print "+" & Dir(v) & "#"     'Aggiungere

Set OutApp = CreateObject("Outlook.Application")

Poi riprova; probabilmente dara' un errore sull'istruzione .Attachment.Add. Prendi nota dell'errore e segnalaci il messaggio completo e quale istruzione della macro e' evidenziata. Mentre sei in Debug, premi Contr-g per aprire la "finestra Immediata" del vba; copia tutto quello che ci trovi dentro e inseriscilo nel tuo prox messaggio.

Con la macro in Debug, controlla se sul disco il file pdf esiste. Quanti kb occuipa? Mi dici se e' su un disco locale o di rete?
Se il file esiste e se la macro si e' fermata su .Attachment.Add, se provi con F8 a eseguire nuovamente l'istruzione in errore quale e' l'esito?
Visto che la mail viene Visualizzata (.Display) controlla visivamente se l'allegato risulta inserito? Se No, provando a inserirlo col comando Allega esso viene inserito?
Codice: Seleziona tutto

Per informazioni di base su come debuggare una macro, vedi viewtopic.php?f=26&t=103893&p=647677#p647677

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

Re: Testo in TextBox nel corpo email

Postdi WCB » 11/04/19 10:38

Poi riprova; probabilmente dara' un errore sull'istruzione .Attachment.Add. Prendi nota dell'errore e segnalaci il messaggio completo e quale istruzione della macro e' evidenziata


Mi evidenzia l'istruzione "Attachment.Add v" e il messaggio che esce è questo :
Errore di run-time 438 l'oggetto non supporta questa proprietà o metodo.
"I computer sanno quando vai di fretta"
Excel 2016
Avatar utente
WCB
Utente Senior
 
Post: 101
Iscritto il: 09/01/19 17:52

Re: Testo in TextBox nel corpo email

Postdi zsadist » 11/04/19 10:39

allora... punto uno
nel file hai dichiarato

file = Cells(1, 3).Value & ".pdf"
ovvero, C1.. con cells prima va indicata la riga, nel tuo caso 3, poi la colonna, nel tuo caso 1

ovvero

file = Cells(3,1).Value & ".pdf"

oppre

file= range("A3") & ".pdf"
Adattati! L'incapacità di cambiare direzione porta alla sconfitta
zsadist
Utente Junior
 
Post: 79
Iscritto il: 04/04/19 13:48

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "Testo in TextBox nel corpo email":


Chi c’è in linea

Visitano il forum: raimea e 25 ospiti