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

Geen melding krijgen om op te slaan

Status
Niet open voor verdere reacties.

davylenders123

Gebruiker
Lid geworden
20 jun 2010
Berichten
902
Heb een code die afdrukt mailt en opslaat.

Als de macro bij de rode gedeelte komt dan krijg ik elke keer een pop up met de vraag.
Bestand bestaat al moet dit worden overschreven.
Dit is altijd ja.
Kan ik iets aan de macro toevoegen dat ik die vraag niet meer krijg en hij gewoon opslaat op aangegeven lokatie ?

Code:
Sub mailoutlook2()



If vbNo = MsgBox("Ben je wel zeker dat je die mail wil verzenden", vbYesNo) Then Exit Sub
If vbNo = MsgBox("Heb je outlook open staan?", vbYesNo) Then Exit Sub

ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True

ActiveSheet.Protect Password:="1230", DrawingObjects:=True, Contents:=True, Scenarios:=True
    

ActiveWorkbook.SaveAs Filename:=("G:\Pakketten\Everyone\Transit\Retour Opdrachten\Afgewerkte retouropdrachten\Diverse\aangemelde lijsten" & "\Transit - aanmeldlijst retouren diverse " & Sheets("invulblad").Cells(7, 12).Value & " Doorgestuurd op " & Format(Now, "dd-mm-yyyy hh" & "u " & "mm") & ".xls")

  With CreateObject("Outlook.Application").createitem(olMailItem)
  .To = "test@po.be"
  .cc = ""
  .Subject = "Aanmeldlijst retouren van diverse  " & Format(Now, "dd-mm-yyyy hh" & "u " & "mm") & ".xls"
  .body = Replace("Klantendienst,##In bijlage de verzamelijst van de retouren van divers die we in transit hebben staan.#Gelieve deze zo snel moggelijk te laten afhalen.##Met Vriendelijke Groeten##Transit medewerker###", "#", vbCr)
  .Attachments.Add ThisWorkbook.Path & "\" & ThisWorkbook.Name
  .Send
  End With
  
    ActiveSheet.Unprotect Password:="1230"
    Sheets("invulblad").Select
    ActiveSheet.Unprotect Password:="1230"
    Range("B20").Select
    Selection.ClearContents
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
    ActiveWindow.ScrollRow = 11
    ActiveWindow.ScrollRow = 10
    ActiveWindow.ScrollRow = 9
    ActiveWindow.ScrollRow = 8
    ActiveWindow.ScrollRow = 6
    ActiveWindow.ScrollRow = 5
    ActiveWindow.ScrollRow = 3
    ActiveWindow.ScrollRow = 2
    ActiveWindow.ScrollRow = 1
    Range("B12").Select
    Sheets("Data").Select
    Range("A3:I50").Select
    Selection.ClearContents
    Range("E1").Select
    Selection.ClearContents
    Range("J3").Select
    Sheets("invulblad").Select
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
    [COLOR="#FF0000"]ActiveWorkbook.SaveAs Filename:=("H:\Transit - transit.xls")[/COLOR]
    
    
  MsgBox "De e - mail is correct verstuurd en de gegevens zijn correct opgeslagen", vbInformation
End Sub
 
Je kunt voor het opslaan controleren of het bestand al bestaat en deze verwijderen als dat zo is.
 
edmoor

Het bestand bestaat altijd.
Dit omdat elke keer het zelfde bestand wordt gebruikt om in te vullen en op te slaan

Het is een bestand dat door verschilende mensen wordt gebruikt.
Zou graag hebben dat ze de keuzen niet krijgen.
Want als ze nee kiezen bij de pop up klopt het bestand niet meer voor de volgende.

Daarom zou er iets bij in de macro moeten komen als het mogelijk is dat de pop up niet meer komt maar automatische
Het originele bestand overschrijft.
 
Voeg deze regel toe voor het opslaan:
Code:
Application.DisplayAlerts = False
 
Het is een kleine moeite het bestand te verwijderen alvorens de nieuwe op te slaan.
Maar probeer eerst de suggestie van Cobbe.
 
Cobe

U oplossing werkt waarvoor dank :):thumb:

edmoor

U oplossing is bij ons niet echt te doen.
Werken verschillende mensen mee die niet echt veel van computer kennen.
En weet van uit ervaring dat ze zo handelingen moeten doen het fout loopt.
Daarom wil ik zoiets graag allemaal automatisch hebben.
Maar toch ook bedankt voor je hulp:thumb:
 
Ik bedoel ook dat het verwijderen kan gebeuren vanuit de VBA code voordat je het document opslaat ;)
Maar die van Cobbe is makkelijker. Het nadeel is echter dat wanneer het opslaan om welke reden dan ook fout mocht gaan, je er ook geen melding van krijgt.
Vergeet niet om de DisplayAlerts na het opslaan weer aan te zetten.
 
Laatst bewerkt:
edmoor

Sorry voor het verkeerd begrijpen van mij:o

"Vergeet niet om de DisplayAlerts na het opslaan weer aan te zetten. "
Hoe doe ik dat ?

Want ben echt wel een leek in vba :o
 
Dat kan als volgt:
Application.DisplayAlerts = True

Plaats deze direct na het opslaan.
 
Laatst bewerkt:
edmoor

Heb het Application.DisplayAlerts = True erbij gezet.
Maar wat gebeurt er eigenlijk dat dat er niet zou staan ?
Want nu het erbij staat zie ik zo geen verschil.
Sorry voor mischien de dome vraag.:o
 
Vragen stellen als je iets niet weet is niet dom maar juist slim :thumb:

Je zult inderdaad geen verschil zien, maar het zorgt er wel voor dat wanneer er verderop in het proces iets fout gaat je daar ook een melding van krijgt. Als DisplayAlerts dan nog steeds uit staat zou je daar geen melding van krijgen en zoek je je een ongeluk naar de oorzaak van waarom iets niet werkt zoals je zou verwachten.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan