• 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

Status
Niet open voor verdere reacties.
Ik zou na het verzenden ook van enkele cellen de inhoud willen wissen in het hoofdbestand

als ik onderstaande tussenvoeg net voor "Kill filenaam" wist hij alles in nieuw gecreerde file maar
niet in de basisfile.

Welke opdracht kan ik dan best voorzien zodat hij de basisfile waar alles ingegeven moet
worden terug netjes leeg te maken en dicht te doen?

Sheets("LaadlijstPanelen").Range("b12:c42").ClearContents
Sheets("HuurbonPanelen").Range("h13:h85").ClearContents
Sheets("HuurbonPanelen").Range("j13:j85").ClearContents
Sheets("HuurbonPanelen").Range("l13:l85").ClearContents
Sheets("HuurbonPanelen").Range("n13:n85").ClearContents
Sheets("HuurbonPanelen").Range("p13:p85").ClearContents
Sheets("HuurbonPanelen").Range("r13:r85").ClearContents
Sheets("HuurbonPanelen").Range("t13:t85").ClearContents
Sheets("HuurbonPanelen").Range("v13:v85").ClearContents
Sheets("HuurbonPanelen").Range("x13:x85").ClearContents
Sheets("HuurbonPanelen").Range("z13:z85").ClearContents
Sheets("HuurbonPanelen").Range("ab13:ab85").ClearContents
Sheets("HuurbonPanelen").Range("ad13:ad85").ClearContents
 
Geen idee wat je allemaal uitspookt zonder je code te zien, maar onderstaande werkt bij mij prima:
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
    Sheets("LaadlijstPanelen").Range("b12:c42").ClearContents
    With Sheets("HuurbonPanelen")
        .Range("h13:h85").ClearContents
        .Range("j13:j85").ClearContents
        .Range("l13:l85").ClearContents
        .Range("n13:n85").ClearContents
        .Range("p13:p85").ClearContents
        .Range("r13:r85").ClearContents
        .Range("t13:t85").ClearContents
        .Range("v13:v85").ClearContents
        .Range("x13:x85").ClearContents
        .Range("z13:z85").ClearContents
        .Range("ab13:ab85").ClearContents
        .Range("ad13:ad85").ClearContents
    End With
    Kill filenaam
End Sub
 
Als je een hekel aan herhalingen hebt.
Code:
With Sheets("LaadlijstPanelen")
  .DrawingObjects.Delete
   For j = Columns("H").Column To Columns("AD").Column Step 2   ' Of 8 to 30
     .Cells(13, j).Resize(73).ClearContents
   Next j
End With
of:
Code:
Sheets("HuurbonPanelen").Range("h13:h85,j13:j85,l13:l85,n13:n85,p13:p85,r13:r85,t13:t85,v13:v85,x13:x85,z13:z85,ab13:ab85,ad13:ad85").ClearContents
 
Of:
Code:
Sheets("HuurbonPanelen").Range("H13:AD85").SpecialCells(xlCellTypeConstants).ClearContents
 
Zou kunnen werken; dus voor om en om weet ik niet, ik heb geen bestand ingekeken.
Trouwens ben ik geen fan van Specialcells.
In uiterste nood als ik zeker weet dat een range gevuld is anders krijg je een melding dat er geen cellen gevonden zijn.
 
Goede morgen allen

blijf een probleem hebben op 2 stukjes van de code

hij maakt steeds de nieuwe gemaakte documenten leeg ipv
de cellen in de masterfile.

Bij Kill filenaam krijg ik onderstaande fout
1710318920114.png
Ik vermoed dat dit komt omdat de file wordt geopend op het scherm
na het verzenden wat eigenlijk niet moet

De bedoeling is dat in de masterfile (Laadlijst V2.0 Net) alle gegevens
worden ingetypt (tabblad : LaadlijstPanelen)
Hier moeten ze dan op verzenden drukken van zodra dit gebeurt
zou de masterfile terug leeg moeten gemaakt worden
Nu zou er in de mailbox van de ontvanger de ingevulde Sheets LaadlijstPanelen
en HuurbonPanelen moeten zitten met alle gegevens en zonder iconen.
De voorlopige file die opgeslagen wordt die zou moeten verwijderd worden zodat
niet elke keer volgende melding tevoorschijn komt
1710319360105.png



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
Sheets("LaadlijstPanelen").Range("b12:c42").ClearContents
With Sheets("HuurbonPanelen")
.Range("h13:h85").ClearContents
.Range("j13:j85").ClearContents
.Range("l13:l85").ClearContents
.Range("n13:n85").ClearContents
.Range("p13:p85").ClearContents
.Range("r13:r85").ClearContents
.Range("t13:t85").ClearContents
.Range("v13:v85").ClearContents
.Range("x13:x85").ClearContents
.Range("z13:z85").ClearContents
.Range("ab13:ab85").ClearContents

.Range("ad13:ad85").ClearContents
End With
Kill filenaam
End Sub
 
De exportfile wordt netjes gesloten voordat het moederdocument wordt opgeschoond. Maar als je het exportbestand weer opent voordat het verstuurd is dan gebeurt er wat jij ondervindt. De opschoonactie wordt dan uitgevoerd op het actieve document (het exportbestand) en een openstaand document kan niet verwijderd worden waardoor je bij de volgende export de vraag krijgt of je het bestand wilt vervangen.
 
Dag AHulpje

de exportfile opent zichzelf bij mij ik doe deze niet zelf open.

Kan ik deze file ook laten opslagen in de map Temp want niet iedereen heeft schrijfrechten
op de map waar ik mijn masterdocument in zet
 
Ik denk dat je het zo moet doen:
Code:
filenaam = Environ("Temp") & "\" & onderwerp & ".xlsx"
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs FileName:=filenaam, 51
Application.DisplayAlerts = True
ActiveWorkbook.Close
Met er tussen uiteraard de gewenste bewerkingen voordat je het document sluit.
 
Laatst bewerkt:
Als ik deze code gebruik
krijg ik deze maal fout bij .Mail moet ik hier .Send gebruiken of een andere commando?

Sub LaadlijstPanelen2()

Dim onderwerp As String
Dim filenaam As String

Sheets(Array("LaadlijstPanelen", "HuurbonPanelen")).Copy
onderwerp = "Laadlijst + Huurbon Panelen " & Range("B1") & " - " & Range("B5")
filenaam = Environ("Temp") & "\" & onderwerp & ".xlsx"

For Each shp In Sheets("LaadlijstPanelen").Shapes
shp.Delete
Next
For Each shp In Sheets("HuurbonPanelen").Shapes
shp.Delete
Next

Application.DisplayAlerts = False
ActiveWorkbook.SaveAs FileName:=filenaam



With CreateObject("Outlook.Application").CreateItem(0)
.To = "aankoop@betonwerkenroba.be"
.CC = ""
.BCC = ""
.Subject = onderwerp
.Body = ""
.Attachments.Add filenaam
.mail
1710324925349.png
Application.DisplayAlerts = True
ActiveWorkbook.Close


End With
Kill filenaam

Sheets("LaadlijstPanelen").Range("b12:c42").ClearContents
With Sheets("HuurbonPanelen")
.Range("h13:h85").ClearContents
.Range("j13:j85").ClearContents
.Range("l13:l85").ClearContents
.Range("n13:n85").ClearContents
.Range("p13:p85").ClearContents
.Range("r13:r85").ClearContents
.Range("t13:t85").ClearContents
.Range("v13:v85").ClearContents
.Range("x13:x85").ClearContents
.Range("z13:z85").ClearContents
.Range("ab13:ab85").ClearContents
.Range("ad13:ad85").ClearContents
End With



End Sub
 
Dat .mail bestaat ook helemaal niet.
Hoe kom je daarbij?
Dat moet .Send of .Display zijn.

Daarnaast moet je het document sluiten voordat je hem als bijlage kan versturen, zoals al eerder gezegd is.
 
Laatst bewerkt:
Deze doet het bij mij prima:
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 = Environ("Temp") & "\" & onderwerp & ".xlsx"

    For Each shp In Sheets("LaadlijstPanelen").Shapes
        shp.Delete
    Next
    For Each shp In Sheets("HuurbonPanelen").Shapes
        shp.Delete
    Next

    Application.DisplayAlerts = False
    ActiveWorkbook.SaveAs FileName:=filenaam
    ActiveWorkbook.Close

    With CreateObject("Outlook.Application").CreateItem(0)
        .To = "aankoop@betonwerkenroba.be"
        .CC = ""
        .BCC = ""
        .Subject = onderwerp
        .Body = ""
        .Attachments.Add filenaam
        .Send
    End With
    Kill filenaam

    Sheets("LaadlijstPanelen").Range("b12:c42").ClearContents
    With Sheets("HuurbonPanelen")
        .Range("h13:h85").ClearContents
        .Range("j13:j85").ClearContents
        .Range("l13:l85").ClearContents
        .Range("n13:n85").ClearContents
        .Range("p13:p85").ClearContents
        .Range("r13:r85").ClearContents
        .Range("t13:t85").ClearContents
        .Range("v13:v85").ClearContents
        .Range("x13:x85").ClearContents
        .Range("z13:z85").ClearContents
        .Range("ab13:ab85").ClearContents
        .Range("ad13:ad85").ClearContents
    End With
End Sub
 
Geen probleem daarmee hier.
Plaats dan je document zoals deze nu is.
 
Kan het zijn omdat bladbeveiliging opstaat in de sheet?
Hoe kan ik deze dan via de macro even afzetten en terug opzetten na uitvoering?
 
Code:
Sheets("Sheet1").Unprotect Password:="myPassword"
Sheets("Sheet1").Protect Password:="myPassword"
 
Code:
Sheets("LaadlijstPanelen").UnProtect "Wachtwoord"
Maar ik neem aan dat je #34 en #35 ook hebt gezien?
 
HoiHoi

ik ben er nog eens terug
Eerst en vooral al wreed bedankt voor de hulp en tips :)

ik zit nog met enkele vraagjes nadat we de workbook hebben geprobeerd

Op de eerste pagina moet men het project kiezen en de datum invullen dat alles moet klaarstaan
deze zaken worden met een link "=celXX" op andere pagina's ingevuld.
Als men dan alles heeft ingevuld zoals het hoort en het document doorstuurt kom het netjes aan
zoals ze het hebben ingevuld in het masterdocument.
Nu is het nadeel dat als men iets wijzigt in het masterdocument om een nieuwe laadlijst op te maken
dat dan ook in het nieuw gegeneerd document de data van projectnummer en leverdatum ook
wijzigen omdat de link naar de masterbook verwijzen.
Hoe kan ik er voor zorgen dat deze linken aangepast worden naar data ipv link

de laadlijsten "riolering, hout en wapening" komen samen in totaallijst via query
Dit blad zou moeten verzonden worden per mail zonder dat er linken instaan naar externe
werkbladen, liefst ook zonder mail of home icoon

de laadlijst panelen zou samen verzonden moeten worden met de huurbon en enkele achterliggende pagina's. Van deze laadlijst en huurbon zouden dan ook de iconen home en email moeten verwijderd worden.

Van alle nieuwe gegenereerde pagina's zouden alle linken naar een extern blad (datum klaarleggen
Projectnummer) moeten omgezet worden naar data.
Ook zouden van deze bladen de iconen moeten verwijderd worden bij het verzenden maar dan moet
eerst de beveiliging afgezet worden anders kan met ze niet verwijderen.

De mastersheet zou terug naar leeg moeten gebracht worden maar ook beveiligd moeten zijn tegen
schrijven.


Kunnen jullie de macro's even nakijken aub

merciekes voor de hulp
 

Bijlagen

Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan