Avatar billede splokit Nybegynder
12. september 2006 - 14:16 Der er 61 kommentarer og
1 løsning

fiks vba kode vedhæft fil

er der ikke en som kan få denne kode til at virke så den vedhæfter filer

Private Declare Function ShellExecute Lib "shell32.dll" _
Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, _
ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long
Sub SendEMail()
    Dim Email As String, Subj As String
    Dim Msg As String, URL As String
    Dim r As Integer, x As Double
    Dim Disk As String, Filnavn As String
    Disk = C:
    ChDir Disk
    Filnavn = .pdf
'vedhæfted filer skal den finde i c:/text/
    For r = 2 To 25 'data in rows 2-4 Rem Get the email address
        Email = Cells(r, 21)
       
        If Cells(r, 21) <> "" Then
            bygMail r
        End If
    Next r
End Sub
Private Sub bygMail(r)
        Email = Cells(r, 21)
'      Message subject Format(Cells(r, 2), "hh:mm:ss")
        Subj = "" & "" & Cells(r, 4) & "" & Cells(r, 10) & "" & Cells(r, 16) & "" & Format(Now() + 1, "dddd dd mmmm yyyy") & "" & Format(Now(), "dddd mmmm yy hh:mm")
       
        '      Compose the message
        Msg = "" & Cells(r, 2) & vbCrLf
       
        If (Cells(r, 1)) <> "" Then
        Msg = Msg & vbCrLf & vbCrLf
        End If
       
        Select Case (Cells(r, 4))
    Case Is = "A"
        Msg = Msg & vbCrLf
    Case Is = "B"
        Msg = Msg & vbCrLf
    Case Is = "C"
        Msg = Msg & vbCrLf
    Case Is = "D"
        Msg = Msg & vbCrLf
    Case Is > 0
        Msg = Msg & vbCrLf
        .Attachments.Add Disk & "/text/" & Cells(r, 4) & "a" & Filnavn
        .Attachments.Add Disk & "/text/" & Cells(r, 4) & "B" & Filnavn
    End Select

        Select Case (Cells(r, 10))
    Case Is = "A"
        Msg = Msg & vbCrLf
    Case Is = "B"
        Msg = Msg & vbCrLf
    Case Is = "C"
        Msg = Msg & vbCrLf
    Case Is > 0
        Msg = Msg & vbCrLf 'Vedhæft fil her
        .Attachments.Add Disk & "/text/" & Cells(r, 10) & "a" & Filnavn
        .Attachments.Add Disk & "/text/" & Cells(r, 10) & "B" & Filnavn
    End Select
     
        Select Case (Cells(r, 16))
    Case Is = "A"
        Msg = Msg & vbCrLf
    Case Is = "B"
        Msg = Msg & vbCrLf
    Case Is = "C"
        Msg = Msg & vbCrLf
    Case Is > 0
        Msg = Msg & vbCrLf 'Vedhæft fil her
        .Attachments.Add Disk & "/text/" & Cells(r, 16) & "a" & Filnavn
        .Attachments.Add Disk & "/text/" & Cells(r, 16) & "B" & Filnavn
    End Select
               
        Msg = Msg & "" & vbCrLf
        Msg = Msg & "" & vbCrLf & vbCrLf & vbCrLf
       
        Msg = Msg & "" & vbCrLf
        Msg = Msg & "" & vbCrLf & vbCrLf
        Msg = Msg & "" & vbCrLf
        Msg = Msg & "" & vbCrLf & vbCrLf
        Msg = Msg & ""
'      Replace spaces with %20 (hex)
        Subj = Application.WorksheetFunction.Substitute(Subj, " ", "%20")
        Msg = Application.WorksheetFunction.Substitute(Msg, " ", "%20")
               
'      Replace carriage returns with %0D%0A (hex)
        Msg = Application.WorksheetFunction.Substitute(Msg, vbCrLf, "%0D%0A")
'      Create the URL
        URL = "mailto:" & Email & "?subject=" & Subj & "&body=" & Msg
       
'      Execute the URL (start the email client)
        ShellExecute 0&, vbNullString, URL, vbNullString, vbNullString, vbNormalFocus

'      Wait two seconds before sending keystrokes
'        Application.Wait (Now + TimeValue("0:00:02"))
'        Application.SendKeys "%s"
       
   

   
End Sub
Avatar billede bak Forsker
12. september 2006 - 15:03 #1
Hvilket mailprogram bruger du? -- Microsoft Outlook fra officepakken eller Outlook express ?
Avatar billede splokit Nybegynder
12. september 2006 - 16:16 #2
Microsoft Outlook 2002
Avatar billede bak Forsker
12. september 2006 - 17:01 #3
test denne her

Option Explicit

Sub SendEMail()
  Dim Email As String, Subj As String
  Dim MSG As String, URL As String
  Dim r As Integer, x As Double
 
  'vedhæfted filer skal den finde i c:/text/
  For r = 2 To 25  'data in rows 2-4 Rem Get the email address
      'Email = Cells(r, 21)
      If Cells(r, 21) <> "" Then
        bygMail r
      End If
  Next r
End Sub
Private Sub bygMail(r)
  Dim mailThis As Outlook.MailItem
  Dim MSG As String
  Dim Email As String
  Dim Subj As String
  Dim Disk As String, Filnavn As String
  Dim x As Long
  Disk = C:
  ChDir Disk
  Filnavn = .pdf

  Set mailThis = CreateItem(olMailItem)
  Email = Cells(r, 21)
  '      Message subject Format(Cells(r, 2), "hh:mm:ss")
  Subj = "" & "" & Cells(r, 4) & "" & Cells(r, 10) & "" & Cells(r, 16) & "" & Format(Now() + 1, "dddd dd mmmm yyyy") & "" & Format(Now(), "dddd mmmm yy hh:mm")

  '      Compose the message
  MSG = "" & Cells(r, 2) & vbCrLf

  If (Cells(r, 1)) <> "" Then
      MSG = MSG & vbCrLf & vbCrLf
  End If

  Select Case (Cells(r, 4))
      Case "A", "B", "C", "D"
        MSG = MSG & vbCrLf

      Case Is > 0
        MSG = MSG & vbCrLf
        mailThis.Attachments.Add Disk & "/text/" & Cells(r, 4) & "a" & Filnavn
        mailThis.Attachments.Add Disk & "/text/" & Cells(r, 4) & "B" & Filnavn
  End Select

  Select Case (Cells(r, 10))
      Case "A", "B", "C"
        MSG = MSG & vbCrLf

      Case Is > 0
        MSG = MSG & vbCrLf  'Vedhæft fil her
        mailThis.Attachments.Add Disk & "/text/" & Cells(r, 10) & "a" & Filnavn
        mailThis.Attachments.Add Disk & "/text/" & Cells(r, 10) & "B" & Filnavn
  End Select

  Select Case (Cells(r, 16))
      Case "A", "B", "C": MSG = MSG & vbCrLf

      Case Is > 0
        MSG = MSG & vbCrLf  'Vedhæft fil her
        mailThis.Attachments.Add Disk & "/text/" & Cells(r, 16) & "a" & Filnavn
        mailThis.Attachments.Add Disk & "/text/" & Cells(r, 16) & "B" & Filnavn
  End Select
  For x = 1 To 10
      MSG = MSG & vbCrLf
  Next
  '      Replace spaces with %20 (hex)
  Subj = Application.WorksheetFunction.Substitute(Subj, " ", "%20")
  MSG = Application.WorksheetFunction.Substitute(MSG, " ", "%20")

  '      Replace carriage returns with %0D%0A (hex)
  MSG = Application.WorksheetFunction.Substitute(MSG, vbCrLf, "%0D%0A")
  mailThis.Recipients.Add Email
  mailThis.Subject = Subj
  mailThis.Body = MSG
  mailThis.Send

End Sub
Avatar billede splokit Nybegynder
12. september 2006 - 18:14 #4
Laver fejl i: Dim mailThis As Outlook.MailItem
"Compile error: User-defined type not defined"
Avatar billede supertekst Ekspert
12. september 2006 - 18:40 #5
Er referencen til Outlook sat?
Avatar billede gider_ikke_mere Nybegynder
12. september 2006 - 19:17 #6
Avatar billede splokit Nybegynder
12. september 2006 - 19:43 #7
akyhne Jeg har ikke faste filer der er hele tiden nye.

supertekst. nu er den men så og har fikset
  Disk = "C:"
  ChDir Disk
  Filnavn = ".pdf"
men så køre koden men man kan ikke se om den har sendt noget i outlook!?
Avatar billede splokit Nybegynder
12. september 2006 - 20:11 #8
skal den ikke åbne dem så man selv skal trykke send!?
Avatar billede gider_ikke_mere Nybegynder
12. september 2006 - 20:18 #9
Hvad er det menigen at koden skal kunne?
Avatar billede splokit Nybegynder
12. september 2006 - 21:15 #10
til an lave en plan over ting folk skal lave:
Kolonne B er navne hvor en kode ud fra navnet ser om de har en mail, som den vil smide i kolonne U.

Det er her mail koden kommer den jeg bruger nu åbner alle den som har mail adresser og skriver hvad de skal række for række.

Men i Kolonne D J & P er et nr på en fil som de skal have så det er ikke samme fil hver gang og for hver kolonne med fil navn er der en a og b fil.
Avatar billede gider_ikke_mere Nybegynder
12. september 2006 - 23:07 #11
Som jeg forstår det: Hvis der står A, B, C eller D i celle B, skal der sendes en mail til adressen der står i U. Vedhæftede filer i D, J og P skal medsendes. Er det det?
Avatar billede splokit Nybegynder
13. september 2006 - 11:29 #12
Fra A2:T31 er der data og U2:U31 er opslageværdi fra B2:B31,

C, = Id nr
D, J, P, = aktivitets Id som a, b, c, d, & tal, hver af dem giver sin egen "msg" men hvis tal skal den vedhæfte filer så hvis "D4" = 44 skal den vedhæfte 44a.pdf & 44b.pdf på mailen det er så ud for hver række den skal gøre det.

Men det den endlig bare skal er at kunne ved hæfte filer ud fra en celle værdi.
Som men. hvis sagen er =
    Select Case (Cells(r, 4))
    Case Is = "A"
        Msg = Msg & "Besked A" & vbCrLf
    Case Is = "B"
        Msg = Msg & "Besked B" & vbCrLf
    Case Is = "C"
        Msg = Msg & "Besked C" & vbCrLf
    Case Is = "D"
        Msg = Msg & "Besked d" & vbCrLf
    Case Is > 0
        Msg = Msg & "Besked 0" & vbCrLf 'Vedhæft fil her hvis a, b, c, d, ej er sagen.
        mailThis.Attachments.Add Disk & "/text/" & Cells(r, 16) & "a" & Filnavn
        mailThis.Attachments.Add Disk & "/text/" & Cells(r, 16) & "B" & Filnavn
    End Select
Avatar billede splokit Nybegynder
13. september 2006 - 11:40 #13
For hver række i 2, 31 hvis der er en mail adresse i U2:U31 skal den lave en mail

i mailen skriver den en standart msg.
& Hvis der er værdi i D, J, P.
skriver den det som her

Standatr text
r = rækkenr
Msg 1. = r D, r "E:H"
Msg 2. = r J, r "K:N"
Msg 3. = r P, r "Q:T"

Standart text igen.

Hvis Msg. 1, 2, 3, var tal skal den vedhæfte filer
Avatar billede splokit Nybegynder
13. september 2006 - 11:42 #14
den skal gøre som den første kode den åbner mailen ud fra de mail adresser men vedhæfter bare ikke.
Avatar billede gider_ikke_mere Nybegynder
13. september 2006 - 12:02 #15
Så koden skal kigge efter mailadresse i U, vedhæfte filer med sammenkædet navn fra B-D, B-J og B-P, altså 3 vedhæftede filer hver gang, og sende til adressen i U?
Avatar billede splokit Nybegynder
13. september 2006 - 12:38 #16
Næsten til hver værdi i D, J, P er der 2 filer en a og en b men det er kun hvis Case is > 0 den skal vedhæfte filer ellers ikke.
Avatar billede gider_ikke_mere Nybegynder
13. september 2006 - 20:18 #17
Prøv denne.

Sub Send()
Dim I, L, Y, Filer, Tekst
Dim Besked As String, Drev As String, MinExt As String
Dim MitArray
Drev = "C:\text\"
MinExt = ".pdf"
MitArray = Range("A2:U25")
For I = 1 To UBound(MitArray)
    If MitArray(I, 21) Like "*@*" Then
        GoSub SendEnMail
    End If
Next

Exit Sub
SendEnMail:
    L = 0
    Filer = Array(MitArray(I, 4), MitArray(I, 10), MitArray(I, 16))
    Tekst = Array(MitArray(I, 5), MitArray(I, 6), MitArray(I, 7), MitArray(I, 8), MitArray(I, 11), MitArray(I, 12), MitArray(I, 13), MitArray(I, 14), MitArray(I, 17), MitArray(I, 18), MitArray(I, 19), MitArray(I, 20))
    Dim ObjOutlook As Outlook.Application
    Dim ObjOutLookMsg As Outlook.MailItem
    Dim ObjOutLookRecip As Outlook.Recipient
   
    Set ObjOutlook = CreateObject("Outlook.Application")
    Set ObjOutLookMsg = ObjOutlook.CreateItem(olMailItem)

    ObjOutLookMsg.Save
    Besked = "Hermed fremsendes " & vbCrLf
    With ObjOutLookMsg
        Set ObjOutLookRecip = .Recipients.Add(MitArray(I, 21))
        ObjOutLookRecip.Type = olTo
        For Y = 0 To 2
            If Filer(Y) > 0 And IsNumeric(Filer(Y)) Then
                If Dir(Drev & Filer(Y) & "a" & MinExt) <> "" And Dir(Drev & Filer(Y) & "b" & MinExt) <> "" Then
                    .Attachments.Add Drev & Filer(Y) & "a" & MinExt
                    .Attachments.Add Drev & Filer(Y) & "b" & MinExt
                    Besked = Besked & Filer(Y) & "a" & MinExt & ", " & Filer(Y) & "b" & MinExt & vbCrLf
                Else
                    Besked = Besked & "Fejl! Filen " & Drev & Filer(Y) & " version a eller b, kunne ikke findes!" & vbCrLf
                End If
            Else
                Select Case Filer(Y)
                Case "A"
                    Besked = Besked & Tekst(L + Y + 0) & vbCrLf
                Case "B"
                    Besked = Besked & Tekst(L + Y + 1) & vbCrLf
                Case "C"
                    Besked = Besked & Tekst(L + Y + 2) & vbCrLf
                Case "D"
                    Besked = Besked & Tekst(L + Y + 3) & vbCrLf
                End Select
            End If
            L = L + 3
        Next
        .Subject = "Hej"
        .Body = Besked
        .Save
        '.Send 'Fjern det første ' hvis mailen skal sendes og ikke puttes i kladde
    End With
    Set ObjOutlook = Nothing
Return

End Sub
Avatar billede splokit Nybegynder
14. september 2006 - 12:30 #18
'Virker men ikke helt med de beskeder.


'Sådan her skal den gøre det de tomme "" er en fast text jeg skal skrive ind

    '----------------------------------
        Subj = "" & "" & Cells(r, 4) & "" & Cells(r, 10) & "" & Cells(r, 16) & "" & Format(Now() + 1, "dddd dd mmmm yyyy") & "" & Format(Now(), "dddd mmmm yy hh:mm")
       
'      Compose the message
'      Navn på den som bliver mailet til
        MSG = "Hey " & Cells(r, 2) & vbCrLf
'      Hvis der er en tid skal denne her vises
        If (Cells(r, 1)) <> "" Then
            MSG = MSG & "" & Format(Cells(r, 1), "hh:mm") & vbCrLf & vbCrLf
        End If
'      For hver Række i r, 4
Select Case (Cells(r, 4))
        Case Is = "BX"
        MSG = MSG & "" & "" & Format(Cells(r, 5), "hh:mm") & "" & Cells(r, 6) & "" & Format(Cells(r, 7), "hh:mm") & "" & Cells(r, 8) & vbCrLf
    Case Is = "VB"
        MSG = MSG & "" & "" & Format(Cells(r, 5), "hh:mm") & "" & Cells(r, 6) & "" & Format(Cells(r, 7), "hh:mm") & "" & Cells(r, 8) & vbCrLf
    Case Is = "ST"
        MSG = MSG & "" & "" & Format(Cells(r, 5), "hh:mm") & "" & Cells(r, 6) & "" & Format(Cells(r, 7), "hh:mm") & "" & Cells(r, 8) & vbCrLf
    Case Is = "HG"
        MSG = MSG & "" & "" & Format(Cells(r, 5), "hh:mm") & "" & Cells(r, 6) & "" & Format(Cells(r, 7), "hh:mm") & "" & Cells(r, 8) & vbCrLf
    Case Is <> 0 'hvis man kan så i mellem 05 & 56
        MSG = MSG & "" & Cells(r, 4) & "" & Format(Cells(r, 5), "hh:mm") & "" & Cells(r, 6) & "" & Format(Cells(r, 7), "hh:mm") & "" & Cells(r, 8) & vbCrLf
'      .Attachments.Add A
'      .Attachments.Add B
    End If
Select Case (Cells(r, 10))
        Case Is = "BX"
        MSG = MSG & "" & "" & Format(Cells(r, 5), "hh:mm") & "" & Cells(r, 6) & "" & Format(Cells(r, 7), "hh:mm") & "" & Cells(r, 8) & vbCrLf
    Case Is = "VB"
        MSG = MSG & "" & "" & Format(Cells(r, 5), "hh:mm") & "" & Cells(r, 6) & "" & Format(Cells(r, 7), "hh:mm") & "" & Cells(r, 8) & vbCrLf
    Case Is = "ST"
        MSG = MSG & "" & "" & Format(Cells(r, 5), "hh:mm") & "" & Cells(r, 6) & "" & Format(Cells(r, 7), "hh:mm") & "" & Cells(r, 8) & vbCrLf
    Case Is = "HG"
        MSG = MSG & "" & "" & Format(Cells(r, 5), "hh:mm") & "" & Cells(r, 6) & "" & Format(Cells(r, 7), "hh:mm") & "" & Cells(r, 8) & vbCrLf
    Case Is <> 0 'hvis man kan så i mellem 05 & 56
        MSG = MSG & "" & Cells(r, 4) & "" & Format(Cells(r, 5), "hh:mm") & "" & Cells(r, 6) & "" & Format(Cells(r, 7), "hh:mm") & "" & Cells(r, 8) & vbCrLf
'      .Attachments.Add A
'      .Attachments.Add B
    End If
Select Case (Cells(r, 16))
        Case Is = "BX"
        MSG = MSG & "" & "" & Format(Cells(r, 5), "hh:mm") & "" & Cells(r, 6) & "" & Format(Cells(r, 7), "hh:mm") & "" & Cells(r, 8) & vbCrLf
    Case Is = "VB"
        MSG = MSG & "" & "" & Format(Cells(r, 5), "hh:mm") & "" & Cells(r, 6) & "" & Format(Cells(r, 7), "hh:mm") & "" & Cells(r, 8) & vbCrLf
    Case Is = "ST"
        MSG = MSG & "" & "" & Format(Cells(r, 5), "hh:mm") & "" & Cells(r, 6) & "" & Format(Cells(r, 7), "hh:mm") & "" & Cells(r, 8) & vbCrLf
    Case Is = "HG"
        MSG = MSG & "" & "" & Format(Cells(r, 5), "hh:mm") & "" & Cells(r, 6) & "" & Format(Cells(r, 7), "hh:mm") & "" & Cells(r, 8) & vbCrLf
    Case Is <> 0 'hvis man kan så i mellem 05 & 56
        MSG = MSG & "" & Cells(r, 4) & "" & Format(Cells(r, 5), "hh:mm") & "" & Cells(r, 6) & "" & Format(Cells(r, 7), "hh:mm") & "" & Cells(r, 8) & vbCrLf
'      .Attachments.Add A
'      .Attachments.Add B
    End If
'      Sidste det af beskeden
        MSG = MSG & "" & vbCrLf
        MSG = MSG & "" & vbCrLf & vbCrLf & vbCrLf
       
        MSG = MSG & "" & vbCrLf
        MSG = MSG & "" & vbCrLf & vbCrLf
        MSG = MSG & "" & vbCrLf
        MSG = MSG & "" & vbCrLf & vbCrLf
        MSG = MSG & ""
Avatar billede gider_ikke_mere Nybegynder
14. september 2006 - 12:44 #19
Var det til bak?
Avatar billede splokit Nybegynder
14. september 2006 - 12:58 #20
det var til dig akyhne
Avatar billede splokit Nybegynder
14. september 2006 - 12:59 #21
Men Bak's kode kan bare ikke finde ud af hex kode. ellers virker den "måske"
Avatar billede gider_ikke_mere Nybegynder
14. september 2006 - 13:11 #22
Kan du ikke fortælle hvad der står i de respektive celler?
Er den ovenstående kode en erstatning for hvad du tidligere skrev om tekster? Eller kan der stadig stå A, B, C og D, samt tal. Skal tallene være mellem 05 og 56?

Send evt et prøveark til gt4 at racingcar punkt dk. Det gør det meget nemmere!
Avatar billede gider_ikke_mere Nybegynder
14. september 2006 - 13:12 #23
Virker det ellers rigtig med vedhæftede filer?
Avatar billede splokit Nybegynder
14. september 2006 - 13:30 #24
Den virker med at vedhæfte filer
A = tid
B = Navn
C = Type
---------- Besked 1 hvis det er værdi
D = Id
E = Start
F = Sted
G = Slut
h = Sted
---------- Besked 1 Slut
I = Bemærkning til den som laver planen
---------- Besked 2 hvis det er værdi
J = Id
K = Start
L = Sted
M = Slut
N = Sted
---------- Besked 2 Slut
O = Bemærkning
---------- Besked 3 hvis det er værdi
P = Id
Q = Start
R = Sted
S= Slut
T = Sted
---------- Besked 3 Slut
U = Mail Adresser
Avatar billede splokit Nybegynder
14. september 2006 - 13:33 #25
det er fiktive Case har ikke fået det der skal stå i dem endnu
Avatar billede splokit Nybegynder
14. september 2006 - 13:58 #26
denne case ting

er det Case 11 To 55
eller er der en anden måde til det!?

Select Case Filer()
  Case "11" Or "12" Or "13" Or "14" 'Or Op til 55
End Select
Avatar billede gider_ikke_mere Nybegynder
14. september 2006 - 14:07 #27
If filer(Y) > 10 And filer(Y) < 56 Then
MSG = MSG & "" & "" & Format(Cells(r, 5), "hh:mm") & "" & Cells(r, 6) & "" & Format(Cells(r, 7), "hh:mm") & "" & Cells(r, 8) & vbCrLf
End if

... eller hvad du nu har brugt. Roder du i min eller bak's kode?
Avatar billede splokit Nybegynder
14. september 2006 - 14:08 #28
Id = "A" "B" "C" "D" og tal mellem 11 - 55.
Avatar billede splokit Nybegynder
14. september 2006 - 14:09 #29
akyhne din kode
Avatar billede gider_ikke_mere Nybegynder
14. september 2006 - 14:15 #30
Altså, hvis (ID er A eller B eller C eller D) & celle D er mellem 11 og 55), vedhæft filer og sæt tekst i mailbody fra celle E, F, G og H.
Er det forstået korrekt.

Hvis ovenstående betingelser ikke er tilstede, så gør det samme med bodytekst.
Skal det forstås sådan?

Skriv og forklar i stedet at give en masse formler.
Avatar billede splokit Nybegynder
14. september 2006 - 14:16 #31
Det end skal er at tage hver besker som en linje

                Select Case Filer(Y)
                Case "A"
                    Besked = Besked & "egen tekst" & vbCrLf
                Case "B"
                    Besked = Besked & "egen tekst" & vbCrLf
                Case "C"
                    Besked = Besked & "egen tekst" & vbCrLf
                Case "D"
                    Besked = Besked & "egen tekst" & Tekst(L + Y + 3) & vbCrLf
                If Filer(Y) > 11 And Filer(Y) < 55 Then
                    Besked = Besked & "nigger" & Tekst(Y + 3) & vbCrLf
                Case <> ""

                End Select
            End If
Avatar billede gider_ikke_mere Nybegynder
14. september 2006 - 14:17 #32
Jeg tror du er ude i en masse kode, for at løse et simpelt problem!
Avatar billede gider_ikke_mere Nybegynder
14. september 2006 - 14:18 #33
Skriv en forklaring, please!
Avatar billede splokit Nybegynder
14. september 2006 - 14:22 #34
Hvis betingelser = a, b, c, d, skal den ikke vedhæfte noget. men er den i mellem 11 <> 55 skal den og hvis betingelser ikke findes skal den ikke gøre noget.

If D = betingelser, skriv / vedhæft next if J = betingelser, skriv / vedhæft og
if p = betingelser, skriv / vedhæft. for hver mail hvis id et tom skal den gå til næste besked.
Avatar billede gider_ikke_mere Nybegynder
14. september 2006 - 14:31 #35
Den var nem. Men hvor kom...

Case Is = "BX"

...o.s.v. ind i billedet?
Avatar billede splokit Nybegynder
14. september 2006 - 14:56 #36
det var bare en hjerne fiktiv fis, i steden for A, b, c, tænkte det ville blive nemmer..
Avatar billede gider_ikke_mere Nybegynder
14. september 2006 - 16:22 #37
Prøv denne og se hvad der mangler:

Sub Send()
Dim I, L, Y, Filer, Tekst
Dim Besked As String, Drev As String, MinExt As String, Subj As String
Dim MitArray As Variant
Drev = "C:\text\"
MinExt = ".pdf"
MitArray = Range("A2:U25")
For I = 1 To UBound(MitArray)
    If MitArray(I, 21) Like "*@*" Then
        GoSub SendEnMail
    End If
Next

Exit Sub
SendEnMail:
    Subj = "" & "" & MitArray(I, 4) & "" & MitArray(I, 10) & "" & MitArray(I, 16) & "" & Format(Now() + 1, "dddd dd mmmm yyyy") & "" & Format(Now(), "dddd mmmm yy hh:mm")
    L = 0
    Filer = Array(MitArray(I, 4), MitArray(I, 10), MitArray(I, 16))
   
    Dim ObjOutlook As Outlook.Application
    Dim ObjOutLookMsg As Outlook.MailItem
    Dim ObjOutLookRecip As Outlook.Recipient
   
    Set ObjOutlook = CreateObject("Outlook.Application")
    Set ObjOutLookMsg = ObjOutlook.CreateItem(olMailItem)

    ObjOutLookMsg.Save
    Besked = "Hey " & MitArray(I, 2) & vbCrLf
    If (MitArray(I, 1)) <> "" Then
        Besked = Besked & "" & Format(MitArray(I, 1), "hh:mm") & vbCrLf & vbCrLf
    End If
    With ObjOutLookMsg
        Set ObjOutLookRecip = .Recipients.Add(MitArray(I, 21))
        ObjOutLookRecip.Type = olTo
        For Y = 0 To 2
            Tekst = "Start: " & Format(Cells(I + 1, 5 + L), "hh:mm") & " sted: " & Cells(I + 1, 6 + L) & " slut: " & Format(Cells(I + 1, 7 + L), "hh:mm") & " sted: " & Cells(I + 1, 8 + L) & vbCrLf
            If (Filer(Y) < 56 And 11 < Filer(Y)) Then
                If Dir(Drev & Filer(Y) & "a" & MinExt) <> "" And Dir(Drev & Filer(Y) & "b" & MinExt) <> "" Then
                    .Attachments.Add Drev & Filer(Y) & "a" & MinExt
                    .Attachments.Add Drev & Filer(Y) & "b" & MinExt
                    Besked = Besked & Tekst
                Else
                    Besked = Besked & "Fejl! Filen " & Drev & Filer(Y) & " version a eller b, kunne ikke findes!" & vbCrLf
                End If
            End If
            If Filer(Y) = "A" Or Filer(Y) = "B" Or Filer(Y) = "C" Or Filer(Y) = "D" Then
                Besked = Besked & Tekst
            End If
            L = L + 6
            D = D + 1
        Next
        Besked = Besked _
        & "1" & vbCrLf _
        & "2" & vbCrLf & vbCrLf & vbCrLf _
        & "3" & vbCrLf _
        & "4" & vbCrLf & vbCrLf _
        & "5" & vbCrLf _
        & "6" & vbCrLf & vbCrLf _
        & "7"
        .Subject = Subj
        .Body = Besked
        .Save
        '.Send 'Fjern det første ' hvis mailen skal sendes og ikke puttes i kladde
    End With
    Set ObjOutlook = Nothing
Return

End Sub
Avatar billede gider_ikke_mere Nybegynder
15. september 2006 - 10:42 #38
Nogen success?
Avatar billede splokit Nybegynder
15. september 2006 - 15:07 #39
Nej uden held..

Fejlen er de beskeder, og vedhæfter ikke.

Beskederne

Hvis den er = "A" skriv eks. anden dør
Hvis den er = "B" skriv eks. uden for
OSV...
Hvis den er = 11 <> 55 skriv eks. opgaver og vedhæft filer
det er kun for "D:D" så skal der være en for "J:J" og en for "P:P"

Men tror den bak har lavet virker har fjernet den hex del og lavet lidt om på den så virker den.
Avatar billede gider_ikke_mere Nybegynder
15. september 2006 - 15:14 #40
Det med teksterne forstår jeg ikke.

Hedder filerne da ikke 11a.pdf, 11b.pdf o.s.v?
Avatar billede splokit Nybegynder
15. september 2006 - 15:23 #41
Option Explicit

Sub SendEMail()
  Dim Email As String, Subj As String
  Dim MSG As String, URL As String
  Dim r As Integer, x As Double
 
For r = 4 To 30  'data in rows 2-4 Rem Get the email address
      'Email = Cells(r, 21)
      If Cells(r, 22) <> "" Then
        bygMail r
      End If
  Next r
End Sub
Private Sub bygMail(r)
  Dim mailThis As Outlook.MailItem
  Dim MSG As String
  Dim Email As String
  Dim Subj As String
  Dim Disk As String, Filnavn As String
  Dim x As Long
  Disk = "\\server\Data\Test\" & Format(Cells(r, 25), "DDDD")
  ChDir Disk
  Filnavn = ".pdf"

  Set mailThis = CreateItem(olMailItem)
  Email = Cells(r, 22)
  '      Message subject Format(Cells(r, 2), "hh:mm:ss")
        Subj = "Text" & "Text" & Cells(r, 5) & "Text" & Cells(r, 11) & "Text" & Cells(r, 17) & "Dato" & Format(Now() + 1, "dddd dd mmmm yyyy") & "Dato" & Format(Now(), "dddd mmmm yy hh:mm")

  '      Compose the message
  MSG = "Text" & Cells(r, 3) & vbCrLf

  If (Cells(r, 2)) <> "" Then
        MSG = MSG & "Text" & Format(Cells(r, 2), "hh:mm") & vbCrLf & vbCrLf
  End If

  Select Case (Cells(r, 5))
      Case "A"
        MSG = MSG & "Text" & "Text" & Format(Cells(r, 6), "hh:mm") & "Text" & Cells(r, 7) & "Text" _
        & Format(Cells(r, 8), "hh:mm") & "Text" & Cells(r, 9) & vbCrLf
      Case "B"
        MSG = MSG & "Text" & "Text" & Format(Cells(r, 6), "hh:mm") & "Text" & Cells(r, 7) & "Text" _
        & Format(Cells(r, 8), "hh:mm") & "Text" & Cells(r, 9) & vbCrLf
      Case "C"
        MSG = MSG & "Text" & "Text" & Format(Cells(r, 6), "hh:mm") & "Text" & Cells(r, 7) & " Til " _
        & Format(Cells(r, 8), "hh:mm") & "Text" & Cells(r, 9) & vbCrLf
      Case "D"
        MSG = MSG & "Text" & "Text" & Format(Cells(r, 6), "hh:mm") & "Text" & Cells(r, 7) & "Text" _
        & Format(Cells(r, 8), "hh:mm") & "Text" & Cells(r, 9) & vbCrLf
      Case 11 To 35
        MSG = MSG & "Text" & Cells(r, 5) & "Text" & Format(Cells(r, 6), "hh:mm") & "Text" & Cells(r, 7) & "Text" _
        & Format(Cells(r, 8), "hh:mm") & "Text" & Cells(r, 9) & vbCrLf
        mailThis.Attachments.Add Disk & Cells(r, 5) & "A" & Filnavn
        mailThis.Attachments.Add Disk & Cells(r, 5) & "B" & Filnavn
      Case Else
  End Select
 
  Select Case (Cells(r, 11))
      Case "A"
        MSG = MSG & "Text" & "Text" & Format(Cells(r, 12), "hh:mm") & "Text" & Cells(r, 13) & " Til " _
        & Format(Cells(r, 14), "hh:mm") & "Text" & Cells(r, 15) & vbCrLf
      Case "B"
        MSG = MSG & "Text" & "Text" & Format(Cells(r, 12), "hh:mm") & "Text" & Cells(r, 13) & "Text" _
        & Format(Cells(r, 14), "hh:mm") & "Text" & Cells(r, 15) & vbCrLf
      Case "C"
        MSG = MSG & "Text" & " Fra " & Format(Cells(r, 12), "hh:mm") & "Text" & Cells(r, 13) & "Text" _
        & Format(Cells(r, 14), "hh:mm") & "Text" & Cells(r, 15) & vbCrLf
      Case "D"
        MSG = MSG & "Text" & "Text" & Format(Cells(r, 12), "hh:mm") & "Text" & Cells(r, 13) & "Text" _
        & Format(Cells(r, 14), "hh:mm") & "Text" & Cells(r, 15) & vbCrLf
      Case 11 To 35
        MSG = MSG & "Text" & Cells(r, 11) & "Text" & Format(Cells(r, 12), "hh:mm") & "Text" & Cells(r, 13) & "Text" _
        & Format(Cells(r, 14), "hh:mm") & "Text" & Cells(r, 15) & vbCrLf
        mailThis.Attachments.Add Disk & Cells(r, 11) & "A" & Filnavn
        mailThis.Attachments.Add Disk & Cells(r, 11) & "B" & Filnavn
      Case Else
  End Select
 
  Select Case (Cells(r, 17))
      Case "A"
        MSG = MSG & "Text" & "Text" & Format(Cells(r, 18), "hh:mm") & "Text" & Cells(r, 19) & "Text" _
        & Format(Cells(r, 20), "hh:mm") & "Text" & Cells(r, 21) & vbCrLf
      Case "B"
        MSG = MSG & "Text" & "Text" & Format(Cells(r, 18), "hh:mm") & "Text" & Cells(r, 19) & "Text" _
        & Format(Cells(r, 20), "hh:mm") & "Text" & Cells(r, 21) & vbCrLf
      Case "C"
        MSG = MSG & "Text" & "Text" & Format(Cells(r, 18), "hh:mm") & "Text" & Cells(r, 19) & "Text" _
        & Format(Cells(r, 20), "hh:mm") & "Text" & Cells(r, 21) & vbCrLf
      Case "D"
        MSG = MSG & "Text" & "Text" & Format(Cells(r, 18), "hh:mm") & "Text" & Cells(r, 19) & "Text" _
        & Format(Cells(r, 20), "hh:mm") & "Text" & Cells(r, 21) & vbCrLf
      Case 11 To 35
        MSG = MSG & "Text" & Cells(r, 17) & "Text" & Format(Cells(r, 18), "hh:mm") & "Text" & Cells(r, 18) & "Text" _
        & Format(Cells(r, 20), "hh:mm") & "Text" & Cells(r, 21) & vbCrLf
        mailThis.Attachments.Add Disk & Cells(r, 17) & "A" & Filnavn
        mailThis.Attachments.Add Disk & Cells(r, 17) & "B" & Filnavn
      Case Else
  End Select
 
  For x = 1 To 1
        MSG = MSG & "Fast Text" & vbCrLf
        MSG = MSG & "Fast Text" & vbCrLf & vbCrLf & vbCrLf
       
        MSG = MSG & "Husk af se på de tider som er skrevet ud for hver løb, om der er klippet i ens ture" & vbCrLf
        MSG = MSG & "Fast Text" & vbCrLf & vbCrLf
        MSG = MSG & "Fast Text" & vbCrLf
        MSG = MSG & "Fast Text" & vbCrLf & vbCrLf
        MSG = MSG & "Fast Text"
  Next
 
  mailThis.Recipients.Add Email
  mailThis.Subject = Subj
  mailThis.Body = MSG
  mailThis.Save

End Sub
Avatar billede splokit Nybegynder
15. september 2006 - 15:25 #42
der er 3 faser. som her
  Select Case (Cells(r, 5))
      Case "A"
        MSG = MSG & "Text" & "Text" & Format(Cells(r, 6), "hh:mm") & "Text" & Cells(r, 7) & "Text" _
        & Format(Cells(r, 8), "hh:mm") & "Text" & Cells(r, 9) & vbCrLf
      Case "B"
        MSG = MSG & "Text" & "Text" & Format(Cells(r, 6), "hh:mm") & "Text" & Cells(r, 7) & "Text" _
        & Format(Cells(r, 8), "hh:mm") & "Text" & Cells(r, 9) & vbCrLf
      Case "C"
        MSG = MSG & "Text" & "Text" & Format(Cells(r, 6), "hh:mm") & "Text" & Cells(r, 7) & " Til " _
        & Format(Cells(r, 8), "hh:mm") & "Text" & Cells(r, 9) & vbCrLf
      Case "D"
        MSG = MSG & "Text" & "Text" & Format(Cells(r, 6), "hh:mm") & "Text" & Cells(r, 7) & "Text" _
        & Format(Cells(r, 8), "hh:mm") & "Text" & Cells(r, 9) & vbCrLf
      Case 11 To 35
        MSG = MSG & "Text" & Cells(r, 5) & "Text" & Format(Cells(r, 6), "hh:mm") & "Text" & Cells(r, 7) & "Text" _
        & Format(Cells(r, 8), "hh:mm") & "Text" & Cells(r, 9) & vbCrLf
        mailThis.Attachments.Add Disk & Cells(r, 5) & "A" & Filnavn
        mailThis.Attachments.Add Disk & Cells(r, 5) & "B" & Filnavn
      Case Else
  End Select
 
  Select Case (Cells(r, 11))
      Case "A"
        MSG = MSG & "Text" & "Text" & Format(Cells(r, 12), "hh:mm") & "Text" & Cells(r, 13) & " Til " _
        & Format(Cells(r, 14), "hh:mm") & "Text" & Cells(r, 15) & vbCrLf
      Case "B"
        MSG = MSG & "Text" & "Text" & Format(Cells(r, 12), "hh:mm") & "Text" & Cells(r, 13) & "Text" _
        & Format(Cells(r, 14), "hh:mm") & "Text" & Cells(r, 15) & vbCrLf
      Case "C"
        MSG = MSG & "Text" & " Fra " & Format(Cells(r, 12), "hh:mm") & "Text" & Cells(r, 13) & "Text" _
        & Format(Cells(r, 14), "hh:mm") & "Text" & Cells(r, 15) & vbCrLf
      Case "D"
        MSG = MSG & "Text" & "Text" & Format(Cells(r, 12), "hh:mm") & "Text" & Cells(r, 13) & "Text" _
        & Format(Cells(r, 14), "hh:mm") & "Text" & Cells(r, 15) & vbCrLf
      Case 11 To 35
        MSG = MSG & "Text" & Cells(r, 11) & "Text" & Format(Cells(r, 12), "hh:mm") & "Text" & Cells(r, 13) & "Text" _
        & Format(Cells(r, 14), "hh:mm") & "Text" & Cells(r, 15) & vbCrLf
        mailThis.Attachments.Add Disk & Cells(r, 11) & "A" & Filnavn
        mailThis.Attachments.Add Disk & Cells(r, 11) & "B" & Filnavn
      Case Else
  End Select
 
  Select Case (Cells(r, 17))
      Case "A"
        MSG = MSG & "Text" & "Text" & Format(Cells(r, 18), "hh:mm") & "Text" & Cells(r, 19) & "Text" _
        & Format(Cells(r, 20), "hh:mm") & "Text" & Cells(r, 21) & vbCrLf
      Case "B"
        MSG = MSG & "Text" & "Text" & Format(Cells(r, 18), "hh:mm") & "Text" & Cells(r, 19) & "Text" _
        & Format(Cells(r, 20), "hh:mm") & "Text" & Cells(r, 21) & vbCrLf
      Case "C"
        MSG = MSG & "Text" & "Text" & Format(Cells(r, 18), "hh:mm") & "Text" & Cells(r, 19) & "Text" _
        & Format(Cells(r, 20), "hh:mm") & "Text" & Cells(r, 21) & vbCrLf
      Case "D"
        MSG = MSG & "Text" & "Text" & Format(Cells(r, 18), "hh:mm") & "Text" & Cells(r, 19) & "Text" _
        & Format(Cells(r, 20), "hh:mm") & "Text" & Cells(r, 21) & vbCrLf
      Case 11 To 35
        MSG = MSG & "Text" & Cells(r, 17) & "Text" & Format(Cells(r, 18), "hh:mm") & "Text" & Cells(r, 18) & "Text" _
        & Format(Cells(r, 20), "hh:mm") & "Text" & Cells(r, 21) & vbCrLf
        mailThis.Attachments.Add Disk & Cells(r, 17) & "A" & Filnavn
        mailThis.Attachments.Add Disk & Cells(r, 17) & "B" & Filnavn
      Case Else
  End Select
Avatar billede gider_ikke_mere Nybegynder
15. september 2006 - 16:05 #43
Hvor i min kode går det galt med vedhæftning?
Har du husket at ændre sti i koden?
Avatar billede splokit Nybegynder
15. september 2006 - 16:28 #44
Jah men ved ikke hvor den laver fejlen den vedhæfter bare ikke..
Avatar billede splokit Nybegynder
15. september 2006 - 16:53 #45
nu virker det med ar vedhæfte filer. lille tryk fejl fra min side...

Her er et mail setup

Subject
Fast Besked + "B:B" ' Navn
Besked hvis celle har værdi = A:A Fast besked + A:A ' Tid
1. Plan Besked ' Hvis betingelser er der skriv beskedne og ny linje
    betingelser Hvis D:D =
    "A" Besked = Fast Besked + "E:H" ' E & G er tider
    "B" Besked = Fast Besked + "E:H" ' E & G er tider
    "C" Besked = Fast Besked + "E:H" ' E & G er tider
    "D" Besked = Fast Besked + "E:H" ' E & G er tider
    11<>55 Besked = Fast Besked + "E:H" ' E & G er tider
2. Plan Besked ' Hvis betingelser er der skriv beskedne og ny linje
    betingelser Hvis J:J =
    "A" Besked = Fast Besked + "K:N" ' K & M er tider
    "B" Besked = Fast Besked + "K:N" ' K & M er tider
    "C" Besked = Fast Besked + "K:N" ' K & M er tider
    "D" Besked = Fast Besked + "K:N" ' K & M er tider
    11<>55 Besked = Fast Besked + "K:N" ' K & M er tider
3. Plan Besked ' Hvis betingelser er der skriv beskedne og ny linje
    betingelser Hvis P:P =
    "A" Besked = Fast Besked + "Q:T" ' Q & S er tider
    "B" Besked = Fast Besked + "Q:T" ' Q & S er tider
    "C" Besked = Fast Besked + "Q:T" ' Q & S er tider
    "D" Besked = Fast Besked + "Q:T" ' Q & S er tider
    11<>55 Besked = Fast Besked + "Q:T" ' Q & S er tider
Fast Besked
Fast Besked
Fast Besked
Fast Besked
Avatar billede gider_ikke_mere Nybegynder
15. september 2006 - 17:30 #46
Ved du overhovedet hvordan du debugger koden i Excel?
Avatar billede gider_ikke_mere Nybegynder
15. september 2006 - 17:44 #47
Min kode gør som i eksemplet 15/09-2006 16:53:14, men ikke som 15/09-2006 15:25:41

Og hvilken fejl får du i arket, hvor stopper koden?
Avatar billede splokit Nybegynder
15. september 2006 - 18:00 #48
din kode virker med at vedhæfte filer.
men beskederne er ikke helt med

den stopper ikke den vedhæftede bare ikke men det gør den nu,
Avatar billede gider_ikke_mere Nybegynder
15. september 2006 - 18:09 #49
Og hvad skal ændres i beskeden?
Som det er nu:

Hey Navn2 (Fast + B)
10:00 (Fra A)
Start: 09:00 sted: Startsted 2 slut: 12:00 sted: Slutsted 2 (fra E:H)
Start: 10:30 sted: Startsted 2 slut: 16:00 sted: Slutsted 2 (fra K:N)
Start: 10:45 sted: Startsted 2 slut: 17:30 sted: Slutsted 2 (fra Q:T)
1 (Fast)
2 (Fast)

3 (Fast)
4 (Fast)
5 (Fast)
6 (Fast)
7 (Fast)
Avatar billede splokit Nybegynder
15. september 2006 - 21:55 #50
Din gør sådan
Hey Jørgen

06:15
Start:  sted:  slut:  sted:
1
2

3
4
5
6
7
Avatar billede gider_ikke_mere Nybegynder
16. september 2006 - 01:46 #51
Den fejl kan jeg ikke få frem. Du bruger ikke række 1, vel?
Avatar billede splokit Nybegynder
16. september 2006 - 10:20 #52
laver lige en fil så du kan se det...
Avatar billede gider_ikke_mere Nybegynder
16. september 2006 - 11:30 #53
Fint.
Avatar billede splokit Nybegynder
20. september 2006 - 12:54 #54
jeg kan ikke få din kode til at gøre som ønsket. men det kan jeg med koden fra bak så jeg holder mig til den.... Bak kom med svar
Avatar billede gider_ikke_mere Nybegynder
20. september 2006 - 13:24 #55
Hvor blev arket af?
Avatar billede splokit Nybegynder
20. september 2006 - 14:49 #56
Avatar billede gider_ikke_mere Nybegynder
20. september 2006 - 15:16 #57
Den kode du har lagt på sjokomans side, passer ikke til ovenstående ark. Har du koden?
Avatar billede splokit Nybegynder
20. september 2006 - 16:05 #58
nej den passer til hans ark. men ikke mit. vi bruger næsten det samme.
Avatar billede splokit Nybegynder
25. september 2006 - 17:11 #59
Bak kom med svar...
Avatar billede gider_ikke_mere Nybegynder
30. september 2006 - 22:43 #60
Baaak...
Avatar billede gider_ikke_mere Nybegynder
07. oktober 2006 - 12:57 #61
Skal vi ikke have lukket her, bak?
Avatar billede bak Forsker
07. oktober 2006 - 14:37 #62
sorry, følger ikke for godt med :-)
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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