Kopier Makro in Code einbauen.

  • Excel

    Kopier Makro in Code einbauen.

    Hallo zusammen hatte schonmal einen Tread offen, der is leider tot und hatte auch ein bisschen andere Thematik.

    Es geht sich nun darum.

    Wenn man mir eine Email in Excel schreibt mit einem Speziellen Betreff soll eine Automatische Antwort mit Inhalt aus einer Excel Tabelle generiert werden.

    (Meine Lösung: Regel beim eingang einer Email mit ..... im Betreff ->Makro ausführen.)

    Das wäre dann diese Makro

    Quellcode

    1. Sub ShowStatsinExcel()
    2. Dim myEmail As Outlook.MailItem
    3. Dim Result()
    4. Dim objExcel As Object
    5. Dim objWB As Object
    6. Dim lngCount As Long
    7. 'Outlook
    8. lngCount = Application.ActiveExplorer.Selection.Count + 1
    9. ReDim Result(1 To lngCount, 1 To 2)
    10. For Each myEmail In Application.ActiveExplorer.Selection
    11. Result(1, 1) = "SenderEmailAddress"
    12. Result(1, 2) = "ReceivedTime"
    13. With myEmail
    14. i = i + 1
    15. Result(i, 2) = Format(myEmail.ReceivedTime, "dd.mm.yyyy")
    16. Result(i, 1) = .SenderEmailAddress
    17. End With
    18. Next
    19. 'Excel
    20. Set objExcel = CreateObject("Excel.Application")
    21. objExcel.Visible = True
    22. Set objWB = objExcel.Workbooks.Add
    23. Workbooks.Open ("C:\Dokumente und Einstellungen\r882948\Desktop\Mappe1.xls")
    24. With objExcel.ActiveSheet
    25. lngCount = lngCount - 1
    26. .Range("A1:B" & lngCount) = Result
    27. .Range("C2").FormulaR1C1 = "=RC[-2]&RC[-1]"
    28. .Range("D2").FormulaR1C1 = "=COUNTIF(R2C3:R" & lngCount & " C3,RC[-1])"
    29. .Range("C2:D2").AutoFill Destination:=Range("C2:D" & lngCount)
    30. .Range("C2:C" & lngCount).Value = Range("D2:D" & lngCount).Value2
    31. .Columns(4).Delete Shift:=xlToLeft
    32. .Range("C1").FormulaR1C1 = "Anzahl"
    33. .Range("A1").CurrentRegion.AdvancedFilter Action:=xlFilterInPlace, Unique:=True
    34. .Columns("A:C").AutoFit
    35. .Range("A1").CurrentRegion.Sort Key1:=Range("A2"), Order1:=xlAscending, Key2:=Range("B2") _
    36. , Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
    37. False, Orientation:=xlTopToBottom
    38. End With
    39. Set objWB = Nothing
    40. Set objExcel = Nothing
    41. End Sub


    Dieses Makro soll Auflisten wie viele Emails je Datum von wem gekommen sind. Dies soll dann in eine Excel Tabelle geschrieben werde.

    Dabei tritt jedoch des öfteren eine FM Auf und er fasst die liste nicht zusammen. Sieht wer einen Fehler?

    Er mekert an:

    Quellcode

    1. .Range("C2:D2").AutoFill Destination:=Range("C2:D" & lngCount)


    rum.

    zb. Max Mustermann |12 | 29.01.2009

    Anschliesend soll ein Marko gestartet werden das diese auswertung an eine bestimmte Stelle innerhalb des Excelsheets kopiert.




    Quellcode

    1. Sub kopierewerte()
    2. Dim gef As Range
    3. Range("B2:B13").Copy
    4. Sheets("Tabelle2").Select
    5. Set gef = Cells.Find ("????")
    6. If Not gef Is Nothing Then
    7. gef.Offset(1, 0).PasteSpecial Paste:=xlValues
    8. Application.CutCopyMode = False
    9. Else
    10. MsgBox "Das Datum wurde nicht Gefunden"
    11. End If
    12. End Sub


    Dabei ist meine Frage. Wie lassen ich das "kopierewerte" starten sobald das erste Makro fertig ist?

    2te Frage: Set gef = Cells.Find ("????") was muss ich anstatt der Fragezeichen nutzen um nach dem Wert zu suchen der in der Zelle C1 im Sheet Tabelle1 steht? Außerdem kann Set gef = Cells.Find ("????") Nur Text in Zellen finden und keine Date Zellen?

    Wenn ich die Felder in der Tabelle in der er suchen soll als Date Formatiert habe findet er diese nicht.

    Wäre echt Super dankbar über jede hilfe.



    Vielen vielen Dank Tributer