• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

VBA- Userform input to WS - Send WS

Status
Niet open voor verdere reacties.

RaymondC

Gebruiker
Lid geworden
10 mrt 2008
Berichten
561
Ik heb onderstaande code gevonden op website van Ron Debruin. En deze in een Module geplakt.

Code:
Sub Mail_ActiveSheet()
'Working in Excel 2000-2016
'For Tips see: http://www.rondebruin.nl/win/winmail/Outlook/tips.htm
    Dim FileExtStr As String
    Dim FileFormatNum As Long
    Dim Sourcewb As Workbook
    Dim Destwb As Workbook
    Dim TempFilePath As String
    Dim TempFileName As String
    Dim OutApp As Object
    Dim OutMail As Object

    With Application
        .ScreenUpdating = False
        .EnableEvents = False
    End With

    Set Sourcewb = ActiveWorkbook

    'Copy the ActiveSheet to a new workbook
    ActiveSheet.Copy
    Set Destwb = ActiveWorkbook

    'Determine the Excel version and file extension/format
    With Destwb
        If Val(Application.Version) < 12 Then
            'You use Excel 97-2003
            FileExtStr = ".xls": FileFormatNum = -4143
        Else
            'You use Excel 2007-2016
            Select Case Sourcewb.FileFormat
            Case 51: FileExtStr = ".xlsx": FileFormatNum = 51
            Case 52:
                If .HasVBProject Then
                    FileExtStr = ".xlsm": FileFormatNum = 52
                Else
                    FileExtStr = ".xlsx": FileFormatNum = 51
                End If
            Case 56: FileExtStr = ".xls": FileFormatNum = 56
            Case Else: FileExtStr = ".xlsb": FileFormatNum = 50
            End Select
        End If
    End With

    '    'Change all cells in the worksheet to values if you want
    '    With Destwb.Sheets(1).UsedRange
    '        .Cells.Copy
    '        .Cells.PasteSpecial xlPasteValues
    '        .Cells(1).Select
    '    End With
    '    Application.CutCopyMode = False

    'Save the new workbook/Mail it/Delete it
    TempFilePath = Environ$("temp") & "\"
    TempFileName = "Part of " & Sourcewb.Name & " " & Format(Now, "dd-mmm-yy h-mm-ss")

    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)

    With Destwb
        .SaveAs TempFilePath & TempFileName & FileExtStr, FileFormat:=FileFormatNum
        On Error Resume Next
        With OutMail
            .to = "my-email@.com"
            .CC = "here-email@.com"
            .BCC = ""
            .Subject = "NIR - Add Item Characteristics to New Item Number"
            .Body = "Hi there"
            .Attachments.Add Destwb.FullName
            'You can add other files also like this
            '.Attachments.Add ("C:\test.txt")
            .Display
        End With
        On Error GoTo 0
        .Close savechanges:=False
    End With

    'Delete the file you have send
    Kill TempFilePath & TempFileName & FileExtStr

    Set OutMail = Nothing
    Set OutApp = Nothing

    With Application
        .ScreenUpdating = True
        .EnableEvents = True
    End With
End Sub

Met onderstaande code wordt de input vanuit Userform naar WS gekopieerd.

Code:
Private Sub CommandButton1_Click()
    Dim ws As Worksheet
    Dim Value As String
    Set ws = Worksheets("NIR_Item_Characteristics")
     
     'copy the data to the database
    
    ws.range("B1") = Me.ComboBox1.Value
    ws.range("B2") = Me.ComboBox2.Value
    ws.range("B3") = Me.TextBox1.Value
    ws.range("B4") = Me.ComboBox3.Value
    ws.range("B5") = Me.ComboBox4.Value
    ws.range("B6") = Me.TextBox2.Value
    ws.range("B7") = Me.TextBox3.Value
    ws.range("B8") = Me.TextBox4.Value
    ws.range("B9") = Me.TextBox5.Value
    ws.range("B10") = Me.TextBox6.Value
    ws.range("B11") = Me.TextBox7.Value
    ws.range("B12") = Me.TextBox8.Value
    ws.range("B13") = Me.TextBox9.Value
    ws.range("B14") = Me.TextBox10.Value
    ws.range("B15") = Me.TextBox11.Value
    ws.range("B16") = Me.TextBox12.Value
    ws.range("B17") = Me.TextBox13.Value
    ws.range("B18") = Me.TextBox14.Value
    ws.range("B19") = Me.TextBox15.Value
    ws.range("B20") = Me.TextBox16.Value

    Me.ComboBox1.Value = ""
    Me.ComboBox2.Value = ""
    Me.TextBox1.Value = ""
    Me.ComboBox3.Value = ""
    Me.ComboBox4.Value = ""
    Me.TextBox2.Value = ""
    Me.TextBox3.Value = ""
    Me.TextBox4.Value = ""
    Me.TextBox5.Value = ""
    Me.TextBox6.Value = ""
    Me.TextBox7.Value = ""
    Me.TextBox8.Value = ""
    Me.TextBox9.Value = ""
    Me.TextBox10.Value = ""
    Me.TextBox11.Value = ""
    Me.TextBox12.Value = ""
    Me.TextBox13.Value = ""
    Me.TextBox14.Value = ""
    Me.TextBox15.Value = ""
    Me.TextBox16.Value = ""
End Sub

Nu zou ik met de code van Ron Debruin deze WS willen versturen, maar na de klik op CmdB wordt alleen de data weg geschreven, en geen e-mail verstuurd.
Wat moet ik precies aanpassen om het werkend te krijgen?
 
Onderaan de wegschrijfcode net boven End Sub onderstaande tussenvoegen om de andere macro aan te roepen.
Code:
Worksheets("NIR_Item_Characteristics").select
Mail_ActiveSheet
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan