Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Excell, VBA- E-mail przypomnie - Funkcja przypomnienia E-mail z VBA dla wielu ta

Holiday223 20 Jun 2018 10:41 567 1
  • #1
    Holiday223
    Level 1  
    Czesc,

    Mam taki problem napisalam przerobilam funkcje znaleziona w internecie na swoje potrzeby :-) jestem laikiem totalnym jezeli chodzi o VBA. Z gory przepraszam za nie uzywanie polskich znakow.
    Problem jest nastepujacy moja funkcja dziala na zasadzie przypomnienia mailowego wysylanego z excela na 15 dni przed uplywem waznosci dokumentu na moj adres mailowy ale tylko dla jednej zakladki w excelu. Jak sprytnie zmienic zakres aby funkcja odnosila sie do wszystkich zakladek w tym excelu ? Zakladek jest 13 i kazda z nich jest zbudowana identycznie jak pierwsza. QM-Handbuch to nazwa zakladki w excelu.
    Ponizej wklejam kod:

    Private Sub Workbook_Open()
    Dim rCell As Range
    Dim objApp As Object
    Dim objMailItm As Object
    Dim tBRng As String
    Dim tReceiver As String

    tBRng = "A12:A" & Sheets("QM-Handbuch").UsedRange.Rows.Count
    tReceiver = Sheets("QM-Handbuch").Range("B3")

    Set objApp = CreateObject("Outlook.Application")
    For Each rCell In Sheets("QM-Handbuch").Range(tBRng)
    If IsDate(rCell.Offset(0, 29).Value) Then
    If rCell.Offset(0, 29) - Date <= Sheets("QM-Handbuch").Range("E3").Value _
    And Not (rCell.Offset(0, 30).Value) Then
    Set objMailItm = objApp.CreateItem(0)
    With objMailItm
    .BCC = tReceiver
    .Subject = "Fälligkeitswarnung"
    .Body = "Das Dokument <" & rCell.Offset(0, 0).Value & _
    rCell.Offset(0, 1).Value & ">" & vbCrLf & _
    "wird am " & rCell.Offset(0, 29).Value & " fällig!"
    .Send
    End With
    rCell.Offset(0, 30).Value = True
    Set objMailItm = Nothing
    End If
    End If
    Next
    Set objApp = Nothing
    End Sub

    Dodano po 2 [godziny] 16 [minuty]:

    Hej,

    Udalo mi sie znalezc odpowiednia petle do mojego dokumentu:
    Sub WorksheetLoop()

    Dim WS_Count As Integer
    Dim I As Integer

    ' Set WS_Count equal to the number of worksheets in the active
    ' workbook.
    WS_Count = ActiveWorkbook.Worksheets.Count

    ' Begin the loop.
    For I = 1 To WS_Count

    ' Insert your code here.
    ' The following line shows how to reference a sheet within
    ' the loop by displaying the worksheet name in a dialog box.
    MsgBox ActiveWorkbook.Worksheets(I).Name

    Next I

    End Sub
    Dodalam ja do mojego modelu ... teraz potrzebuje powiazania petli z moim kodem. Czy jest mi ktos w stanie powiedziec jak mam podstawic zmienne i je zdefiniowac aby kod dzialal poprawnie i byl zintegrowany petla. Please :-)
  • #2
    clubs
    Level 37  
    Witam
    1. Co to jest w ogóle za zakres? (jego konstrukcja rozumiem ze dane co wysyła to tylko A12:A10)
    Code: vbscript
    Log in, to see the code

    2. masz .send wewnątrz pętli (czyli tyle razy wyśle ile znajdzie w tBRng)