Hallo,
Ich möchte gerne dem Anhang (Exceldatei) bei Eingang einer Mail von einem bestimmten Absender mit vorgegebenem Betreff in einem vorgegebenem Pfad auf der Festplatte speichern. Diese automatisch öffnen. in einer vorgegebenen Zeile nach der Überschrift "Total" suchen. Den Spaltenindex speichern.
In einer bestimmten Spalte nach einer Materialnummer suchen. Den Zeilenindex speichern.
Den Wert der aus Spaltenindex und Zeilenindex ergibt den Vergleichswert. Ist dieser "0" soll eine MSGBOX erscheinen. Wenn der Wert nicht "0" ist soll nur die Mail in einen vorgegebenen Ordner verschoben werden.
Nach Bestätigung der MSGBOX soll die Mail ebenfalls in den vorgegebene verschoben werden.
Ich habe bisher volgendes Vorgehen versucht:
Erstellen von 2 Regeln in Outlook. erstellt.
1.Regel:erkennen ob die Voraussetzungen erfüllt sind und anschließend per VBA die Anlage speichern und weiterverarbeiten
' das Skript
Sub Final(olMail As MailItem)
Dim strPfad As String
Dim Datei As Attachments
strPfad = "C:\Daten\Dokumente\DIENST\__Lufthansa\Lagerbestand\Kormann Report\" 'Der Pfad muss entsprechend angepasst werden. Wichtig ist der letzte Backslash
On Error Resume Next
Set Datei = olMail.Attachments
For i = 1 To Datei.Count
Datei.Item(i).SaveAsFile strPfad & Datei.Item(i).FileName
Next i
' Definition der Variablen
Dim strDatei As String 'Abgelegte Excel Datei
Dim strDat As String 'Datumsteil der Datei
Dim strP84_Nummer As String 'auszuwertende Produktnummer
Dim ro As Long 'Zeile in der die Nummer Steht
Dim co As Long 'Spalte in der das Ergebnis steht
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
' Setzen der Startwerte
Set xlApp = New Excel.Application
strDat = Format(Now(), "yyyy-mm-dd")
strDatei = "Report LUFTHANSA " & strDat & ".xlsb"
strP84_Nummer = "CUZ:K391V200-LHNI9"
'Öffnen von Excel
With xlApp
.Visible = True
.Workbooks.Open strPfad & strDatei 'Öffnen der Tagesdatei
Set xlBook = xlApp.Workbooks(strDatei)
Set xlSheet = xlBook.Sheets("Overview")
With xlBook
Columns("C:C").Select
Selection.Find(What:=strP84_Nummer, After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Activate
ro = ActiveCell.Row 'Bestimmen der Zeile
End With
With xlBook.xlSheet
Rows("6:6").Select
Selection.Find(What:=" total", After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Activate
co = ActiveCell.Column 'Bestimmen der Spalte
End With
With xlBook
If Cells(ro, co).Value = 0 Then 'Feststellen ob die Anzahl der MAterialnummer "0" ist
MsgBox "Anzahl der gesuchten P84 Produktnummer ist Null!"
End If
End With
End With
End Sub
2. Regel: verschdieben der Mail ins Verzeichnis
Wenn ich Regel 1 starte wird die Datei n dias korrekte Verzeichnis kopiert und die Datei geöffnet. Es erscheint die MSGBOX, obwohl in der Zelle ein Wert >0 steht.
Anscheinend selektiert das Skript nicht die korrekte Zelle.
Füge ich eine weitere MSGBOX am Ende ein, der die Werte für ro und co ausgibt steht bei Beiden "0".
Lasse ich den Excel Part in Excel laufen, reagiert das korrekt.
Wie kann ich das Skript dazu überreden die korekte Zell Cells(ro, co) zu selektieren?
Kann mir da jemand weiterhelfen?
vielen Dank im Voraus
Virago535
|