Avatar billede johnfm Nybegynder
28. december 2004 - 20:16 Der er 9 kommentarer og
1 løsning

Fejl i makroen sendautomail?

Hej ekspert.

Der opstår en fejl i Filen/makroen nedenfor.

Filen/Makroen ”sendautomail” henter, som eks., de filer for uge 45 til 52 hvor der i ”B8” er skrevet en værdi.

Fejlen opstår i firmaet ”SIM”, hvor der er skrevet en værdi i ”B8” for alle ugerne 45-52, her hentes filer med navnet SIM i uge 45, 46, 49, 50, 51 og 52, men i uge 47 og 48 springer den over til firmaet Simonsen og henter de to filer hvor der er skrevet værdier i ”B8” og vedhæfter
dem Mailen til SIM.

Nu mangler SIM filerne for uge 47 og 48 og Simonsen får ingen filer for uge 47 og 48, selv om de opfylder betingelserne.

Er der nogen der har et bud på fejlen.



Function CreateMail(astrRecip As Variant, _
                  astrCCpers As Variant, _
                  strSubject As String, _
                  strMessage As String, _
                  Optional astrAttachments As Variant) As Boolean

  Dim olApp                As Outlook.Application
  Dim objNewMail            As Outlook.MailItem
  Dim varAttach            As Variant
  Dim blnResolveSuccess    As Boolean

  On Error GoTo CreateMail_Err

  Set olApp = New Outlook.Application
      Set myNameSpace = olApp.GetNamespace("MAPI")
  Set myFolder = myNameSpace.GetDefaultFolder(olFolderDrafts)
      Set objNewMail = olApp.CreateItem(olMailItem)

  With objNewMail
      .Recipients.Add (astrRecip)
     
      If Not astrCCpers = "" Then
        Set test = .Recipients.Add(astrCCpers)
        test.Type = olCC
      End If
     
      For Each varAttach In astrAttachments
        If Not IsEmpty(varAttach) Then .Attachments.Add varAttach
      Next varAttach
      .Subject = strSubject
      .Body = strMessage
   
      .Save    '.Send
     
  End With

  CreateMail = True

CreateMail_End:
  Exit Function
CreateMail_Err:
  CreateMail = False
 
  Resume CreateMail_End
End Function

Sub BatchProcess()
Dim FS As FileSearch
Dim FilePath As String, FilePathStart As String
Dim i As Integer, j As Integer
Dim v As Variant
Dim C As Range, rgFCell As Range
Dim Firmaer As Range
Dim Cell2Get
Const sheet As String = "Opgørelse"

With ThisWorkbook.Sheets(1)
    Set Firmaer = .Range("A2:A" & .Range("A65536").End(xlUp).Row)
End With
FilePathStart = ThisWorkbook.path
Cell2Get = "B8"
Application.ScreenUpdating = False
Set FS = Application.FileSearch
For Each C In Range("F1:M1")
    With FS
        .NewSearch                                                         
        .LookIn = FilePathStart & "\" & C & "\"
        .FileType = msoFileTypeExcelWorkbooks           
        .SearchSubFolders = False
        .Execute
        If .FoundFiles.Count = 0 Then GoTo Igen
        For i = 1 To .FoundFiles.Count
            v = Split(.FoundFiles(i), Application.PathSeparator)
            FilePath = Left(.FoundFiles(i), InStrRev(.FoundFiles(i), Application.PathSeparator))
            If GetValue(FilePath, v(UBound(v)), sheet, Cell2Get) > 0 Then
                For Each rgFCell In Firmaer
                    If UCase(v(UBound(v))) Like "??" & UCase(rgFCell) & "*" Then    '*****ændret
                        Cells(rgFCell.Row, C.Column) = .FoundFiles(i)
                        Exit For
                    End If
                Next
            End If
        Next i
    End With
Igen:
Next
End Sub


Private Function GetValue(path, file, sheet, range_ref)
Dim arg As String
arg = "'" & path & "[" & file & "]" & sheet & "'!" & Range(range_ref).Range("A1").Address(, , xlR1C1)
GetValue = ExecuteExcel4Macro(arg)
End Function


Sub Main()
Dim vfiler
Dim x As Boolean
Dim C As Range
BatchProcess
For Each C In Range("B2:B" & Range("B65536").End(xlUp).Row)
   
    vfiler = Range("F" & C.Row, "O" & C.Row)
   
    x = CreateMail(C.Value, C.Offset(0, 1), C.Offset(0, 2), C.Offset(0, 3), vfiler) 'ændret
   
    If x = False Then MsgBox C.Value & "  ikke oprettet"
Next
End Sub
Avatar billede bak Forsker
28. december 2004 - 20:41 #1
Fejlen sker højst sansynlig i denne linie
If UCase(v(UBound(v))) Like "??" & UCase(rgFCell) & "*" Then    '*****ændret

prøv at ændre den til
If UCase(v(UBound(v))) Like "??" & UCase(rgFCell) & ".xls" Then 

De to ?? betyder at den ikke skal chekke på de to første karakterer.
* betød at den ikke skulle checke på alt det der stod efter firmanavnet
Det sidste er så nu lavet om til at der bare skal stå .xls

?? for uge
UCase(rgFCell) for firmanavn med stort
".xls" for endelsen
Avatar billede johnfm Nybegynder
28. december 2004 - 22:21 #2
Den opretter fint mail til alle firmaerne, men den vedhæfter ingen filer.?
Avatar billede johnfm Nybegynder
28. december 2004 - 22:26 #3
Filerne i mappe uge01 hedder 01SIM2004 og 01Simonsen2004.
Avatar billede bak Forsker
28. december 2004 - 23:14 #4
Prøv så lige det her
If UCase(v(UBound(v))) Like "??" & UCase(rgFCell) & "????.xls" Then
Avatar billede johnfm Nybegynder
28. december 2004 - 23:24 #5
Det ændre ikke noget, den opretter fint mail til alle firmaerne, men den vedhæfter ingen filer.
Avatar billede bak Forsker
28. december 2004 - 23:34 #6
den vedhæfter ingen filer fodi den ikke finder nogen der matcher beskrivelsen
prøv lige at indsætte listen over filnavnene her. (komplet)
Avatar billede johnfm Nybegynder
29. december 2004 - 06:38 #7
Her er den komplette liste over filnavne, der tilføjes et uge nr. for den aktuelle uge
Aalborg_Industries2004
BJARNE_LIINs_EFT2004
Fagerberg2004
Fuglsang2004
Grønbech & Sønner2004
Uggerly_EL2004
Dansk_Procesteknik2004
Persolit2004
L_G_Montage2004
Siemens2004
Service_Nord2004
SGD_BERA2004
SIM2004
Simonsen_&_Wendt2004
Aagaards_Industriservice2004
Toppenberg2004
Aalborg_Stilladser2004
E_Toppenberg2004
Norisol2004
Promecon2004
DanskIndustriSkadeservice2004
Semco2004
Force_Indtituttet2004
Desmi2004
BWE2004
Avatar billede bak Forsker
29. december 2004 - 13:08 #8
ok, nu lykkedes det for mig at få fejlen også
dette burde kunne gøre det( pas nøje på paranteserne):

If UCase(v(UBound(v))) Like "??" & UCase(rgFCell & "200?.xls") Then
Avatar billede johnfm Nybegynder
29. december 2004 - 17:55 #9
Nu har jeg testet den på flere forskellige måder, men den virker perfekt.
bak smid lige et svar så du kan få dinne velfortjente point, godtnytår og tak for MANGE gode svar i 2004. Håber du også stiller op i 2005
Avatar billede bak Forsker
29. december 2004 - 18:09 #10
velbekomme og godt nytår til dig også (mange gode spm i år :-))
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