webForumDet fria alternativet

Macro Skicka mail till mailadress i cell x samt bifoga data från ett cellintervall

Kontorsprogram

4 svar · 3 960 visningar · startad av McD

Medlem sedan mars 20002 520 inlägg
Frågan#1

Hej,

Behöver lite hjälp får verkligen inte till detta :r

Det jag vill göra är vid tryck på gröna pilen (fliken inskrivning):

Skicka mail till mailadressen från cell A1 och sen kopiera in cellerna i det grönmarkerade fältet (fliken Mall) i mailet (ska inte vara bifogad fil).

Se min exempelfil:

http://www.mcdz.net/wp-content/uploads/test.xlsx

Väldigt tacksam för hjälp!

Medlem sedan nov. 201253 inlägg
#2

1. Du vill inte göra det här. Egentligen.
Om du inte vet precis vad du sysslar med så kan alla försök att skapa automatiserade utskick hoppa upp och bita dig i rumpan...

2. Om du ändå försöker. se till att det bara är dina adresser som ligger i bladet när du experimenterar.

3. Det finns en lång historia av macrovirus som sände sig själva vidare, så det finns en del inbyggda avgränsningar som du lär märka.

Kolla de här sidorna.
http://msdn.microsoft.com/en-us/library/ff458119(office.11).aspx
http://www.databison.com/3-nifty-ways-to-send-email-using-excel/

Om vi antar att du skulle bygga på en av koderna i länkarna så högerklickar du på din pil. Välj "koppla makro till knapp" -> Nytt (kanske redigera)

Sen klistrar du in den kod du gillar från exempelsidorna och ändrar parametrarna så att de stämmer med det du vill göra.

T.ex den här, lätt ändrade, koden från länk 2 som använder Outlook och skickar "det gröna området" som text:
http://www.databison.com/3-nifty-ways-to-send-email-using-excel/

Sub knapp1_Klicka()
Dim Email_Subject, Email_Send_To, _
 Email_Body As String
 Dim cellen As Range
 Dim Mail_Object, Mail_Single As Variant
 
 Email_Subject = "färgval"
 Email_Send_To = Worksheets("Inskrivning").Range("B2").Value
 For Each cellen In Worksheets("Mall").Range("A1:A10")
    Email_Body = Email_Body & cellen.Value & Chr(13) ' lopar igenom cellerna och hämtar värdet som text
 Next cellen

On Error GoTo debugs
Set Mail_Object = CreateObject("Outlook.Application")
Set Mail_Single = Mail_Object.CreateItem(0)
With Mail_Single
 .Subject = Email_Subject
 .To = Email_Send_To
 .Body = Email_Body
 .send
End With

debugs:
If Err.Description <> "" Then MsgBox Err.Description
End Sub
Medlem sedan mars 20002 520 inlägg
#3

Tack för infon. ska labba lite med detta nästa vecka i lugn och ro återkommer.

Medlem sedan mars 20002 520 inlägg
#4

Hej

Tack för din hjälp du drog mig i rätt riktning :)

Den slutgiltiga koden som funkar

Sub Send_Range()

Dim Email_Subject
Dim Email_Send_To

Email_Send_To = Worksheets("Uträkningsmall").Range("C4").Value
Email_Subject = Worksheets("Uträkningsmall").Range("C2").Value

   ' Markera cellområdet i det aktiva kalkylbladet.

   Sheets("Offert").Select
   Range("A1:F72").Select
   
   ' Visa kuvertet i den aktiva arbetsboken.

   ActiveWorkbook.EnvelopeVisible = True
   
   ' Ange det valfria inledningsfält som lägger
   ' till huvudtext i meddelandet. Det anger även
   ' raderna Till och Ämne. Till sist skickas
   ' meddelandet.

   With ActiveSheet.MailEnvelope

      .Item.To = Email_Send_To
      .Item.Subject = Email_Subject
      .Item.send

   End With

End Sub
Medlem sedan nov. 201253 inlägg
#5

Woops, där ser man.

Hade av någon anledning fått för mig att "MailEnvelope" var spärrad i VBA.

Du kanske skall lägga länken om någon vill hitta till källan? Bara för att vara snäll.
http://support.microsoft.com/kb/816644

266 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)