Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1272to1276
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
Sendmail mit Bedingung
Waldemar
Hallo Forummitglieder,
habe folgende Problemstellung, villeicht könnt ihr mir weiterhelfen oder einen Tipp geben.
Habe eine Excel-Tabelle mit mehreren Arbeitsblättern die ähnlich aufgebaut sind.
https://www.herber.de/bbs/user/81393.xlsm
Die Zellen in der Zeile 3 in jeder Arbeitsmappe sind bedingt formatiert. Wenn Datum in der Zeile 3 kleiner als in der Zeile 2 ist soll die Zelle pink erscheinen.
Möchte gerne ein Script oder ein Macro erstellen, was beim Speichern der Datei prüft, ob in einer der Arbeitsmappen diese Bedingung vorliegt, falls ja, sollte eine Mail versendet werden. Entweder mit der kompletten Excel-Datei (was eigentlich nicht unbedingt schön ist, da die Datei mehrere MB groß ist), nur einer Arbeitsmappe in der die Bedingung erfüllt ist, oder nur mit einem Hinweis in der E-Mail-Betreffzeile ohne Excel-Datei.
Ist überhaupt sowas realisierbar? Oder ist es zuviel Aufwand?
Vielen Dank

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Sendmail mit Bedingung
13.08.2012 12:57:11
Josef

Hallo Waldemar,
in das Modul "DieseArbeitsmappe", als Mail-Programm hab ich mal Outlook vorausgesetzt.
' **********************************************************************
' Modul: DieseArbeitsmappe Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Workbook_BeforeC() 'lose(Cancel As Boolean)
  Dim objSh As Worksheet, objOL As Object
  Dim lngLast As Long, lngIndex As Long
  Dim strBody As String, strTmp As String
  
  For Each objSh In Me.Worksheets
    With objSh
      lngLast = Application.Max(3, .Cells(2, .Columns.Count).End(xlToLeft).Column)
      For lngIndex = 3 To lngLast
        If .Cells(2, lngIndex) > .Cells(3, lngIndex) Then
          strTmp = RangeToHTML(objSh, objSh.Range(.Cells(2, 1), .Cells(3, lngLast)))
          strBody = strBody & "<div style='border:1px solid #000000; padding:5px; margin:0px 0px 5px 0px;'><strong style='font-size:14pt;'>" & _
            .Name & "</strong><br/>" & strTmp & "<br/></div>"
          Exit For
        End If
      Next
    End With
  Next
  
  If Len(strBody) Then
    Set objOL = CreateObject("Outlook.Application")
    
    With objOL.CreateItem(0)
      .GetInspector.Display
      .Importance = 1
      .To = "try.to@guess.it" 'Empfänger
      .Cc = ""
      .Bcc = ""
      .Subject = "Betreff" 'Betreff
      .HTMLBody = "<div>Hallo!<br/>zur Kontrolle.</div><br/>" & strBody & .HTMLBody
      .Display 'oder .Send um diekt zu versenden
    End With
  End If
  
  Set objOL = Nothing
End Sub


Private Function RangeToHTML(objSheet As Worksheet, objRange As Range) As String
  Dim strFilename As String
  
  strFilename = Environ$("TEMP") & "/temp.htm"
  
  objSheet.Parent.PublishObjects.Add(SourceType:=xlSourceRange, Filename:=strFilename, _
    Sheet:=objSheet.Name, Source:=objRange.Address, HtmlType:=xlHtmlStatic).Publish True
  
  RangeToHTML = _
    Replace(CreateObject("Scripting.FileSystemObject").GetFile(strFilename).OpenAsTextStream(1, _
    -2).ReadAll, "align=center x:publishsource=", "align=left x:publishsource=")
  
  Kill strFilename
End Function



« Gruß Sepp »

Anzeige
AW: Sendmail mit Bedingung
13.08.2012 13:31:41
Waldemar
Funktioniert super!
Allerdings habe ich noch die erste Zeile auf
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
angepasst.
Super Forum und schnelle Antwort!
Vielen Dank
Gruß
Waldemar
korrektur!
13.08.2012 13:33:09
Josef

Hallo Waldemar,
zum testen hatte ich den Makro-Namen geändert.
Statt
Workbook_BeforeC() 'lose(Cancel As Boolean)

muss es
Workbook_BeforeClose(Cancel As Boolean)

heißen.

« Gruß Sepp »

Anzeige
hat sich überschnitten! o.T.
13.08.2012 13:34:00
Josef
« Gruß Sepp »

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige