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

Mailen van 2 of meer sheets in een workbook

marc tuinstra

Gebruiker
Lid geworden
11 mrt 2024
Berichten
16
Beste

een vraagje

ik heb een excel workbook dat bestaat uit meerdere sheets die gelinkt zijn aan mekaar.
Hoe kan ik bv 2 sheets (van de 10 in totaal) die samen horen doorsturen in 1 workbook naar 1 geadresseerde?

Sheet 1 en 4 zouden bv in document naar 1 geadresseerde moeten
wie kan me helpen met de code in VBA?

mvg
Marc
 
Een beginnetje:
Code:
Sub Verstuur()
    Sheets(Array("Blad1", "Blad4")).Copy
    ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\Export.xlsx"
    With CreateObject("Outlook.Application").CreateItem(0)
       .To = "iemand@bedrijf.nl"
       .CC = ""
       .BCC = ""
       .Subject = "Onderwerp"
       .Body = "Bijgaand een excelletje"
       .Attachments.Add ThisWorkbook.Path & "\Export.xlsx"
       .Display
       '.Send
    End With
End Sub
 
Een beginnetje:
Code:
Sub Verstuur()
    Sheets(Array("Blad1", "Blad4")).Copy
    ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\Export.xlsx"
    With CreateObject("Outlook.Application").CreateItem(0)
       .To = "iemand@bedrijf.nl"
       .CC = ""
       .BCC = ""
       .Subject = "Onderwerp"
       .Body = "Bijgaand een excelletje"
       .Attachments.Add ThisWorkbook.Path & "\Export.xlsx"
       .Display
       '.Send
    End With
End Sub
Beste

ik krijg op de 2de lijn een foutmelding
dit zijn de namen van mijn tabbladen
moet ik dit dan anders formuleren?

1710229969610.png

Sub LaadlijstPanelen2()

Sheets(Array("LaadlijstPanelen", "HuurbonPanelen")).Copy
ActiveWorkbook.SaveAs FileName:=ThisWorkbook.Path & "\Export.xlsx"
With CreateObject("Outlook.Application").CreateItem(0)
.To = "aankoop@betonwerkenroba.be"
.CC = "aankoop@betonwerkenroba.be"
.BCC = ""
.Subject = "Laadlijst + Huurbon Panelen" + " : " + ActiveSheet.Range("B1").Text + " - " + ActiveSheet.Range("B5").Text
.Body = ""
.Attachments.Add ThisWorkbook.Path & "\Export.xlsx"

End With
End Sub
 
Als je zegt een foutmelding te krijgen, vertel er dan ook bij welke dat is.
 
Dan is er dus iets niet in orde met die bladnamen.
Staat er toevallig een spatie achter?
 
Neen er staat niets achter de tabbladen van spaties
Ik heb de namen ook gecopy-paste en niet getypt.
Ik heb ook getest met de bladnaam die excel heeft gegeven maar dat werkt ook niet

moet er nog iets voor de code gespecifieerd worden?

1710234423139.png
 
Plaats dan je document.
 
in bijlage de ganse file

Laadlijsten wapening, hout, riolering komen samen op Totaallijst en die wordt
verstuurd naar 1 adres en de invulbladen (laadlijsten) worden leeggemaakt en
de totaallijst gerefreshed na het versturen van de mail

Die zou ik ook willen doen bij het versturen van de paneellijst en de huurbonpanelen
deze 2 tabladen zouden dan samen naar magazijn moeten en in hoofddocument ook
terug leeggemaakt worden
 

Bijlagen

  • Laadlijst V2.0 Net.xlsm
    532 KB · Weergaven: 6
Werkt dit wel?
 

Bijlagen

  • WerktDitWel.xlsm
    21,9 KB · Weergaven: 1
Het werkt hier zonder enig probleem met:
Code:
Sheets(Array("LaadlijstPanelen", "HuurbonPanelen")).Copy
 
Laatst bewerkt:
Deze doet het bij mij prima:
Code:
Sub LaadlijstPanelen2()
    Sheets(Array("LaadlijstPanelen", "HuurbonPanelen")).Copy
    ActiveWorkbook.SaveAs FileName:=ThisWorkbook.Path & "\Export.xlsx"
    With CreateObject("Outlook.Application").CreateItem(0)
        .To = "aankoop@betonwerkenroba.be"
        .CC = "aankoop@betonwerkenroba.be"
        .BCC = ""
        .Subject = "Laadlijst + Huurbon Panelen" + " : " + ActiveSheet.Range("B1").Text + " - " + ActiveSheet.Range("B5").Text
        .Body = ""
        .Attachments.Add ThisWorkbook.Path & "\Export.xlsx"
        .Display
    End With
End Sub
 
Beste



Nog vraagje hoe kan ik de naam van het bestand veranderen want hij neemt onderstaande niet aan


Sub LaadlijstPanelen2()
Sheets(Array("LaadlijstPanelen", "HuurbonPanelen")).Copy
ActiveWorkbook.SaveAs FileName:=ThisWorkbook.Path & "\Laadlijst + Huurbon Panelen.xlsx"
With CreateObject("Outlook.Application").CreateItem(0)
.To = aankoop@.be
.CC = aankoop@.be
.BCC = ""
.Subject = "Laadlijst + Huurbon Panelen" + " : " + ActiveSheet.Range("B1").Text + " - " + ActiveSheet.Range("B5").Text
.Body = ""

.Attachments.Add ThisWorkbook.Path & "\Laadlijst + Huurbon Panelen" + " " + "ActiveSheet.Range("B1").Text" + " - " + "ActiveSheet.Range("B5").Text"
.Send

End With

End Sub

1710238654291.png

dit krijg ik bij het stuk in het geel
 
Gebruik geen + om strings te concateneren maar &.
En zet Range("B1") niet tussen ""
En als je een bestand opslaat als
Code:
ThisWorkbook.Path & "\Laadlijst + Huurbon Panelen.xlsx"
en vervolgens wilt versturen als
Code:
ThisWorkbook.Path & "\Laadlijst + Huurbon Panelen" + " " + "ActiveSheet.Range("B1").Text" + " - " + "ActiveSheet.Range("B5").Text"
dan zal dat niet lukken.
En je e-mailadressen moeten tussen "".
Probeer het eens zo:
Code:
Sub LaadlijstPanelen2()
    Dim onderwerp As String
    Dim filenaam As String
    Sheets(Array("LaadlijstPanelen", "HuurbonPanelen")).Copy
    onderwerp = "Laadlijst + Huurbon Panelen " & Range("B1") & " - " & Range("B5")
    filenaam = ThisWorkbook.Path & "\" & onderwerp & ".xlsx"
    
    ActiveWorkbook.SaveAs FileName:=filenaam
    With CreateObject("Outlook.Application").CreateItem(0)
        .To = "aankoop@.be"
        .CC = "aankoop@.be"
        .BCC = ""
        .Subject = onderwerp
        .Body = ""
        .Attachments.Add filenaam
        .Display
    End With
End Sub
 
Heb op paar manier geprobeerd nu krijg ik dit

1710244602649.png


1710244662408.png

Kan ik ook de temporaryfile gelijk wissen na het verzenden
 
Laatst bewerkt:
Lees nog eens heel aandachtig bericht #16 en probeer de code uit dat bericht.
 
Ok nu werkt het

Kan ik de temporary file gelijk ook laten wissen ?
Is het ook mogelijk om via de macro de iconen te verwijderen uit de sheets of deze een andere functie te geven?

1710247336860.png
 
Laatst bewerkt:
Code:
Sub LaadlijstPanelen2()
    Dim onderwerp As String
    Dim filenaam As String
    Sheets(Array("LaadlijstPanelen", "HuurbonPanelen")).Copy
    onderwerp = "Laadlijst + Huurbon Panelen " & Range("B1") & " - " & Range("B5")
    filenaam = ThisWorkbook.Path & "\" & onderwerp & ".xlsx"
    For Each shp In Sheets("LaadlijstPanelen").Shapes
        shp.Delete
    Next
    For Each shp In Sheets("HuurbonPanelen").Shapes
        shp.Delete
    Next
    ActiveWorkbook.SaveAs FileName:=filenaam
    ActiveWorkbook.Close
    With CreateObject("Outlook.Application").CreateItem(0)
        .To = "aankoop@.be"
        .CC = "aankoop@.be"
        .BCC = ""
        .Subject = onderwerp
        .Body = ""
        .Attachments.Add filenaam
        .Display
    End With
    Kill filenaam
End Sub
 
Terug
Bovenaan Onderaan