Avatar billede pollo Nybegynder
27. oktober 2009 - 15:40 Der er 14 kommentarer og
1 løsning

fællesdokument

Hej
Jeg har lavet et regneark der skal  bruges af flere brugere. Er der nogen der kan hjælpe med at lave det således at når en bruger har indtastet noget i det fælles ark  sendes en e-mail besked om ændringer til de øvrige brugere. Mvh Knud
Avatar billede supertekst Ekspert
27. oktober 2009 - 16:18 #1
Via Outlook?
Avatar billede supertekst Ekspert
27. oktober 2009 - 16:40 #2
VBA-koden anbringes i ønskede ark(Højreklik Vis programkode)

Const modtagerListe = "aa@supertekst-it.dk;bb@supertekst-it.dk" 'tilpasses
Const områdeForÆndring = "A1:C4"                'tilpasses

Private Sub worksheet_change(ByVal Target As Excel.Range)
    If Not Intersect(Target, Range(områdeForÆndring)) Is Nothing Then
        sendMail ("Følgende er ændret: " & CStr(Target.Address))
    End If
End Sub
Private Sub sendMail(meddelelse)
Dim mailApp, Namespace, nyMail
Dim emne, body

    emne = "Regnarket xxx.xls er ændret!"
    body = meddelelse
   
    On Error GoTo sendMailFejl
   
    Set mailApp = CreateObject("Outlook.Application")
    Set Namespace = mailApp.GetNamespace("MAPI")

    Set nyMail = mailApp.CreateItem(olMailItem)
    Set TilModtager = nyMail.Recipients.Add(modtagerListe)
       
    nyMail.Subject = emne
    nyMail.body = meddelelse
   
    nyMail.Display

Rem Automaisk send - fjern Rem
Rem    nyMail.Send
    Exit Sub
   
sendMailFejl:
    Stop
    Resume Next
End Sub
Avatar billede supertekst Ekspert
27. oktober 2009 - 16:41 #3
Glemte lige:

Referencen for OutLook skal sættes i VBA / Tools / References
Avatar billede pollo Nybegynder
27. oktober 2009 - 19:02 #4
tak -
der sker en fejl når scriptet kommer til automatisk send.

Jeg har måske også udtrykt mig lidt uklart. Som det er nu sendes der en mail ved enhver ændring i regnearket. Det jeg mente , men ikke fik skrevet helt klart, var at når der var lavet en ændring og regnearket var gemt.

Jeg er heller ikke helt med på hvad du mener med " Referencen for OutLook skal sættes i VBA / Tools / References "  hvor skal dette ændres - sættes

mvh Knud
Avatar billede supertekst Ekspert
27. oktober 2009 - 23:06 #5
Vedr. reference:

Fra regnearket / Alt+F11(VBA-vinduet åbnes) / Tools / References / referencer står i alfabetisk orden - find Microsoft Outloook... - sæt flueben + OK - luk VBA vinduet.

Retter koden -
Avatar billede supertekst Ekspert
27. oktober 2009 - 23:19 #6
Rem Version 2
Rem =========
Rem Koden indsættes i ThisWorkbook i VBA-vinduet <<<<<<<------
Rem ============================================

Const modtagerListe = "aa@supertekst-it.dk;bb@supertekst-it.dk"
Const områdeForÆndring = "A1:C4"
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    If ActiveWorkbook.Saved = False Then
        ActiveWorkbook.Save
        afSendMail
    End If
End Sub
Private Sub afSendMail()
Dim mailApp, Namespace, nyMail
Dim emne, body

    emne = "Regnarket xxx.xls er ændret!"
    body = meddelelse
   
    On Error GoTo sendMailFejl
   
    Set mailApp = CreateObject("Outlook.Application")
    Set Namespace = mailApp.GetNamespace("MAPI")

    Set nyMail = mailApp.CreateItem(olMailItem)
    Set TilModtager = nyMail.Recipients.Add(modtagerListe)
       
    nyMail.Subject = emne
    nyMail.body = ""
   
    nyMail.Display

Rem Automaisk send - fjern Rem
Rem    nyMail.Send
    Exit Sub
   
sendMailFejl:
    Stop
    Resume Next
End Sub
Avatar billede pollo Nybegynder
28. oktober 2009 - 00:03 #7
tak igen -  jeg kan ikke få det til at køre. har gjort som du har beskrevet men det sker ikke noget.
Avatar billede supertekst Ekspert
28. oktober 2009 - 10:01 #8
Er koden indsat i ThisWorkbook i VBA? (tidligere kode slettet?)

Når du lukker regnearket - så udføres
"Private Sub Workbook_BeforeClose(Cancel As Boolean"

Hvis der har været ændret - så GEMMES ARKET AUTOMATISK og der sendes en mail.

Hvis du selv gemmer arket - registreres ændringen ikke af ovennævnte Sub.

Men det kan der gøres noget ved...
Avatar billede pollo Nybegynder
28. oktober 2009 - 10:14 #9
jaså  - det forklarer selvfølgelig  og det kunne den opmærksomme også selv have læst.

så kører det  men der komme en boks op der advarer mod at et program prøver at komme ind i min adressebog. ?

efter jeg har givet tilladelse  kommer jeg ind i mailen og skal derfra trykke send

jeg kan ikke få den til at sende automtisk hvilket ville være ønskeligt.

Jeg vil gerne om du kan lave det således at kun er når brugeren manuelt gemmer regnearket at koden startes koden og kun i dette tilfælde. Din version er smart nok men det kræver jo at man logger ud.

Jeg håber jeg har fået det hele med
mvh Knud
Avatar billede supertekst Ekspert
28. oktober 2009 - 10:25 #10
nyMail.Display

Rem Automaisk send - fjern Rem
Rem    nyMail.Send
    nyMail.Display

Rem Automaisk send - fjern Rem
Rem    nyMail.Send
-------------------------
rettes til nedenstående
-------------------------
Rem  nyMail.Display

Rem Automaisk send - fjern Rem
      nyMail.Send


For at forhindre meddelelsen: Et program forsøger....

DownLoad: www.contextmagic.com/express-clickyes/free-version.htm
Avatar billede supertekst Ekspert
28. oktober 2009 - 10:37 #11
Rem Version 3
Rem =========
Rem Koden indsættes i ThisWorkbook i VBA-vinduet
Rem ============================================
Const modtagerListe = "aa@supertekst-it.dk;bb@supertekst-it.dk"
Const områdeForÆndring = "A1:C4"
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    afSendMail
End Sub
Private Sub afSendMail()
Dim mailApp, Namespace, nyMail
Dim emne, body

    emne = "Regnarket xxx.xls er ændret!"
    body = meddelelse
   
    On Error GoTo sendMailFejl
   
    Set mailApp = CreateObject("Outlook.Application")
    Set Namespace = mailApp.GetNamespace("MAPI")

    Set nyMail = mailApp.CreateItem(olMailItem)
    Set TilModtager = nyMail.Recipients.Add(modtagerListe)
       
    nyMail.Subject = emne
    nyMail.body = ""
   
Rem nyMail.Display

Rem Automaisk send - fjern Rem
    nyMail.Send
    Exit Sub
   
sendMailFejl:
Rem    Stop
    Resume Next
End Sub
Avatar billede pollo Nybegynder
28. oktober 2009 - 12:33 #12
nu er den ved at være der -  jeg kan bare ikke tilføje flere mailadresser i modtagerliste
Avatar billede supertekst Ekspert
28. oktober 2009 - 12:44 #13
Åbn VBA-vinduet(Alt+F11) - koden ses i ThisWorkbook


Const modtagerListe = "aa@supertekst-it.dk;bb@supertekst-it.dk;cc@supertekst-it.dk"

o.s.v.
Gem & Luk VBA-vinduet
Avatar billede pollo Nybegynder
28. oktober 2009 - 12:55 #14
yes  - det regnede jeg også med men det er kun når der kun er en enkelt modtager i linien at  koden fortsætter
Avatar billede supertekst Ekspert
28. oktober 2009 - 13:08 #15
prøv at sende din fil til mig (mailadr. under min profil)
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
Kategori
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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