Kategorie szkoleń | Egzaminy | Kontakt
  • 1
  • 0
  • 1

Chciałabym, aby po kliknięciu buttona wysyłał się e mail, w którego treści będzie tylko pewien obszar z arkusza. Najlepiej jakby to było zaznaczane od komórki A2 → ctrl + a
Mam poniższy kod, który wysyła maila ale nie zaznacza obszaru:

Sub CommandButton2_Click()
Dim OutApp As Object
Dim OutMail As Object


Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)

OutMail.To = "aralowiec@felgenhauer.pl" 'odbiorca
OutMail.Send 


Set OutMail = Nothing
Set OutApp = Nothing

End Sub



 

 

Aleksandra_Rałowiec
  • Zapytał
  • @ Aleksandra_Rałowiec | 13.05.2020
    • 1
    • 0
    • 0

Odpowiedź (1)

  • 0

Sprawdź takie rozwiązanie:

Sub wyslij_tabele()
Dim OutApp As Object, tabela As String, r As Range, k As Range

'rozpoczynam tworzenie zmiennej z tabelą HTML
tabela = "<body><table>"
'opcjonalnie można pobawić się formatowaniem tabeli, np. włączyć obramowanie komórek
'tabela = "<head><style>td{border-collapse: collapse; border: 1px solid black;}</style></head><body><table>"

'pętla przechodząca przez wszystkie wiersze zakresu przyległego do komórki A2
For Each r In Worksheets("Arkusz1").Range("a2").CurrentRegion.Rows
   'łączę zawartości komórek danego wiersza i wstawiam je do tabeli HTML
   tabela = tabela & "<tr><td>" & Join(Application.Index(r.Value, 0), "</td><td>") & "</td></tr>"
Next

'zamykam tabelę
tabela = tabela & "</table></body>"

Set OutApp = CreateObject("Outlook.Application")

With OutApp.CreateItem(olMailItem)
   .To = "aralowiec@felgenhauer.pl" 'odbiorca
   'przepisuję zmienną do "ciała" wiadomości
   .htmlbody = tabela
   'wyświetlam wiadomość
   .display
   '.Send
End With

Set OutApp = Nothing
tabela = Empty

End Sub

 

Mirosław_Janiak
  • Odpowiedział
  • @ Mirosław_Janiak | 14.05.2020
    • 1
    • 7
    • 1
Komentarze
Jest super działa jak trzeba, a czy mogę teraz dodać mu jeszcze zwykłe .body tak abym mogła dopisać jakąś treść maila ?
Skomentował : @ Aleksandra_Rałowiec ,14.05.2020
  • 1
  • 0
  • 0
Albo .body, albo .HTMLbody, ale przecież nie ma przeciwwskazań do dodania treści w HTML-u :)
tabela = "<body>tutaj wpisz treść maila<br><br><table>"
Do rozdzielania wierszy służy znacznik "<br>".
Skomentował : @ Mirosław_Janiak ,14.05.2020
  • 1
  • 7
  • 1
Kurcze, nie mam żadnego komunikatu o błędzie a mimo to nie pojawia mi się tekst, który wpisałam. W którym miejscu powinnam to dopisać?
Skomentował : @ Aleksandra_Rałowiec ,14.05.2020
  • 1
  • 0
  • 0
Przy pierwszym użyciu tej zmiennej, czyli zamiast poniższego fragmentu:
tabela = "<body><table>"
Skomentował : @ Mirosław_Janiak ,14.05.2020
  • 1
  • 7
  • 1