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

E-mailbericht verwijderen

Status
Niet open voor verdere reacties.

SUVERMO

Gebruiker
Lid geworden
22 dec 2019
Berichten
478
Bestaat er een commando dat er voor zorgt dat alle e-mailberichten die via een macro in excel naar een bepaald adres worden verzonden niet zichtbaar zijn bij de verzonden berichten. Of een code voor het verwijderen van een bericht uit de map verzonden berichten en dit bericht definitief verwijderen uit de prullenbak.
 
in de gevonden code heb ik controle vervangen door het e-mailadress
maar dit geeft foutmelding

wat is er fout?


Code:
Sub email_verwijderen()
c00 = "controle"

CreateObject("Outlook.Application").GetNamespace("MAPI").GetDefaultFolder(4).Items(c00).Delete
End Sub

Code:
Sub email_verwijderen()
c00 = "franszenhangoren@gmail.com"

CreateObject("Outlook.Application").GetNamespace("MAPI").GetDefaultFolder(4).Items(c00).Delete
End Sub
 

Bijlagen

  • foutmelding.jpg
    foutmelding.jpg
    21,5 KB · Weergaven: 56
Code:
Sub email_verwijderen()
c00 = "[SIZE=5][COLOR=#ff0000]'[/COLOR][/SIZE][COLOR=#3E3E3E]franszenhangoren[/COLOR]@gmail.com[SIZE=5][COLOR=#ff0000]'[/COLOR][/SIZE]"
 For Each it In CreateObject("Outlook.Application").GetNamespace("MAPI").GetDefaultFolder(5).Items
  If it.To = c00 Then it.Delete
 Next
End Sub
 
Bedankt voor uw reactie
heb een paar testen gedaan
onderstaande heb ik toegevoegd in een bestaande macro

Code:
c00 = " Annemie Hendrix "
 For Each it In CreateObject("Outlook.Application").GetNamespace("MAPI").GetDefaultFolder(5).Items
  If it.To = c00 Then it.Delete
 Next

de uitvoering van de macro duurt merkelijk langer, wel een 10 tal minuten, hij doet dus wel iets meer, maar de mail blijft aanwezig, zie plaatje

de variabele c00 heb ik een paar keer aangepast, Welke zou de juiste moeten zijn?
c00 = "'nick.annemie@gmail.com'"
c00 = " nick.annemie@gmail.com "
c00 = "'Annemie Hendrix'"
c00 = " Annemie Hendrix "
 

Bijlagen

  • plaatje.jpg
    plaatje.jpg
    140,1 KB · Weergaven: 53
niet getest, ik heb geen outlook of gmail.
Op je huidige tabblad zou je een lijst moeten krijgen van de aanwezige emails in "verzonden" (let wel : die is 4, niet 5 !!!!)
Krijg je zo'n lijst, dan kan, in een volgende stap, die onder voorwaarden gewist worden

Code:
ub email_verwijderen()
   c00 = "'franszenhangoren@gmail.com'"
   For Each it In CreateObject("Outlook.Application").GetNamespace("MAPI").GetDefaultFolder(4).Items   '4=verzonden
      Range("A" & Rows.Count).End(xlUp).Offset(1).Resize(, 3).Value = Array(it.To, it.sendon, it.Subject)   'naar je tabblad geadresseerde, datum en onderwerp wegschrijven
      If False Then it.Delete                    'straks onder voorwaarden wissen
   Next
End Sub
 
@cow18,

Bij mij is het gewoon 5 net als op de site van @snb.

5.2.3 Verzonden email verwijderen
Sub email_verzonden_verwijderen()
c00 = "controle"

CreateObject("Outlook.Application").GetNamespace("MAPI").GetDefaultFolder(5).Items(c00).Delete
End Sub



Code:
Sub email_verwijderen()
c00 = "'annemie hendrix'"
 For Each it In CreateObject("Outlook.Application").GetNamespace("MAPI").GetDefaultFolder(5).Items
  'MsgBox it.Subject
  'MsgBox it.To
 If LCase(it.To) = c00 Then it.Delete
Next
End Sub

Maar zo te zien werkt @SUVERMO met Gmail.
 
heb ik dat nu zo verkeerd gelezen, in #1 was er sprake van verzonden emails

al hoewel, als ik nu het knipsel bekijk, dan zou ik zeggen dat de commentaar wat te hoog staat tov. de tekst links, sorry, 't is 5.
Ik kon niet testen, ik heb noch outlook noch gmail
 

Bijlagen

  • Aantekening 2020-04-12 105823.png
    Aantekening 2020-04-12 105823.png
    54,4 KB · Weergaven: 53
Laatst bewerkt:
de code van #7 maakt geen lijst
de macro in excel verstuurt met outlook, prive gebruik ik Gmail
 
@cow18,

De lijnen op de site liggen niet op gelijke hoogte.
De uitleg achter de apostrof ligt iets hoger dan het onderwerp. :d
 
@HSV, daar kwam ik net achter, :eek:

@suvermo, verander in mijn voorstel #7, de 4 door een 5 en probeer het nog een keer.
Nu zou je een lijst met alle emails uit "verzonden" moeten krijgen.
Kijk dan in de eerste kolom hoe het emailadres er werkelijk uitziet (met of zonder ')en dan kan je (met een combinatie van voorwaarden) je emails verwijderen in de volgende regel
 
heb de 4 door een 5 vervangen, dan geeft dit foutmelding, zie plaatje

Code:
Sub mail_verwijderen()

   c00 = "'franszenhangoren@gmail.com'"
   For Each it In CreateObject("Outlook.Application").GetNamespace("MAPI").GetDefaultFolder(5).Items   '4=verzonden
      Range("A" & Rows.Count).End(xlUp).Offset(1).Resize(, 3).Value = Array(it.To, it.sendon, it.Subject)   'naar je tabblad geadresseerde, datum en onderwerp wegschrijven
      If False Then it.Delete                    'straks onder voorwaarden wissen
   Next
   
End Sub
 

Bijlagen

  • foutmelding.jpg
    foutmelding.jpg
    158,4 KB · Weergaven: 49
Klein foutje van Bart.

Code:
it.sendon
moet zijn
Code:
it.senton
 
"On error" is vloeken in de kerk, symptoonbestrijding ipv. de echte oorzaak aan te pakken, maar omdat ik nu niet over je schouder kan meekijken ... .
Begin alvast op een leeg tabblad en zeg me even het resultaat
Code:
Sub email_verwijderen()
   c00 = "'franszenhangoren@gmail.com'"
   For Each it In CreateObject("Outlook.Application").GetNamespace("MAPI").GetDefaultFolder(5).Items   '4=verzonden
      On Error Resume Next
      With Range("A" & Rows.Count).End(xlUp).Offset(1)
         .Value = "foutje"
         .Value = it.To
         .Offset(, 1).Value = it.sendon
         .Offset(, 2).Value = it.Subject         'naar je tabblad geadresseerde, datum en onderwerp wegschrijven
      End With
      On Error GoTo 0
      If False Then it.Delete                    'straks onder voorwaarden wissen
   Next
End Sub
 
mogelijk is het eenvoudiger om in de macro die de e-mails verstuurd een voorwaarde te maken die de opdracht heeft om de e-mail naar een bepaald adres te verwijderen. Zou dat kunnen?

hieronder een deel dan de macro



Code:
.To = E_MAILADRES
        .CC = CC_E_MAILADRES
        .Subject = E_MAILONDERWERP
        .HTMLBody = RangetoHTML(Sheets("E_mail").Range("E_MAILTEKST"))
        .Send
 
zet anders achter de ".send" op de volgende regel ".delete", het is het proberen waard.

Normaal bij een send gaat die in je "post uit" en eens verzonden naar "verzonden".
Vermoedelijk zal er dus een time-out, een pauze er tussen zitten, anders verwijder je hem nog voor hij verzonden is.
2e probleem is, dat je vermoedelijk in de verkeerde map bezig bent.

Het zal vermoedelijk niet aan de verwachtingen voldoen.
 
wat bedoel jij met "dat je vermoedelijk in de verkeerde map bezig bent"
 
slaat je vraag op #16 ?
kijk naar de uitleg van SNB,
In jouw bijdrage staat er voorlopig niets over ".GetDefaultFolder(5)", dus kan je voorlopig niets deleten.
Je moet wachten tot hij in "verzonden" staat, dat kan binnen de seconde zijn, maar als je offline bent, kan dat even goed morgen zijn.
Je zou anders in diezelfde macro in een loopje gedurende 60 sec om de 5 sec tussen testen of die er staat en dan deleten.
Of je daar gelukkig zal van worden ???
Liever in 2 keer zou ik zeggen

Heb je met die correctie van HSV (sendon vervangen door senton) en mijn macro van #15 al iets in je tabblad staan ?
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan