Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.04.2024 20:05:21
28.04.2024 18:33:31
28.04.2024 18:25:12
28.04.2024 14:18:05
Anzeige
Archiv - Navigation
1932to1936
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zeitspanne Datum VBA

Zeitspanne Datum VBA
26.05.2023 13:32:32
Markus

Guten Tag,

Unten seht Ihr mein Coding bezüglich automatischer E-Mail Versand. In Tabelle1 in der Zeile D ist ein Datum ersichtlich. Ich würde gerne beim Coding hinzufügen, dass nur die automatischen E-Mail für Positionen in einem Gewissen Zeitraum erstellt werden. In der Zeile T8 ist das Startdatum und im U8 das End datum.

Ein Beispiel:

Ich habe in der Zelle D3 das Datum 20.05.2023 und D4 26.05.2023. In der Zelle T8 (Startdatum) ist der 17.05.2023 eingetragen und im U8 (Enddatum) der 25.05.2023.
Somit sollte die nur die Zelle von D3 versendet werden, da es in diesem Zeitraum ist.

Könnte mir jemand das Coding unten so anpassen.


Vielen Dank euch im Voraus.




Sub Offene_Zahlung()

Dim OutApp As Object
Dim OutMail As Object
Dim strbody As String
Dim count, i As Integer

count = WorksheetFunction.CountA(Range("A1", Range("A1").End(xlDown)))
i = 1

Do While i = count

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

strbody = "" & _
            "
Mustertext" & _ On Error Resume Next With OutMail .to = "Muster" .CC = "" .BCC = "" .Subject = "Muster" .Display .HTMLBody = "" strbody _ & .HTMLBody End With On Error GoTo 0 Set OutMail = Nothing Set OutApp = Nothing i = i + 1 Loop End Sub


6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeitspanne Datum VBA
26.05.2023 14:18:14
Alwin WeisAngler
Hallo Sebastian,
das zu klären mit einer Beispieldatei, welche du noch hochladen willst ist kein Problem.
Vielleicht ein kleiner Denkansatz zu deinen Problem beispielhaft:

Sub test()
    Dim i&, j&, arr()
    With Tabelle1
        For i = 3 To 24
            If .Cells(i, 4) >= .Cells(8, 20) And .Cells(i, 4) = .Cells(8, 21) Then
                j = j + 1
            End If
        Next i
        ReDim arr(1 To j, 1 To 2)
        j = 0
        For i = 3 To 24
            If .Cells(i, 4) >= .Cells(8, 20) And .Cells(i, 4) = .Cells(8, 21) Then
                j = j + 1
                arr(j, 1) = .Cells(i, 4)
                arr(j, 2) = .Cells(i, 5)
            End If
        Next i
    End With
End Sub
kann man den Datumsbereich abfragen und bei einem Treffer alle fürs Mail relevanten Daten aus der Tabelle in ein Array laden und dann anschließend in einer Schleife/Serie das/die Mail(s) versenden.

Gruß Uwe


Anzeige
AW: Zeitspanne Datum VBA
26.05.2023 14:35:05
Entwickler
Hallo Uwe

Ich habe mal 2 Musterbestellungen eingetragen und die Position von dem Start und Enddatum geändert.
Hier die Beispielsdatei.
https://www.herber.de/bbs/user/159337.xlsm
Kannst du das coding so anpassen?


AW: Zeitspanne Datum VBA
26.05.2023 19:27:33
Alwin WeisAngler
Hallo,

VBA Gut? Das solltest du dir noch mal überdenken, wenn du so simplem Kram nicht hinbekommst.
Aber zurück zu deinem Problem. Du möchtest sicherlich unbeglichene Rechnungen anmahnen. Da dies personalisiert abläuft, wäre es beispielhaft so eine Möglichkeit (aufgeteilt in 2 kleinen Prozeduren):

Option Explicit
    Dim arr()

Sub OffeneZahlung()
    Dim i&, j&, k&
    With Tabelle1
        For i = 3 To .Cells(Rows.count, 4).End(xlUp).Row
            If .Cells(i, 4) >= .Cells(8, 23) And .Cells(i, 4) = .Cells(8, 25) Then
                k = k + 1
            End If
        Next i
        If k = 0 Then Exit Sub
        ReDim arr(1 To k, 1 To 8)
        k = 0
        For i = 3 To 24
            If .Cells(i, 4) >= .Cells(8, 23) And .Cells(i, 4) = .Cells(8, 25) Then
                k = k + 1
                For j = 1 To 8
                    arr(k, j) = .Cells(i, j)
                Next j
            End If
        Next i
    End With
    ErinnerungsMail
End Sub

Private Sub ErinnerungsMail()
    Dim i&, OutApp As Object, OutMail As Object
    Set OutApp = CreateObject("Outlook.Application")
    For i = 1 To UBound(arr)
        Set OutMail = OutApp.Createitem(0)
        With OutMail
            .To = arr(i, 1)
            .CC = ""
            .BCC = ""
            .Subject = "Erinnerung " & arr(i, 5)
            .HTMLBody = "Sehr geehrte(r) " & arr(i, 2) & ","
            .Display    'senden erfolgt manuell
            '.sent      'sendet direkt
        End With
        Set OutMail = Nothing
    Next i
    Set OutApp = Nothing
End Sub
Gruß Uwe


Anzeige
AW: Zeitspanne Datum VBA
26.05.2023 19:51:36
Markus
Hallo Uwe

Es funktioniert Perfekt. Vielen Dank für deine Hilfe.

Ich wünsche dir ein wunderschönes Wochenende. :)


AW: Zeitspanne Datum VBA
26.05.2023 20:55:03
Alwin WeisAngler
Danke und wünsch ich dir ebenfalls.

Gruß Uwe


AW: Zeitspanne Datum VBA
31.05.2023 11:38:43
Markus
Hallo Uwe

Zeile 1-4 sind Leer und ich möchte erst ab Zeile 5 starten.
Was muss man ändern, dass es erst dann startet?

Gruss
Markus

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige