Macro werkblad versturen in excel

Status
Niet open voor verdere reacties.

Georgyboy

Terugkerende gebruiker
Lid geworden
6 jan 2007
Berichten
1.020
Besturingssysteem
Windows 11
Office versie
365
Goeiedag,

wat is er mis ?

Deze geeft een fout

Code:
Sub Verzenden()
'
'Sub mailen()
ActiveWorkbook.SendMail "Ontvanger@mail.be", "Dit is het onderwerp" (gele kleur)
End Sub


Deze werkt wel, maar stuurt de ganse werkmap
Sub Mail()
'
' Mail Macro (stuurt volledige werkmap)
'

Application.Dialogs(xlDialogSendMail).Show _
arg1:="sales@chickenmasters.be", _
arg2:="Test mailen"
End Sub

Groeten,
Georgyboy
 
Laatst bewerkt door een moderator:
Sorry,

geel gekleurde regel (was in onderbrekingsmudus) = ok

bij versturen word de ganse werkmap verstuurd wat niet de bedoeling is,
enkel het huidige werkblad is gewenst.

Bij versturen melding:
Beveiliging toestaan of weigeren, iets met antivirus programma

Groeten,
Georgyboy,
 
Visual Basic is iets anders dan Visual Basic for Applications, daarom verplaatst. En code dient tussen de codetags geplaatst te worden.
 
Wat is code tags

en hoe kan ik deze aanpassen ?

ben lastig hé, ben ook maar nen beginneling

Georgyboy
 
Code:
{hier je code}

Zo werkt het ;)
 
Moet dit voor excel zo ?

Dit is toch VBA, of niet ?

Wat is dan de goede code om een mail te versturen (enkel het blad)
dus niet de werkmap

Mvg Georgyboy,
 
Is dit deze lange Code ?

Code:
Sub Mail_ActiveSheet()
' Works in Excel 97 through Excel 2007.
Dim FileExtStr As String
Dim FileFormatNum As Long
Dim Sourcewb As Workbook
Dim Destwb As Workbook
Dim TempFilePath As String
Dim TempFileName As String

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

Set Sourcewb = ActiveWorkbook
' Using ActiveSheet.Copy creates a new workbook with 
' the sheet and the file format is the same as the 
' original workbook. 
' Copy the worksheet 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 are using Excel 97-2003.
      FileExtStr = ".xls": FileFormatNum = -4143
   Else
      ' You are using Excel 2007.
      ' When you use ActiveSheet.Copy to create a workbook,
      ' you are prompted with a security dialog. If you click No
      ' in the dialog, then the name of Sourcewb is the same
      ' as Destwb and you exit the subroutine. You only see this
      ' dialog when you attempt to copy a worksheet from an .xlsm file with macros disabled.
      If Sourcewb.Name = .Name Then
         With Application
            .ScreenUpdating = True
            .EnableEvents = True
         End With
         MsgBox "Your answer is No in the security dialog."
         Exit Sub
      Else
         Select Case Sourcewb.FileFormat
            ' Code 51 represents the enumeration for a macro-free
            ' Excel 2007 Workbook (.xlsx).
            Case 51: FileExtStr = ".xlsx": FileFormatNum = 51
            ' Code 52 represents the enumeration for a 
            ' macro-enabled Excel 2007 Workbook (.xlsm).
            Case 52:
               If .HasVBProject Then
                  FileExtStr = ".xlsm": FileFormatNum = 52
               Else
                  FileExtStr = ".xlsx": FileFormatNum = 51
               End If
            ' Code 56 represents the enumeration for a 
            ' a legacy Excel 97-2003 Workbook (.xls).
            Case 56: FileExtStr = ".xls": FileFormatNum = 56
            ' Code 50 represents the enumeration for a 
            ' binary Excel 2007 Workbook (.xlsb).
             Case Else: FileExtStr = ".xlsb": FileFormatNum = 50
         End Select
      End If
   End If
End With

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

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

With Destwb
   .SaveAs TempFilePath & TempFileName & FileExtStr, FileFormat:=FileFormatNum
      On Error Resume Next
   .SendMail "someone@example.com", _ [COLOR="Red"]aanpassen ontvanger[/COLOR]
      "This is the Subject line."
      On Error GoTo 0
   .Close SaveChanges:=False
End With
 
' Delete the file you just sent.
Kill TempFilePath & TempFileName & FileExtStr

With Application
   .ScreenUpdating = True
   .EnableEvents = True
End With
End Sub
 
Laatst bewerkt door een moderator:
Volgens mij wordt je hierboven uitgelegd dat je de code, hierop het forum, tussen codetags dient te plaatsen.
 
3 regels zijn voldoende

Code:
Sub verzend()
  ActiveSheet.Copy
  ActiveWorkbook.SendMail "[COLOR="Teal"]ga@gmail.com[/COLOR]", "[COLOR="teal"]proef[/COLOR]"
  Activeworkbook.close false
End Sub
 
Laatst bewerkt:
Bedankt,

Ik test dit uit

Georgyboy,
 
Bij drukken op de knop voor verzenden,
word gevraagd of de mail mag verstuurd zijn of het geen virus is.

en er opent een nieuw excel blad

Groetjes,
Georgyboy
 

Bijlagen

  • test mailen.jpg
    test mailen.jpg
    97,7 KB · Weergaven: 310
Bij test bij de onvanger word dit als bijlage in een nieuw bestand verstuurd.
Dus niet als huidige werkblad.

Wat is er mis ?

Grts Georgyboy,
 
Niks.
Je kunt een werkblad niet als zelfstandig objekt versturen, maar alleen als (enig) werkblad van een werkboek.
 
Bedankt voor Uw info SNB,

Sorry, maar ik geraak er niet uit
voel me wat schuldig, dat ik het zo vele keren iets moet vragen hoor !

Met workbook gaat het niet
ActiveWorkbook.SendMail "Ontvanger@mail.be",

moet dit iets zijn als Active.Werkblad (Sheet) of zo iets ?

De stappen die ik wil zijn in excel 2003 :
1) ingevuld excel blad
2) bestand --> verzenden naar --> E-mail adres (niet als bijlage)
3) AAN : ontvanger@mail.be
4) INLEIDING : tekst ........
5) Dit blad verzenden

Groetjes,
Georgyboy
 
Georgyboy,

Kun je niet gewoon het geen je wil verzenden selecteren copieren en dan in een E-mail plakken.
Zo doe ik het en werkt prima, voor mij altans.
 
Ik begrijp je hoor,

de reden is omdat dit dagelijks moet gebeuren,
dagelijks een 10 tal bladen vanuit die werkmap.

Als we dit kunnen automatiseren is dit +/- 15 min per dag
75 min per week, +/- 62 uur per jaar x € = veel geld gespaard

Ik weet dat ik lastig ben en zoek voor ons bedrijf een oplossing,
waar ieder op het eind van het jaar voordeel mee kan hebben, dit hopen we toch.

Hopelijk begrijpen jullie me ook,
Georgyboy
 
Georgyboy,

Als we dit kunnen automatiseren is dit +/- 15 min per dag
75 min per week, +/- 62 uur per jaar x € = veel geld gespaard

Dit begrijp ik, bij mij gebeurd het verzenden soms en is voor mij mijn manier makkelijker.
Heb je al eens op de site van Ron de Bruin gekeken? www.rondebruin.nl

Suc6,
 
Dag Wim,

Bedankt voor je begrip,

Wel de codes van Ron heb ik bekeken, maar snap er weinig van

ik denk dat dit met een korte code moet kunnen

Groetjes,
Georgyboy
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan