.Attachments.Add probleem

Status
Niet open voor verdere reacties.

Offthefield

Gebruiker
Lid geworden
27 apr 2005
Berichten
369
Ik ben bezig met een mail procedure met een .Attachments.Add

als ik een .Attachments.Add maak als hieronder dan werkt hij
.Attachments.Add "c:\EXTRA SCHIJF\EXCEL\9001.jpg"

maar nu wil ik hem linken aan een cel en dan werkt hij niet :
.Attachments.Add Range("Bijlage").Value '' Bijlage = EMAIL2!$C$15

wat doe ik fout ??

Kan iemand hiermee helpen

bvd

Offthefield
 
Wou je een formule mailen?
 
Code:
Sub EmailVerzenden2()

Sheets("EMAIL2").Select

With CreateObject("Outlook.Application").CreateItem(olMailItem)
    .Subject = Range("Onderwerp2").Value
    .To = Range("Aan_E_mailadres2").Value
    ' # geeft aan naar de volgende regel"
    .body = Replace(Range("Aan_Omschrijving").Value, "#", vbCr)
    
    ''DEZE REGEL WERKT NIET
    .Attachments.Add Bijlage  '' Bijlage = EMAIL2!$C$15
    '' DEZE OUDE REGEL WEL
    ''.Attachments.Add "c:\EXTRA SCHIJF\EXCEL\9001.jpg"
  .Send
End With
  ''
    MsgBox "De gegevens van deze EMAIL zijn verzonden", vbInformation
  ''
End Sub

Octafish,

Heb je hier iets aan ?!

Offthefield
 
De hele code werkt niet echt anders als wat je al had gepost. Laat ik een andere vraag stellen: wat staat er in het veld Bijlage? Als daar een formule staat naar een andere cel, dan gaat het niet werken, want je leest geen bestandsnaam uit, maar een formule.
 
Als in cel C15 staat: "c:\EXTRA SCHIJF\EXCEL\9001.jpg"
Dan gasat dit lukken:

Code:
Sub EmailVerzenden2()
  with Sheets("EMAIL2")
    sn=array( .Range("Onderwerp2").Value,.Range("Aan_E_mailadres2").Value,Replace(.Range("Aan_Omschrijving").Value, "#", vbCr),.range("C15").value)
   end with

   With CreateObject("Outlook.Application").CreateItem(0)
     .Subject = sn(0)
     .To = sn(1)
     .body = sn(2)
     .Attachments.Add sn(3)
     .Send
   End With
End Sub
 
Laatst bewerkt:
Snb,

Bedankt hij werkt, maar nu wil ik hem onder een knop zetten
met Private Sub EmailVerzenden2_Click() en dan geeft hij een error bij
CreateItem(olMailItem)?

Waarom werkt hij dan niet ?

Offthefield
 
vervang "olMailItem" door "0"
 
Alphamax,

Het werkt, bedankt!!

Weer wat geleerd

Ik had het zelf omzeild met Application.Run

Dat blijkt ook te werken

Zijn er nog meer opties!!, altijd makkelijk om als alternatief achter de hand te hebben !?

Offthefield
 
waarom,

Omdat de bibliotheek waarin de vertalingen van termen als 'olmailitem' staan nog niet geladen en beschikbaar is.
Dan moet je niet de 'outlooknaam', maar het indexnummer van het argument meegeven; zoals Alpha aangaf: 0 in plaats van olMailItem.
 
Oke bedankt,

Nu heb ik de procedure geplaatst in Microsoft Excel-object -> TAB EMAIL2,
dan werkt het programma, maar als ik de procedure plaats in het formulier (USERFORM)
dan geeft hij een foutmelding bij sn = ..., ik heb dit geprobeerd mbv DIM te tackelen
maar dan geeft hij weer een melding verder met iets van matrix ..., hoe kan ik deze foutmelding tackelen??

Offthefield
 
Waar moet ik de option Explicit plaatsen ?

Ik heb er nl al 1 staan
Option Explicit
Public blnGMail As Boolean

Code:
Option Explicit
Public blnGMail As Boolean
Private Sub CheckBox31_Click()
    If CheckBox31.Value = False Then
        Sheets("EMAIL2").Select
        blnGMail = False
        Range("SMTP_Server").Offset(, -1).Font.ColorIndex = 0
        Range("Gebruikersnaam").Offset(, -1).Font.ColorIndex = 15
        Range("Wachtwoord").Offset(, -1).Font.ColorIndex = 15
    End If
    If CheckBox31.Value = True Then
        Sheets("EMAIL2").Select
        blnGMail = True
        Range("SMTP_Server").Offset(, -1).Font.ColorIndex = 15
        Range("Gebruikersnaam").Offset(, -1).Font.ColorIndex = 0
        Range("Wachtwoord").Offset(, -1).Font.ColorIndex = 0
    End If
End Sub

Deze heeft betrekking op een andere procedure

Offthefield

Code:
Private Sub EmailVerzenden_Click()
EmailVerzenden99
''Application.Run "'BESTAND.xls'!EmailVerzenden"
End Sub
Private Sub EmailVerzenden99()
    ''
  With Sheets("EMAIL2")
    sn = Array(.Range("Onderwerp2").Value, .Range("Aan_E_mailadres2").Value, Replace(.Range("Aan_Omschrijving").Value, "#", vbCr), .Range("C15").Value)
   End With

    'CreateItem(olMailItem) verandert in CreateItem(0)bij Private Sub
    '
   With CreateObject("Outlook.Application").CreateItem(0)
     .Subject = sn(0)
     .To = sn(1)
     .Body = sn(2)
     .Attachments.Add sn(3)
     .Send
   End With
   ''
    MsgBox "De gegevens van deze EMAIL zijn verzonden", vbInformation
   ''
End Sub
 
lees post #11 nog eens door !!
Plaatsen betekent in het Nederlands iets anders dan verwijderen.
 
Ik heb een nieuw userform gemaakt (met 1 knop) maar ik krijg de zelfde foutmelding

Code:
Option Explicit

Private Sub EmailVerzenden_Click()
EmailVerzenden99
End Sub
Private Sub EmailVerzenden99()
    ''
  With Sheets("EMAIL2")
    sn = Array(.Range("Onderwerp2").Value, .Range("Aan_E_mailadres2").Value, Replace(.Range("Aan_Omschrijving").Value, "#", vbCr), .Range("C15").Value)
   End With

    'CreateItem(olMailItem) verandert in CreateItem(0)bij Private Sub
    '
   With CreateObject("Outlook.Application").CreateItem(0)
     .Subject = sn(0)
     .To = sn(1)
     .Body = sn(2)
     .Attachments.Add sn(3)
     .Send
   End With
   ''
    MsgBox "De gegevens van deze EMAIL zijn verzonden", vbInformation
   ''
End Sub

Wat moet ik veranderen om het werkend te krijgen?

Offthefield
 
Code:
Private Sub EmailVerzenden_Click()
  With Sheets("EMAIL2")
    sn = Array(.Range("Onderwerp2").Value, .Range("Aan_E_mailadres2").Value, Replace(.Range("Aan_Omschrijving").Value, "#", vbCr), .Range("C15").Value)
   End With

   With CreateObject("Outlook.Application").CreateItem(0)
     .Subject = sn(0)
     .To = sn(1)
     .Body = sn(2)
     .Attachments.Add sn(3)
     .Send
   End With
 End Sub
 
Snb,

Hij blijft een foutmelding geven bij :

sn = Array(.Range("Onderwerp2").Value, .Range("Aan_E_mailadres2").Value, Replace(.Range("Aan_Omschrijving").Value, "#", vbCr), .Range("C15").Value)

Melding :
Variabele niet gedefinieerd

Vervolgens defineer ik de variabele : Dim sn as string

Er wordt een matrix verwacht ?

Waar gaat het fout ??

Offthefield
 
Code:
Dim sn as variant

heb je ook de namen
Onderwerp2
Aan_E_mailadres2
Aan_Omschrijving
in sheet "EMAIL2"?

staat er in cel C15 een volledig pad naar een bestand?

tip: lees een boek, leer je over declareren (public/private dim) en variabletypes (double, long, variant, string)
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan