|  
                                             
	Guten Morgen zusammen, 
	  
	Ich habe hier zwei funktionierende VBA Codes, die über ein Formulassteuerelement gestartet werden. Nun würde ich die beiden Codes in leicht geänderter Reihenfolge zusammenführen, sodass der Code nur noch über einen Button gestartet wird. Anbei mal mein Wunsch: 
	  
1.
Private Sub CommandButton1_Click()
'Kopieren der Daten für die Umschläge
   Worksheets("Auswahllisten").Range("G2:G105").Copy
   Worksheets("Daten Umschläge").Range("A2").PasteSpecial xlPasteValues
   Worksheets("Eingabetabelle").Range("H2:H105").Copy
   Worksheets("Daten Umschläge").Range("B2").PasteSpecial xlPasteValues
   Worksheets("Eingabetabelle").Range("I2:I105").Copy
   Worksheets("Daten Umschläge").Range("C2").PasteSpecial xlPasteValues
'Kopieren der Daten für BB
   Worksheets("Auswahllisten").Range("G2:G105").Copy
   Worksheets("Daten BB").Range("A2").PasteSpecial xlPasteValues
   Worksheets("Eingabetabelle").Range("D2:D105").Copy
   Worksheets("Daten BB").Range("B2").PasteSpecial xlPasteValues
   Worksheets("Auswahllisten").Range("H2:H105").Copy
   Worksheets("Daten BB").Range("C2").PasteSpecial xlPasteValues
'Duplikate entfernen
   Worksheets("Daten Umschläge").Range("$A$1:$G$105").RemoveDuplicates Columns:=1, Header:=xlYes
2. Option Explicit
 
Private MYPATH As String
 
Sub MacroMitDeinemFormularSteuerelementVerknuepfen()
    Dim sText As String
       
    MYPATH = Environ("temp")
    
    sText = "<div>Sehr geehrte Damen und Herren,<br>"
    sText = sText & "<p>anbei die Daten .</p>"
    sText = sText & "<br>""</div>"
       
       
    Call SendSheetOutlook( _
                            "Betreffzeile", _
                            "Mailadresse", _
                            "", _
                            sText)
End Sub
 
Private Sub SendSheetOutlook(sSubject As String, sTo As String, sCC As String, ByVal sText As String)
Dim olApp         As Object
Dim AWS           As String
Dim olOldBody     As String
   
'define temporary Path and Filename
AWS = MYPATH & "\" & Format(Date, "YYYYMMDD") & "_" & Format(Time, "hhmmss") & "_" & _
WorksheetFunction.Substitute(ActiveWorkbook.Name, ".xlsm", "")
   
'export File as PDF
Worksheets(4).ExportAsFixedFormat Type:=xlTypePDF, Filename:=AWS, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
AWS = AWS & ".pdf"
   
'Make Email
Set olApp = CreateObject("Outlook.Application")
   With olApp.CreateItem(0)
             .GetInspector.Display
             olOldBody = .htmlBody
             .To = sTo
             .cc = sCC
             .Subject = sSubject
             .htmlBody = sText & olOldBody
            .Attachments.Add AWS
   End With
      
'remove TEMP file
'********************************
'wenn du das PDF behalten möchtest, diese Zeile auskommentieren!
'sonst wird das temporäre PDF wieder gelöscht
'Kill AWS
'********************************
3.
'Datei Speichern und beenden
    'ActiveWorkbook.SaveCopyAs "C:\Dateipfad\liste_" & Format(Now, "dd.mm.yyyy") & ".xlsm"
    'ThisWorkbook.Saved = True
    'Application.Quit
End Sub
	  
	Die Nummerierung soll die Reihenfolge darstellen. Ich bin gerade am Ende meines Lateins. Und Mase, falls du das Liest, ja das solltest du kennen ;) 
	  
	Danke schon mal vorab und lieb Grüße 
	  
	Chris 
	  
	PS: ich hoffe das macht nicht nur in meinem Kopf Sinn. 
	  
     |