1.8k Aufrufe
Gefragt in Tabellenkalkulation von

Hallo alle miteinanderwink

Ich bin hier im Forum eh auch schon alle Beiträge die irgendwie mit meinen Problem zusammen hängen durch gegangen und getestet aber ich finde den Fehler einfach nicht angry

Kurzerklärung. Die Datei wird geöffnet -> mit UserForm1.Show -> mit "Ja" bestätigt und mit Sub Mail() soll er den ganzen Code auf jedes TB ausführen. Nur irgendwie macht er das nicht er macht es immer nur für das akutelle TB angry wenn ich die Sub Mail() in jedem TB manuell aufrufe dann macht er es frown


Private Sub Workbook_Open()
UserForm1.Show
End Sub


Private Sub CommandButton1_Click()
Application.Run "Mail"
End Sub


Private Sub Mail()

Dim Zeile As Long
Zeile = 1
Check (Zeile)  'Sprung in den Aufruf Check()

End Sub

Private Sub Check(ByVal Zeile As Long)
    Dim WS As Worksheet
    Dim Urgenz1 As String
    Dim Urgenz2 As String
    Urgenz1 = "x"
    Urgenz2 = "x"
    Dim i As Long
    
    For Each WS In ThisWorkbook.Worksheets 'alle Tabellenblätter durchlaufen
    
    Const xlUp As Long = &HFFFFEFBE
    Debug.Print CStr(Cells(Rows.Count, 1).End(xlUp).Row) 
      
    For i = Zeile + 1 To Cells(Rows.Count, 1).End(xlUp).Row
        If (CDate(Cells(i, 7).Value) < DateTime.Date) And (CStr(Cells(i, 13).Value) = "x") Then ' Wenn Spalte "G" Datum = heutiges Datum & Spalte "M" auf "Leer" Dann
        'MsgBox "Email schon geschickt", vbInformation, "Fertig" 'Message Box als Hilfe stellung

        ElseIf (CDate(Cells(i, 7).Value) < DateTime.Date) And (CStr(Cells(i, 13).Value) = vbNullString) Then 'Wenn Spalte "G" Datum = heutiges Datum & Spalte "M" auf "Leer" Dann
            Cells(i, 13).Value = Urgenz1 'Füge Urgenz1 in Spalte M
            Call Send_Email(i)  'Aufruf Prozedur "Send_Email()"
        End If
        
        If (CDate(Cells(i, 8).Value) < DateTime.Date) And (CStr(Cells(i, 14).Value) = vbNullString) Then 'Wenn Spalte "H" Datum = heutiges Datum & Spalte "N" auf "Leer" Dann
            Cells(i, 14).Value = Urgenz2 'Füge Urgenz2 in Spalte N
            Call Send_Erinnerung(i)  'Aufruf Prozedur "Send_Erinnerung" 
        End If
    Next i
'    Call MsgBox("Fertig!", vbOKOnly)
    Next WS
End Sub


Kann mir bitte wer sagen was ich falsch mache und wo der verdammte Fehler ist cheeky. Bin echt schon am verzweifeln devil

Über dringende Hilfe wäre ich sehr dankbar.

LG SnowWhite

75 Antworten

0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)

Hallo SnowWhite,

hier mal die überarbeiterte Datei: Download

Da ich hier kein Outlook habe, konnte ich keinen Test machen. Schau mal, ob das so funktioniert, wie du dir das vorstellst.

Gruß

M.O.

P.S. Ich verstehe dich nicht. Excel-VBA ist doch schön wink. Ich habe auch lang geübt.

0 Punkte
Beantwortet von

Guten Morgen M.O.

Sorry ich hatte nicht gesehen das wir schon auf Seite 2 sind cheekySonst hätte ich mich gleich gemeldet^^

Ahm es hackt leider noch frown 

Bei: Call Send_Email(i, arrTabellen(t, 1)) 

Hilfeee cheeky

GLG SnowWhite
 

P.s. devil Also wenn ich dich vielleicht als Lehrer hätte, dann können wir noch mal drüber reden cheeky Aber von "Excel-VBA -> ist schön" da bin ich aber noch weit weg davon wink

0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)

Hallo SnowWhite,

hier die verbesserte Version: Download

Gruß

M.O.

Man soll nie nie sagen smiley.

0 Punkte
Beantwortet von

Hallo M.O.

Sorry sad Ich bin jetzt mal mit dem Compiler einzeln durch gegangen er fängt bei TB "List 1" an winkda macht er das "x" in "Urgenz 2 rein und geht in die 3. Schleife (was auch passt) und geht dann in die Sub Send_Erinnerung was auch passt und schickt das Mail weg. Hupft dann wieder in die Sub Check() passt auch und ist in der "zeile 3" damacht er das "x" in Urgenz 1 rein und beginnt mit der 2.Schleife was auch passt geht dann in die Sub Send_Email passt auch aber kommt dann nach dem einlesen der Daten "Laufzteitfehler "91" Objektvariable oder With-Blockvariable nicht festgelegt und erhängt dann bei 

Set objEmail = app_Outlook.CreateItem(olMailItem)

sad

Liebe Grüße

p.S. Ich schnaufe schon die ganze Zeit wink

 

0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)
Hallo,

den Fehler mit Outlook muss ich mir erst mal anschauen.

Gruß

M.O.
0 Punkte
Beantwortet von

Guten Morgen M.O.

Hmm ich habe beide Subs verglichen die "Sub Send_Erinnerung() wo er die Mail weg schickt mit der Sub Send_Mail() wo er mit der Set objEmail = app_Outlook.CreateItem(olMailItem) hängt. Ich hab die Datei bei mir am LP (mit anderem Office) ausprobiert da hängt er leider auch an der selben Stelle sad

Mir kommts nur komisch vor weil, warum macht er die Sub Send_Erinnerung() ohne Mucks und bei der Sub Send_Mail() meckert er ?sad

GLG SnowWhite

0 Punkte
Beantwortet von

Hallo M.O.

Ich hab gerade eben den verdammten Fehler gefunden wink Dafür das ich noch in der Nacht gesessen bin und den Fehler auch nicht mehr gefunden habe. Und bis jetzt gerade (nach dem ich mir gerade ein Redbull geholt habe "wegen Schlafentzug") und noch mal mit LP & Tower den Compiler gestartet habe und dann die "Set app_Outlook = New Outlook.Application" -> in ' Kommentar entdeckt hatte cool

Soviel dazu : P.S. Ich verstehe dich nicht. Excel-VBA ist doch schön devil

Aber es ist leider schon wieder was neues dazu gekommen frown

GLG SnowWhite

0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)

Hallo SnowWhite,

ich hatte gestern leider keine Zeit mir das genauer anzusehen, aber da du den Fehler gefunden hast, funktioniert der Versand der E-Mails ja jetzt.

Aber es ist leider schon wieder was neues dazu gekommen

Falls du weitere Hilfe brauchst, melde dich.

Gruß

M.O.

0 Punkte
Beantwortet von

Hallo M.O.

Ist überhaupt kein Problem hab ich mir fast gedacht das du "hoch" eingespannt bist wink Ja der Mailversand funktioniert jetzt gott sei dank. Aber wie gesagt es wird schon wieder um überlegt und brauch doch noch mal ganz große Hilfe frown Darf ich das hier noch machen ? Weil es betrifft jetzt die TB "urliste" und die "neu generierten Blätter" devil

GLG SnowWhite

0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)
Hallo SnowWhite,

du kannst ruhig hier fragen. Es geht ja noch um die selbe Datei.

Gruß

M.O.
...