Condividi:        

[Excel] invio mail con macro

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

[Excel] invio mail con macro

Postdi bicio13 » 01/09/11 09:19

Buongiorno a tutti ho bisogno di un consiglio per l''invio di una mail tramite macro;

per quanto riguarda il codice per le istruzioni nessun problema, ho dei problemi con il corpo del testo:
ho bisogno di copiare tutte le celle dalla A1 alla G20, con il metodo range non è possibile e copiando le singole celle non mantiene la tabulazione....
in sostanza il file xls potrebbe essere cosi composto:

Codice: Seleziona tutto
citta      regione
torino     piemonte
milano     lombardia
roma       lazio


ho bisogno quindi che nel corpo mail venga mantenuta la tabulazione qualcuno ha consigli?

grazie fabrizio
bicio13
Utente Junior
 
Post: 10
Iscritto il: 28/04/11 13:13

Sponsor
 

Re: [Excel] invio mail con macro

Postdi bicio13 » 01/09/11 15:56

Codice: Seleziona tutto
Msg = ""
Msg = Msg & [A1] & ":   " & [D1] & "%0D%0A"                 'data
Msg = Msg & "              " & [A4] & "%0D%0A"              'titolo tabella
'Msg = Msg & [A6] & "    " & [B6] & "   " & "          " & [E6] & "    " & [F6] & "   " & [G6] & "%0D"       'titoli colonne tabella


'dati tabella
For r = 7 To 10
    aux = Len(ws1.Cells(r, 1))
    Msg = Msg & Cells(r, 1)
    For c = aux To 10
        Msg = Msg & " "
    Next c
   
    aux = Len(ws1.Cells(r, 2))
    Msg = Msg & Cells(r, 2)
    For c = aux To 15
        Msg = Msg & " "
    Next c
   
    aux = Len(ws1.Cells(r, 3))
    Msg = Msg & Cells(r, 3)
    For c = aux To 11
        Msg = Msg & " "
    Next c
   
    aux = Len(ws1.Cells(r, 5))
    Msg = Msg & Cells(r, 5)
    For c = aux To 10
        Msg = Msg & " "
    Next c
   
    aux = Len(ws1.Cells(r, 6))
    Msg = Msg & Cells(r, 6)
    For c = aux To 19
        Msg = Msg & " "
    Next c
   

    Msg = Msg & Cells(r, 7) & "%0D%0A"
   
Next r


Msg = Msg & [A16] & "%0D%0A"
Msg = Msg & [A18] & ":     " & [C18] & "%0D%0A"
Msg = Msg & [A19] & ":     " & [C19] & "%0D%0A"
Msg = Msg & [A20] & ":     " & [C20] & "%0D%0A"



MsgBox (Msg)
Msg = Application.WorksheetFunction.Substitute(Msg, " ", "%20")




ThisWorkbook.FollowHyperlink _
"mailto:Fabrizio@aaa.it?subject=" & Replace("Avviso", "&", "%26") & "&body=" & Msg
 



ho provato questo codice per risolvere il problema ma:
la 3 riga se la attivo da errore
le ultime due danno errori come la terza, ma quella prima (identica) non ne da (i dati sono simili)

l'errore dato è: chiamata di routine o argomento non validi

grazie per l'aiuto
bicio13
Utente Junior
 
Post: 10
Iscritto il: 28/04/11 13:13

Re: [Excel] invio mail con macro

Postdi Anthony47 » 03/09/11 19:19

Il comportamento potrebbe dipendere dal contenuto della cella che vai a elaborare; potrebbe pero' essere utile confermare quale e' la riga di codice che va in errore.
A livello di prova potresti sostituire & "%0D%0A" con & vbCrLf, e a livello di miglioramento generico sostituire i vari For c = aux To 10 / Msg = Msg & " " / Next c con
Codice: Seleziona tutto
Msg = Msg & String(abs(10-c)," ")

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


Torna a Applicazioni Office Windows


Topic correlati a "[Excel] invio mail con macro":


Chi c’è in linea

Visitano il forum: Gianca532011 e 66 ospiti