Helpmij.nl
Helpmij.nl
Helpmij.nl
Steun Helpmij.nl! Klik hier     Computerprobleem? Klik hier!

Quote

Pagina 2 van 3 EersteEerste 1 2 3 LaatsteLaatste
Weergeven resultaten 21 tot 40 van 41

Onderwerp: Script voor opslaan bijlagen

  1. #21
    Tera Honourable Senior Member edmoor's avatar
    Geregistreerd
    8 september 2000
    Locatie
    Zuid-Holland
    Ik gebruik zelf Outlook 2016 en hij doet het hier prima.
    "Hardware: The parts of a computer system that can be kicked. "
    Op rechtstreekse vragen via email reageer ik niet. Daar is het forum voor.

  2. #22
    Oooww wacht hij doet het wel. Alleen niet bij alle pdf bestanden, de bestanden DisplayFile.pdf (zo krijgen we de facturen binnen) slaat hij niet op.
    Is deze bestandsnaam te kort ?

  3. #23
    Tera Honourable Senior Member edmoor's avatar
    Geregistreerd
    8 september 2000
    Locatie
    Zuid-Holland
    Heb je meer dan 1 PDF per bericht? Dan moet de code en naamgeving daarop worden aangepast.
    "Hardware: The parts of a computer system that can be kicked. "
    Op rechtstreekse vragen via email reageer ik niet. Daar is het forum voor.

  4. #24
    Nee, 1 factuur per bericht.
    Het rare is dat hij sommige wel doet maar de meeste niet....

  5. #25
    Tera Honourable Senior Member edmoor's avatar
    Geregistreerd
    8 september 2000
    Locatie
    Zuid-Holland
    Waarschijnlijk gaat het te snel. Als je een momentje hebt zal ik er de naamgeving op aanpassen ...
    "Hardware: The parts of a computer system that can be kicked. "
    Op rechtstreekse vragen via email reageer ik niet. Daar is het forum voor.

  6. #26
    Tera Honourable Senior Member edmoor's avatar
    Geregistreerd
    8 september 2000
    Locatie
    Zuid-Holland
    Probeer het zo eens:
    Code:
    Public Sub SaveSelectionAttachments()
        Dim currentExplorer As Explorer
        Dim obj As Object
        Dim tlr As Integer
    
        Set currentExplorer = Application.ActiveExplorer
        Set Selection = currentExplorer.Selection
    
        For Each obj In Selection
           With obj
               If .Attachments.Count > 0 Then
                   If Right(.Attachments(1).FileName, 3) = "pdf" Then
                        tlr = tlr + 1
                        .Attachments(1).SaveAsFile "C:\PDF Bestanden\" & Format(Now, "yyyymmddhhmmss-") & tlr & .Attachments(1).FileName
                   End If
               End If
           End With
        Next
    
        Set currentExplorer = Nothing
        Set obj = Nothing
        Set Selection = Nothing
    End Sub
    "Hardware: The parts of a computer system that can be kicked. "
    Op rechtstreekse vragen via email reageer ik niet. Daar is het forum voor.

  7. #27
    Nee, helaas nog niet
    Heel bijzonder dat hij de bijlagen DisplayFile.pdf niet wil opslaan en de andere bestanden wel.

  8. #28
    Tera Honourable Senior Member edmoor's avatar
    Geregistreerd
    8 september 2000
    Locatie
    Zuid-Holland
    Dat heeft in ieder geval niet met de naam te maken.
    Wil je mij een mail sturen met zo'n bijlage?
    Je kan op mijn naam klikken om me te mailen.
    "Hardware: The parts of a computer system that can be kicked. "
    Op rechtstreekse vragen via email reageer ik niet. Daar is het forum voor.

  9. #29
    Dat kan ik helaas niet doen ivm privacy, zijn namelijk orginele facturen.
    Hoop dat je dit begrijpt.
    Zal morgen even op mijn werk verder kijken of ik kan traceren hoe het kan dat hij deze bestanden niet mee neemt.
    Dan kan ik ook even kijken of ik een voorbeeld voor je heb.
    Tot zover hartstikke bedankt !

  10. #30
    Tera Honourable Senior Member edmoor's avatar
    Geregistreerd
    8 september 2000
    Locatie
    Zuid-Holland
    Begrijp ik. Maar het werkt hier in ieder geval zonder problemen met een PDF genaamd DisplayFile.pdf
    Net even getest. Ik had ook niet anders verwacht, vandaar dat ik graag even wilde bekijken wat er met die PDF aan de hand is.
    Wees er tevens zeker van dat er maar 1 bijlage per mail is.
    Zoals je in de code kan zien pakt hij alleen bijlage 1 uit de collectie.

    Tevens zie je nu dat in vergelijking met mijn voorbeeld die andere code nogal wat overbodige zaken bevat.
    Laatst aangepast door edmoor : 14 november 2017 om 21:44
    "Hardware: The parts of a computer system that can be kicked. "
    Op rechtstreekse vragen via email reageer ik niet. Daar is het forum voor.

  11. #31
    Tera Honourable Senior Member edmoor's avatar
    Geregistreerd
    8 september 2000
    Locatie
    Zuid-Holland
    Ik heb de code nog iets aangepast. Mochten er meer PDF's bij een mail zitten dan slaat 'ie ze allemaal op.
    Tevens maakt het nu niet meer uit of de extensie PDF in hoofd- of kleine letters is geschreven en is de unificatie qua naamgeving geregeld.
    Code:
    Public Sub SaveSelectionAttachments()
        Dim currentExplorer As Explorer
        Dim obj As Object
        Dim i As Integer
        Dim z As Integer
    
        Set currentExplorer = Application.ActiveExplorer
        Set Selection = currentExplorer.Selection
    
        For Each obj In Selection
           With obj
               If .Attachments.Count > 0 Then
                 For i = 1 To .Attachments.Count
                   If LCase(Right(.Attachments(i).FileName, 3)) = "pdf" Then
                        z = z + 1
                        .Attachments(i).SaveAsFile "C:\PDF Bestanden\" & Format(Now, "yyyymmddhhmmss_") & Format(z, "0##_") & Format(i, "0##_") & .Attachments(i).FileName
                   End If
                 Next i
               End If
           End With
        Next
    
        Set currentExplorer = Nothing
        Set obj = Nothing
        Set Selection = Nothing
    End Sub
    De PDF's worden in 1 map opgeslagen. Wat je als extra zou kunnen doen is dat er per email adres van de afzender een folder wordt gemaakt waarin de bijlagen worden opgeslagen.
    Laatst aangepast door edmoor : 14 november 2017 om 22:23
    "Hardware: The parts of a computer system that can be kicked. "
    Op rechtstreekse vragen via email reageer ik niet. Daar is het forum voor.

  12. #32
    Helemaal super !
    Ik ga het morgenvroeg gelijk testen op mijn werk.
    Je hoort dan zo spoedig mogelijk van mij.
    Nogmaals hartstikke bedankt.

  13. #33
    Mega Honourable Senior Member
    Geregistreerd
    2 maart 2013
    @edmoor, da's al een mooi stukje korter dan de code in de OP. (Nog nooit wat in Outlook geprogrammeerd maar is eigenlijk best wel handig) Naar aanleiding van jouw code lijkt dit ook te werken.

    Code:
    Public Sub SaveSelectionAttachments()
      Dim it As Object, j As Long, z As Long
      For Each it In Application.ActiveExplorer.Selection
        If it.Attachments.Count > 0 Then
          For j = 1 To it.Attachments.Count
            If LCase(Right(it.Attachments(j).FileName, 3)) = "pdf" Then
              z = z + 1
              it.Attachments(j).SaveAsFile "E:\Temp\" & Format(Now, "yyyymmddhhmmss_") & Format(z, "00_") & Format(j, "00_") & it.Attachments(j).FileName
            End If
          Next j
        End If
      Next it
    End Sub
    Vanuit, in dit geval de variabele, 'it' is het routeren van berichten naar een specifieke map ook niet zo moeilijk. Een mens als gewoontedier......
    Je kan een paard naar het water leiden, maar je kan het niet dwingen te drinken.

  14. #34
    Edmoor, jouw laatste code werkt perfect !!
    Ben er echt super blij mee

    Nog een laatste vraag, is het ook mogelijk om bij het opslaan een keuze te krijgen waar je de bestanden wilt opslaan ?
    Dan zou het helemaal perfect zijn

  15. #35
    Tera Honourable Senior Member edmoor's avatar
    Geregistreerd
    8 september 2000
    Locatie
    Zuid-Holland
    @VenA:
    Dat lijkt niet alleen te werken, dat is zelfs zo
    Zelf doe ik eigenlijk ook nooit wat in Outlook VBA maar ik vond de code in de OP dusdanig dramatisch dat ik er wat mee wilde doen.
    Die code doet wel veel meer aan error handling en dergelijke, maar toch.

    @Marten1975:
    Dat kan. En wil je dat dan kunnen kiezen per bijlage of ineens voor de hele sessie?
    Laatst aangepast door edmoor : 15 november 2017 om 08:36
    "Hardware: The parts of a computer system that can be kicked. "
    Op rechtstreekse vragen via email reageer ik niet. Daar is het forum voor.

  16. #36
    Kan het ook beide ?
    Dus als ik 1 mailtje selecteer met een bijlage dat ik dan deze keuze krijg, maar ook als ik er bijvoorbeeld 10 selecteer...

  17. #37
    Tera Honourable Senior Member edmoor's avatar
    Geregistreerd
    8 september 2000
    Locatie
    Zuid-Holland
    Ik bedoel dus, als je 10 berichten selecteert. wil je dan een keuze per bijlage of moet de gekozen folder voor alle 10 gelden?
    Voor 1 geselecteerd bericht geldt uiteraard hetzelfde.
    "Hardware: The parts of a computer system that can be kicked. "
    Op rechtstreekse vragen via email reageer ik niet. Daar is het forum voor.

  18. #38
    Oowww sorry, dan moet hij voor alle 10 gelden.
    Dus niet per bijlage.

  19. #39
    Tera Honourable Senior Member edmoor's avatar
    Geregistreerd
    8 september 2000
    Locatie
    Zuid-Holland
    Ok. Doe dan dit eens als uitbreiding op de code van VenA:
    Code:
    Public Sub SaveSelectionAttachments()
      Dim it As Object, j As Long, z As Long, PDF As String
      
      PDF = BrowseForFolder("C:\")
      If PDF = "" Then Exit Sub
      For Each it In Application.ActiveExplorer.Selection
        If it.Attachments.Count > 0 Then
          For j = 1 To it.Attachments.Count
            If LCase(Right(it.Attachments(j).FileName, 3)) = "pdf" Then
              z = z + 1
              it.Attachments(j).SaveAsFile PDF & Format(Now, "yyyymmddhhmmss_") & Format(z, "00_") & Format(j, "00_") & it.Attachments(j).FileName
            End If
          Next j
        End If
      Next it
    End Sub
    
    Function BrowseForFolder(strStartingFolder As Variant) As String
        Set objShell = CreateObject("Shell.Application")
        Set objFolder = objShell.BrowseForFolder(0, "Selecteer een folder", 0, strStartingFolder)
        If Not TypeName(objFolder) = "Nothing" Then
            Set objFolderItem = objFolder.self
            BrowseForFolder = objFolderItem.Path & "\"
        Else
            BrowseForFolder = ""
        End If
    
        Set objFolderItem = Nothing
        Set objFolder = Nothing
        Set objShell = Nothing
    End Function
    Laatst aangepast door edmoor : 15 november 2017 om 09:25
    "Hardware: The parts of a computer system that can be kicked. "
    Op rechtstreekse vragen via email reageer ik niet. Daar is het forum voor.

  20. #40
    Geweldig, dit is het !!
    Edmoor en iedereen hartstikke bedankt, scheelt ons echt enorm veel handmatig werk :-)

Pagina 2 van 3 EersteEerste 1 2 3 LaatsteLaatste

Berichtenregels

  • U mag geen nieuwe vragen starten.
  • U mag niet reageren op berichten.
  • U mag geen bijlagen versturen.
  • U mag uw berichten niet bewerken.
  •  
Helpmij.nl
Helpmij.nl

Helpmij.nl en business

Partners
Sponsoren
Aanbiedingen