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

Macro verzen met plakken speciaal

Status
Niet open voor verdere reacties.

Squire

Gebruiker
Lid geworden
23 nov 2012
Berichten
5
Dag allen,

Helemaal nieuw op dit forum. dus benieuwd hoe het gaat werken.

Mijn probleem is de volgende:
Ik heb op de site van de bekende Ron een macro gevonden voor het verzenden van 1 worksheet.
Mijn probleem is echter dat de worksheet gevuld is door zaken uit andere worksheets en als ik dus de macro uitvoer dan krijg ik uitsluiten verwijzingsfouten ####verw.
ik zal de macro hier toevoegen misschien weet een van jullie hoe ik het goed krijg. verzenden etc. werkt prima. ik denk dat het ergens zit in Pastespecial maar helaas ben ik niet echt goed in macro's. Dat hoop ik hier dan te leren. wacht met spanning op jullie reacties.

Code:
Sub Mail_ActiveSheet()
'Working in 97-2010
    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 I As Long

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

    Set Sourcewb = ActiveWorkbook

    '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-2010, we exit the sub when your answer is
            'NO in the security dialog that you only see  when you copy
            'an 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$("temp") & "\"
    TempFileName = "lijst " & Sourcewb.Name & " " _
                 & Format(Now, "dd-mmm-yy h-mm-ss")

    With Destwb
        .SaveAs TempFilePath & TempFileName & FileExtStr, _
                FileFormat:=FileFormatNum
        On Error Resume Next
        For I = 1 To 3
            .SendMail "xxxxx@xxxx.nl", _
                      "lijst"
            If Err.Number = 0 Then Exit For
        Next I
        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
End Sub
 
Laatst bewerkt door een moderator:
Welkom op het forum!!

Gelieve uw code tussen tags(#) zetten. Dit doe je door de hele code te selecteren en kiezen voor #.
Ofwel aan het begin
Code:
 en aan het einde [\CODE] te zetten.

Dit gezegd zijnde de code doet perfect wat die moet doen, ik weet niet waar het bij u misloopt.
Miscchien zou je de naam van het te mailen bestand nog aanpassen om geen verwarring te krijgen.
 
Dank voor je warme welkom.

Geen idee waar ik die tag dan neer moet zetten.
 
Er staat toch ook:

Begin code ->
Code:
Einde code -> [\CODE]

en klaar is kees!
 
Wat ik ook probeer het blijft fout gaan.
kan het wat te maken hebben dat alle cellen een formule hebben met INDIRECT.
 
Ik denk dat jij een werkblad wil mailen met werkende formules naar een ander werkblad.
Ofwel mail je een werkblad met de waarden(Paste Special:=xlvalues) ipv de formules
ofwel mail je het hele bestand.
 
Op zich gaat het uitvoeren van de macro goed.
ik krijg in de mail slechts 1 worksheet uit het hele document.
ergens heb ik dus iets niet goed staan bij plakken speciaal maar wat ??
 
Ja de macro loopt goed zoals reeds gemeld, maar als jij in je werkblad formules hebt staan die verwijzen naar een ander werkblad zal dat nooit werken.
 
en ik dacht dat it met plakken speciaal waarden wel zou kunnen werken.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan