• 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.

Mail verzenden vanuit excel

Status
Niet open voor verdere reacties.

kloosterofobie

Gebruiker
Lid geworden
12 sep 2005
Berichten
126
Ik kan verzenden en hij komt in mijn outbox maar ik kan hem niet ontvangen omdat de bestandsnaam .xls .xls wordt en mijn virusscanner van mijn provider denkt dat het een verborgen extensie is.

Ik heb al geprobeerd de code te veranderen maar ik kan de "vinger" niet op de zere plek leggen, iemand een suggestie??


Code:
Code:
Sub CommandButton1_Click()
'Working in 97-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
    
    'Opslaan file op programshare
    Opslaan_file = "C:\EK Pool 2008 " & Range("B7").Value & ""
    'Opslaan_file = "C:\Temp\Te Printen en Verzenden aantallen" & Range("D8").Value & ".xls"
    ActiveWorkbook.SaveAs Filename:=Opslaan_file
    
    'Copy the sheet 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
            'We exit the sub when your answer is NO in the security dialog that you only
            'see  when you copy a sheet from a xlsm file with macro's 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
                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 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$("Inschrijving ") & ""
    TempFileName = Sourcewb.Name & " "
 
    Onderwerp = "Inschrijving EK Pool 2008 " & Range("B7").Value
    Emailadres = "jeroen.klooster@quicknet.nl"
    
    With Destwb
        .SaveAs TempFilePath & TempFileName & FileExtStr, FileFormat:=FileFormatNum
        On Error Resume Next
        .SendMail Emailadres, Onderwerp
        On Error GoTo 0
        .Close SaveChanges:=False
    End With
 
    'Delete the file you have send
    Kill TempFilePath & TempFileName & FileExtStr
 
    With Application
        .ScreenUpdating = True
        .EnableEvents = True
    End With
    
    'geef melding weer
    MsgBox "Je inschrijving is per email verzonden aan " & Emailadres & " en tevens opgeslagen op locatie: " & Opslaan_file & vbCrLf & "Je krijgt een bevestiging als je inschrijving is ontvangen."
    
End Sub
 
Is het niet mogelijk om xls bestanden toe te staan bij de virusscanner van je provider?

Anders moet je inpakken met winrar en ze dan als rar versturen.
 
Xls bestanden is wel toegestaan. Maar deze maakt .xls.xls en hiervan denkt de provider dat het een virus is.

Kan je zip bestanden ook versturen uit excel dan?
 
Kloosterfobie, Voordat je allerlei workarounds gaat verzinnen met zippen e.d., kan je je beter afvragen waarom je een dubbele extentie hebt!
Volgens mij voeg je namelijk in dit stuk code...
'Determine the Excel version and file extension/format
...je extra extentie toe. (maar ik kan 't ook helemaal mis hebben:D). Doorloop dat stuk 'ns stap voor stap in je VBE om te zien wat er gebeurt.

Groet, Leo

EDIT: Ja, daar komt die dubbele vandaan. In een eerder stukje plaats je al deze code
Code:
ActiveWorkbook.SaveAs Filename:=Opslaan_file
De 'saveas' methode geeft automatisch een .xls als je het filetype achterwege laat. Vervolgens ga in 't volgende blokje aan de slag om NOGMAALS een extentie toe te voegen!
 
Laatst bewerkt:
'Determine the Excel version and file extension/format

EDIT: Ja, daar komt die dubbele vandaan. In een eerder stukje plaats je al deze code
Code:
ActiveWorkbook.SaveAs Filename:=Opslaan_file
De 'saveas' methode geeft automatisch een .xls als je het filetype achterwege laat. Vervolgens ga in 't volgende blokje aan de slag om NOGMAALS een extentie toe te voegen!

Hoi Leo,

Dank voor je snelle reactie. Wat moet ik nu precies verwijderen om tot een enkele extensie te komen???

Gr. Jeroen
 
Kloosterfobie, Ik snap het hele stuk code niet zo waarmee je wilt ontdekken 'met welke versie Excel er gewerkt wordt'. Hier wordt namelijk de variabele extentie FileExtStr gevuld. Ik gok (heb ff weinig tijd namelijk) dat als je dat hele blok als comment (= die enkele quotes voor iedere regel) plaatst, dat je dan een enkele extentie overhoudt. Als het bewuste codeblokje WEL belangrijk is, moet er verder gekeken worden. Dan zal er iets gedaan moeten worden met de variabele bestandsnaam TempFileName (extentie eraf slopen, om 'm daarna weer toe te voegen).

Groet, Leo
 
'met welke versie Excel er gewerkt wordt' Dus als ik dit eruit gooi moet ie het doen???
 
Kloosterfobie, Het 'er uit gooien' moet je ff niet al te letterlijk nemen. Zet 'm eerst 'ns als 'comment block' en kijk wat de code dan doet. Een comment block maak je via een knopje op de werkbalk Edit in je VBE. Dit knopje ziet er alsvolgt uit: Een x aantal streepjes, bovenste zwart dan een paar blauwe en dan weer zwart. Selecteer eerst het codeblok en druk dan op dat knopje. Er wordt dan voor iedere regel een enkele quote gezet en de inhoud van die regel wordt als tekst gezien. Om het ongedaan te maken selecteer je dan dat hele tekstblok en klik je op het knopje 'met de streepjes met het 'omhaalttje' '.
Het weghalen is dus gewoon ff een kwestie van proberen en kijken of het dan wel goed gaat.

Groet, Leo
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan