geeft het verkeerde blad als output met opslaan als PDF

Status
Niet open voor verdere reacties.

Corrnelis

Gebruiker
Lid geworden
23 jun 2022
Berichten
59
Beste luitjes,

Ik heb een vreemd probleem waar ik niet uit kom.
In mijn bestand staan diverse sheets waaronder de sheet "offerte".
Indien ik die helemaal links zet op plaats 1, werkt de code (zie hieronder perfect).
Maar als ik deze enkele posities naar rechts verplaats naar bijvoorbeeld positie 2 dan drukt hij nog steeds wel af maar neemt dan het eerste blad om te tonen.
Ondanks dat ik aangeef het actieve sheet "Offerte" te nemen.
Heeft iemand enig idee waarom hij niet gewoon het blad neemt waar ook de knop op staat. ("Offerte")

Hier de code

Code:
Sub OpslOffMailing()



Sheets("Offerte").Activate




' Onderstaande  macro stuurt een PDF van de offerte naar verschillende mailadressen.
With ActiveSheet


    Dim PDFnaam As String
    Dim OutApp As Object
    Dim OutMail As Object
' Hier pakt hij de locatie op sharepoint en de naam van het bestand
  
    PDFnaam = Range("BH28").Value & _
        Range("BG2") & ".pdf"
    
   ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, FileName:=PDFnaam, Quality:=xlQualityStandard, _
  IncludeDocProperties:=False, IgnorePrintAreas:=False, From:=1, To:=3, OpenAfterPublish:=True
 
        
    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)
    
' IN DE (With OutMail) ZET JE MET DE (.TO) MEERDERE EMAILADRESSEN ERIN DOOR HET SCHEIDEN MET EEN (;)
    With OutMail
        .To = "................@gmail.com"
        .CC = ""
        .BCC = ""
        .Subject = "Offerte voor bruiloft / partij"
        .Body = "Ha collega, Bij deze een nieuwe of geupdate offerte bruiiloft/partij"
        .Attachments.Add PDFnaam
        .Send
    End With


    Set OutMail = Nothing
    Set OutApp = Nothing
    
End With


End Sub

Hopelijk kunnen jullie mij de oplossing aangeven en het waarom zou helemaal top zijn.

Gr Cor
 
Maak van
Code:
PDFnaam = Range("BH28").Value & _
        Range("BG2") & ".pdf"

eens:
Code:
PDFnaam = Sheets("Offerte").Range("BH28").Value & _
        Range("BG2") & ".pdf"

en van ActiveWorkbook maak je ActiveSheet

Liever een voorbeeldbestand bijvoegen

In je code staat PowerPoint...:rolleyes:
 
Laatst bewerkt:
De opdracht Sheets("Offerte").Activate wordt pas actief wanneer de macro van de knop stopt.
Wijzig: With Activesheet
In: With Sheets("Offerte")
Zet dan tevens een . voor de Range opdrachten.
 
Laatst bewerkt:
Je kun ook zoiets gebruiken, dan kun je het van ieder sheet gebruiken

Code:
  Dim ActiefBlad As String
  ActiefBlad = ActiveSheet.Name
  Application.ScreenUpdating = False
  
  Sheets("Offerte").Select

  'doe je ding

  Sheets(ActiefBlad).Select
  Application.ScreenUpdating = True
 
Code:
Sub M_snb()
  with Sheets("Offerte")
   c00= .[BH28&BG2]
   .ExportAsFixedFormat 0, c00
  end with       
  
  with CreateObject("Outlook.Application").CreateItem(0)
    .To = "................@gmail.com"
    .Subject = "Offerte voor bruiloft / partij"
    .Body = "Ha collega, Bij deze een nieuwe of geupdate offerte bruiiloft/partij"
    .Attachments.Add c00
    .Send
  End With
End Sub
 
Laatst bewerkt:
Weer wat opgelost

Heren,

Alweer mijn grote dank voor jullie input.
Super weer zoals jullie willen meedenken en thanks voor de uitleg.
Ik ga voor nu even voor de oplossing van edmoor.
Werkt perfect na mijn pc opnieuw opgestart te hebben.
Dus de vraag zet ik voor nu op opgelost.
Ga natuurlijk ook nog kijken naar de twee andere oplossingen.
Maar dat spreekt vanzelf.
Dus iedereen bedankt maar weer

Tot laterrrr
Gr Cor
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan