Print side | Luk vindue

Fejl i kode - 'Send mail fra excel'

Udskrevet fra: Dansk Regneark Forum
Kategori: Hjælp til regneark.
Forum navn: Generelt
Forum beskrivelse: Hjælp til generel daglig brug af programmet Excel
Web-adresse: https://forum.excel-regneark.dk/forum_posts.asp?TID=4324
Udskrevet den: 26.Apr.2024 kl. 22:43


Emne: Fejl i kode - 'Send mail fra excel'
Besked fra: VC1
Emne: Fejl i kode - 'Send mail fra excel'
Posteringsdato: 26.Jul.2020 kl. 21:26
Uanset hvad jeg gør, så kan jeg ikke få denne macro til at kun at tage specifikke (dog dynamiske) celler og sende i en email.

Jeg har reference mail i A1 og den bliver ved med at klippe denne med
(Denne er bare en test, men i den vil informationerne heller ikke skulle tages fra toppen, så løsningen er ikke bare at flytte det hele op og mail referencen ned)

uploads/2704/Send_email.xlsm" rel="nofollow - uploads/2704/Send_email.xlsm


Koden

Sub esendtable()
Dim outlook As Object
Dim newEmail As Object
Dim xInspect As Object
Dim pageEditor As Object
Set outlook = CreateObject("Outlook.Application")
Set newEmail = outlook.CreateItem(0)
With newEmail
    .To = Sheet1.Range("A1").Text
    .CC = ""
    .BCC = ""
    .Subject = "Personoplysninger"
    .Body = "Jvf. aftale er her oplysninger" & vbCrLf & "Venlig hilsen Kim"
    .display
    Set xInspect = newEmail.GetInspector
    Set pageEditor = xInspect.WordEditor
    'Sheet1.Range("B2:E5").Copy
    Sheet1.Range("A2").CurrentRegion.Copy
    pageEditor.Application.Selection.Start = Len(.Body)
    pageEditor.Application.Selection.End = pageEditor.Application.Selection.Start
    pageEditor.Application.Selection.PasteAndFormat (wdFormatPlainText)
    .display
    '.Send
    Set pageEditor = Nothing
    Set xInspect = Nothing
End With
Set newEmail = Nothing
Set outlook = Nothing
End Sub




Svar:
Besked fra: fiajakt
Posteringsdato: 27.Jul.2020 kl. 16:52
Hej,'

Jeg har ikke lige outlook på min pc.

men hvad sker der når du erstatter;


Sheet1.Range("A1").Text

med

Sheet1.Range("A1").value



mvh kjeld


Besked fra: VC1
Posteringsdato: 27.Jul.2020 kl. 17:04
Det ændrede intet - Den tager stadig min A1 med mail med

Skal lige siges, at jeg prøvet at ændre range til A2 begge steder, men lige lidt hjælper det


Besked fra: fiajakt
Posteringsdato: 27.Jul.2020 kl. 17:13
Du bruger 
    
Sheet1.Range("A2").CurrentRegion.Copy

Derfor får du A2 med igen..

slet currentregion
og brug

Sheet1.Range("B2:E5").Copy



Besked fra: VC1
Posteringsdato: 27.Jul.2020 kl. 17:24
Det virkede i den forstand at den tog alle tabs mellem B2:E5
- Men jeg vil gerne have at den tager alle tabs dynamisk fra A2 og til der hvor ikke længere er udfyldt information (hvilket er dynamisk). Derfor er A2 med currentregion


Besked fra: Bjarnehansen
Posteringsdato: 27.Jul.2020 kl. 17:31
uploads/397/Send_email.xlsm" rel="nofollow - uploads/397/Send_email.xlsm

prøv denne



-------------
Husk, at trykke på [Tak], hvis du kan lide et indlæg.
Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.
Med venlig hilsen - Bjarne Hansen - Microsoft 365 DK


Besked fra: Bjarnehansen
Posteringsdato: 27.Jul.2020 kl. 17:52
uploads/397/Send_email2.bj.xlsm" rel="nofollow - uploads/397/Send_email2.bj.xlsm

eller er det noget mere i denne stil du tænker på?



-------------
Husk, at trykke på [Tak], hvis du kan lide et indlæg.
Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.
Med venlig hilsen - Bjarne Hansen - Microsoft 365 DK


Besked fra: fiajakt
Posteringsdato: 27.Jul.2020 kl. 18:02
Når du bruger currentregion får du alle celler med.

Det svarer til du tryk CTRL A









Besked fra: fiajakt
Posteringsdato: 27.Jul.2020 kl. 18:06
Hej 


Dymanisk uden currentregion.



VBA kode':


Dim lRow As Long
lRow = Cells(Rows.Count, 1).End(xlUp).Row

Sheet1.Range(Cells(2, 1), Cells(lRow, 2)).Copy


se vedlagt file


uploads/2064/test.xlsm" rel="nofollow - uploads/2064/test.xlsm


Besked fra: VC1
Posteringsdato: 27.Jul.2020 kl. 18:16
Jeg får desværre ikke det ønskede resultatet i nogle af besvarelserne.

Til bjarnehansen - så ønskes der stadig tekst over de kopierede rækker, hvilket gør at e-mailen skal stå i A1 som eksempel på dette

Til fiajakt - Så giver dit excel ikke den ønskede 'dynamiske' effekt, såfremt der kommer mere information ned langs rækkerne/kolonnerne

P.S din kommentar med VBA kode, kan jeg ikke lurer hvor du ville have ind for at det skulle give effekten.
https://forum.excel-regneark.dk/member_profile.asp?PF=2064" rel="nofollow -
https://forum.excel-regneark.dk/pm_new_message_form.asp?name=fiajakt" rel="nofollow -
https://forum.excel-regneark.dk/search_form.asp?USR=fiajakt" rel="nofollow -
https://forum.excel-regneark.dk/pm_buddy_list.asp?name=fiajakt" rel="nofollow -



Besked fra: Bjarnehansen
Posteringsdato: 27.Jul.2020 kl. 18:48
Hvilken tekst er det du vil have over de kopiere rækker, kan du ikke skrive den tekste du vil have ind i A1

-------------
Husk, at trykke på [Tak], hvis du kan lide et indlæg.
Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.
Med venlig hilsen - Bjarne Hansen - Microsoft 365 DK


Besked fra: VC1
Posteringsdato: 27.Jul.2020 kl. 18:53
Dette er er kun en lille funktion i et større mere kompleks arbejdsark og hvor denne funktion vil være, er ''midt'' i arket - Derfor er mailen oppe i A1 for at symbolisere at der vil være tekst over det der ønskes kopieret.

Så det korte svar er nej, desværre.


Besked fra: Bjarnehansen
Posteringsdato: 27.Jul.2020 kl. 18:53
Jeg får dannet denne mail



-------------
Husk, at trykke på [Tak], hvis du kan lide et indlæg.
Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.
Med venlig hilsen - Bjarne Hansen - Microsoft 365 DK


Besked fra: fiajakt
Posteringsdato: 27.Jul.2020 kl. 18:53
uploads/2064/test1.xlsm" rel="nofollow - uploads/2064/test1.xlsm



nu med dynamisk både i rækker og kolonner


Besked fra: VC1
Posteringsdato: 27.Jul.2020 kl. 19:25
Ja undskyld Bjarnehansen, jeg vil måske ikke udtrykt mig klart nok i svaret til dig.
- Problemet med din besvarelse var, at hvis jeg tilføjede information i flere rækker/kolonner, så ville disse ikke komme med automatisk, men kun med en manuel ændring i macro hver gang.

fiajakt - Tak det fungerer super.
- Men nu tænker jeg lidt frem i min egen proces, hvis jeg nu senere vil have noget tekst under denne function i kolonne A, så vil dette også blive taget med. Kan man lave en 'stop' funktion så den tager fra den celle man nu vil, i dette tilfælde 2,1 og indtil der kommer et blankt felt.

Sådan så, at hvis jeg ønsker nu information nedenunder, så skal jeg bare lade en række være tom.


Besked fra: fiajakt
Posteringsdato: 27.Jul.2020 kl. 21:45

Hej Hvis du vil beholde curentregion kan du bruge denne file.



uploads/2064/test2_2020-07-27_21-44-19.xlsm" rel="nofollow - uploads/2064/test2_2020-07-27_21-44-19.xlsm



Besked fra: VC1
Posteringsdato: 28.Jul.2020 kl. 11:06
fiajakt - Tak det spiller bare nu - Det sætter jeg stor pris på.

Et hurtigt spørgsmål - Kan se du har tilføjet kode under et ekstra sheet i modules og ikke blot tilføjet det i det eksisterende. Er der en speciel grund til det ikke er samlet?

- Er ikke super skarp i excel, så prøver bare lidt at få bedre indblik 


Besked fra: fiajakt
Posteringsdato: 29.Jul.2020 kl. 07:18
Hej,

Det er fordi, jeg ikke har outlook og kunne derfor ikke teste koden.

Modullet er bare for at tjekke om koden gør hvad der er tiltænkt.


Du kan bare slette den nu, den har ingen funktion i forhold til programmet


mvh kjeld


Besked fra: VC1
Posteringsdato: 30.Jul.2020 kl. 18:03
Det er modtaget - Tak for svar



Print side | Luk vindue