Mateusz Bodych

Mateusz Bodych Cash management
associate

Temat: VBA - zmiana formatu - czas

Witam, stworzyłem makro w celu zautomatyzowania wysyłania maili. Makro zaciąga z arkusza excelowego adres mailowy, temat, treść wiadomości jaka ma trafić do danego pracownika i otwiera outlooka. Mam jedynie problem z formatem godziny, gdyż zawsze zwraca z formacie ogólnym a nie (hh:mm:ss).

Sub Wyslijzbiorowego()
Dim tresc As String
Dim olApp As Outlook.Application
Dim olMail As Outlook.MailItem
For i = 2 To 3
Set olApp = New Outlook.Application
Set olMail = olApp.CreateItem(olMailItem)
olMail.Body = tresc
With olMail
.To = Cells(i, 14).Value
.Subject = "Spóźnienia" & Cells(i, 1).Value
tresc = " Obiekt: " & Cells(i, 4).Value & " Godzina: " & Cells(i, 2).Value & " Adres: " & Cells(i, 6).Value & " Nazwa: " & Cells(i, 5).Value & " Liczba sygnałów: " & Cells(i, 8).Value & " Ilość zdarzeń: " & Cells(i, 9).Value & " Liczba spóźnień:" & Cells(i, 10).Value & Chr(13) & _
" " & Chr(13) & _
"Witam" & Chr(13) & _
" " & Chr(13) & _
"W odpowiedzi na tego maila proszę o informacje:" & Chr(13) & _
" " & Chr(13) & _
(......)
.Display
End With
Set olMail = Nothing
Set olApp = Nothing
Next

End Sub

[IMG=
Obrazek
]
Ten post został edytowany przez Autora dnia 08.08.16 o godzinie 10:48
Radosław Dumania

Radosław Dumania Senior Master Data
Analyst

Temat: VBA - zmiana formatu - czas

Czesc,

godzina = Hour(Cells(2, 2))
minuta = Minute(Cells(2, 2))
sekunda = Second(Cells(2, 2))

MsgBox (godzina & ":" & minuta & ":" & sekunda)
Mateusz Bodych

Mateusz Bodych Cash management
associate

Temat: VBA - zmiana formatu - czas

Cześć, niestety MsgBox nie spełnia swojej roli w tym wypadku bo kod ma za zadanie otworzenie maila w outlooku gotowego do wysłania.
Radosław Dumania

Radosław Dumania Senior Master Data
Analyst

Temat: VBA - zmiana formatu - czas

Msgbox-a wcale nie trzeba stosowac w tym wypadku :)

wystarczy zmienna :) np.:

dim czas as string
czas = godzina & ":" & minuta & ":" & sekunda

"ale pelnym zdaniem, pelnym zdaniem!" :)

Dim godzina, minuta, sekunda, czas As String

godzina = Hour(Cells(2, 2))
minuta = Minute(Cells(2, 2))
sekunda = Second(Cells(2, 2))

If Len(minuta) < 2 Then
minuta = "0" & minuta
End If

If Len(sekunda) < 2 Then
sekunda = "0" & sekunda
End If

czas = godzina & ":" & minuta & ":" & sekundaTen post został edytowany przez Autora dnia 08.08.16 o godzinie 14:28
Mateusz Bodych

Mateusz Bodych Cash management
associate

Temat: VBA - zmiana formatu - czas

Dzięki Radosław. Tutaj troche łatwiejszy bez zbytniego ingerowania w powyższy kod, zostawiam dla potomnych. :)

" Godzina: " & Format(Cells(i, 2).Value, "hh:mm:ss") &

Sub Wyslijzbiorowego()
Dim tresc As String
Dim olApp As Outlook.Application
Dim olMail As Outlook.MailItem
For i = 2 To 10
Set olApp = New Outlook.Application
Set olMail = olApp.CreateItem(olMailItem)
olMail.Body = tresc
With olMail
.To = Cells(i, 14).Value
.Subject = "Spóźnienia" & Cells(i, 1).Value
tresc = " Obiekt: " & Cells(i, 4).Value & " Godzina: " & Format(Cells(i, 2).Value, "hh:mm:ss") & " Adres: " & Cells(i, 6).Value & " Nazwa: " & Cells(i, 5).Value & " Liczba sygnałów: " & Cells(i, 8).Value & " Ilość zdarzeń: " & Cells(i, 9).Value & " Liczba spóźnień:" & Cells(i, 10).Value & Chr(13) & _
" " & Chr(13) & _
"Witam" & Chr(13) & _
" " & Chr(13) & _
"W odpowiedzi na tego maila proszę o informacje:" & Chr(13) & _
" " & Chr(13) & _
"-dlaczego jest (......)" & Chr(13) & _
"Pozdrawiam" & Chr(13) & _
"Mateusz Bodych"


.Display
End With
Set olMail = Nothing
Set olApp = Nothing
Next

End Sub

Następna dyskusja:

VBA zmiana formatu daty




Wyślij zaproszenie do