Avatar billede dane022 Seniormester
26. februar 2020 - 21:11 Der er 7 kommentarer og
2 løsninger

Kopiere (næsten) et helt regneark og send med vba

Jeg har et regneark hvor det første ark indeholder en bruttoliste. De øvrige ark er filtrerede lister ud fra bruttolisten eller ark der bruges til udregninger.
Bruttolisten må som det eneste ark ikke blive sendt med ud, da hvert område kun må se deres egne tal. Så enten skal bruttolisten slettes når mailen (med kopi af regnearket) til det enkelte område bliver dannet eller også skal de øvrige ark kopieres til nyt regneark som så sendes som mail.
Kunsten er, at det oprindelige regneark skal bevares efter mailen er sendt, så det er klar til sende en ny mail til et nyt område.

Jeg har ikke kunnet greje løsningen på dette, så jeg ville prøve at høre eksperterne ad om I kender en løsning. Sig til hvis det ikke er godt nok forklaret.
Avatar billede kim1a Ekspert
26. februar 2020 - 23:27 #1
Jeg vil foreslå at du har en fane som angiver hvor der skal sendes hen (tabel med modtagere og fane-navne, og så lader VBAen skabe de enkelte mails. Der findes en god løsning af Ron De Bruin:
https://www.rondebruin.nl/win/s1/outlook/mail.htm

Her er flere forskellige måder at gøre det på, men det lyder nemmest hvis du har masterfilen og så lader vba skabe ny workbook med det enkelte sheet og sender det afsted.
Avatar billede dane022 Seniormester
28. februar 2020 - 08:28 #2
Jeg har prøvet at lege videre med denne https://www.rondebruin.nl/win/s1/outlook/amail3.htm hvor man kopierer flere ark til nyt regneark som så gemmes. Det virker i princippet, men det viser sig, at jeg ikke får vba modulerne med i det nye regneark, hvilket er nødvendigt. Hvordan løser jeg det?
Avatar billede kim1a Ekspert
28. februar 2020 - 13:10 #3
Uha, det lyder mindre nemt. Jeg sad og kiggede på dette:
https://www.reddit.com/r/excel/comments/6uijei/using_vba_to_copy_macros_from_one_workbook_to/

Måske det bedste vil være at lave din kode omkring så den laver projektmappen som temp fil hvor du så sletter faner i inden den sendes.
Avatar billede dane022 Seniormester
01. marts 2020 - 08:14 #4
Tror vi er tæt på nu. Via dit forslag med Ron De Bruin, har jeg fundet dette link https://docs.microsoft.com/en-us/previous-versions/office/developer/officetalk2010/ff458119(v=office.11)?redirectedfrom=MSDN og har taget udgangspunkt i eksempel 2.
Eksemplet udfører en savecopyas og åbner kopien så man har mulighed for f.eks. at slette et ark inden afsendelse.

Jeg har gået koden igennem trinvis og umiddelbart gør den alt det rigtige, men det dokument der ender med at blive sendt, har stadig det slettede ark (udtræk) i sig.

Her er dele af den kode jeg bruger:
Her angives hvor kopien gemmes, dens filnavn, sletning af ark og derefter gemme:
TempFilePath = "n:\"
    TempFileName = wb1.Name & " " & Format(Now, "dd-mmm-yy h-mm-ss")
    FileExtStr = "." & LCase(Right(wb1.Name, _
                                  Len(wb1.Name) - InStrRev(wb1.Name, ".", , 1)))

    wb1.SaveCopyAs TempFilePath & TempFileName & FileExtStr
    Set wb2 = Workbooks.Open(TempFilePath & TempFileName & FileExtStr)
    Application.DisplayAlerts = False
    wb2.Worksheets("Udtræk").Delete
    wb2.Save
    Application.DisplayAlerts = True

Her den vedhæftning der sendes med i mailen
.Attachments.Add TempFilePath & TempFileName & FileExtStr

Kan du greje hvorfor arket ikke er slettet når regnearket slettes?
Avatar billede kim1a Ekspert
01. marts 2020 - 21:24 #5
Ja det virker mærkeligt at den ikke gemmer med ark slettet. Jeg synes netop det ser ud til at du åbner workbook'en, sletter og gemmer igen. Jeg tænker dog om det er noget med at du ikke har lukket wb1 inden du genåbner wb2?
Avatar billede dane022 Seniormester
01. marts 2020 - 21:52 #6
Ved nærmere gennemgang, viste det sig at der er tale om 2 forskellige wb2. Den ene gemmes som tempfil (kender ikke den præcise placering) og den anden på n-drevet.
I princippet er jeg ligeglad hvor den gemmes for det bliver slettet igen, men hvis jeg prøver at gemme workbook efter slet af arket, får jeg besked om at det ikke kan lade sig gøre med den filtype. Det virker mærkeligt
Avatar billede kim1a Ekspert
02. marts 2020 - 08:35 #7
Ja enig, men jeg tror vi har fat i roden af udfordringen, netop at den hiver tempfilen når den vil sende, mens det er den anden vi skal have.

Men at du ikke kan gemme igen lyder mystisk. Prøv at vælge en ny destination til gem (og mailvedhæftning). Stien kunne f.eks. blot være dit skrivebord (uden at slette den) til at begynde med.
Avatar billede dane022 Seniormester
02. marts 2020 - 13:28 #8
Nu ser det ud som om det er løst, men det blev ikke kønt. Først bliver regnearket gemt som en kopi i tempmappen, derfra åbnes den og bruttoarket bliver slettet og derefter gemmes den på drev hvorfra den vedhæftes mail. Til sidst slettes den fra begge placeringer.
Avatar billede kim1a Ekspert
02. marts 2020 - 21:06 #9
Det virker, så kan du pudse senere hvis det virkelig er nødvendigt :-) Jeg kan foreslå at du deler hele koden, så kan det være nogle af de rigtige hajer kan rydde op i det.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester