ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   E-Mail (https://www.excelbanter.com/excel-programming/326598-e-mail.html)

Roger

E-Mail
 
I receive via e-mail 25 spreadsheets every week to consolidate into a group
report. I have constant problems with idiots forgetting to attach the file,
attaching the wrong file, attaching the shortcut. I have been experimenting
with automating the sending of these files to me. However,having read and
tried many of the suggestions on e-mailing with zero success, am I asking too
much to devise code that would work on all these different PC's with
different mailers and very varied versions of windows & office.
--
Roger

Patrick Molloy[_2_]

E-Mail
 
You could do it very easily.
set up a folder on your network that your users have write access to. In
this folder you may want sub-folders whose names are datestamps...eg 20050315
This is useful as they are easy to sort & check.

Each work book can now have some very simple code to generate a text file
which is saved in the datestamped folder

This code in the user's workbook...its not sophisticated since we're using
various versions of Office and/or Excel...so kept simple:

Sub Submit_Data()
Dim sFileName As String
Dim text As String, vText As Variant
Dim rw As Long
Dim cl As Long

Const FileName As String = "H:\MyData\DATESTAMP\USER_Data.txt"

sFileName = Replace(FileName, "USER", Environ$("username"))
sFileName = Replace(sFileName, "DATESTAMP", Format$(Date, "YYYYMMDD"))

Open sFileName For Output As #1

For rw = 1 To 30
text = ""
For cl = 1 To 5
text = text & "," & Cells(rw, cl)
Next
text = Mid(text, 2)
Print #1, text
Next
Close

End Sub

you'll need to set the rows/columns etc but this tested OK

Your own workbook will need to read in all the data...follows...









"Roger" wrote:

I receive via e-mail 25 spreadsheets every week to consolidate into a group
report. I have constant problems with idiots forgetting to attach the file,
attaching the wrong file, attaching the shortcut. I have been experimenting
with automating the sending of these files to me. However,having read and
tried many of the suggestions on e-mailing with zero success, am I asking too
much to devise code that would work on all these different PC's with
different mailers and very varied versions of windows & office.
--
Roger


Patrick Molloy[_2_]

E-Mail
 
part 2
This is th esimple code that you'd need to read in data from all the files
in the dated folder. As with the previous code, the assumption is that there
are 5 columns. The import puts the file name in the first column, so you know
"who" sent it

Option Explicit
Sub MergeData()

Const FolderName As String = "H:\MyData\DATESTAMP\"
Dim sFolderName As String

Dim rw As Long
Dim fn As String
Dim ws As Worksheet
Set ws = Worksheets.Add
Dim text As String
sFolderName = Replace(FolderName, "DATESTAMP", Format$(Date, "yyyymmdd"))
fn = Dir(sFolderName)
Do While fn < ""

Open sFolderName & fn For Input As #1
Do Until EOF(1)
text = ""
Line Input #1, text

rw = rw + 1
With ws
.Cells(rw, 1) = fn
.Range(.Cells(rw, 2), .Cells(rw, 6)) = Split(text, ",")
End With
Loop
Close
fn = Dir()

Loop

End Sub

Not the use of good old DIR() ! we could have done something classy with
Scripting FileSystemObject, but this isn't really necessary.

"Patrick Molloy" wrote:

You could do it very easily.
set up a folder on your network that your users have write access to. In
this folder you may want sub-folders whose names are datestamps...eg 20050315
This is useful as they are easy to sort & check.

Each work book can now have some very simple code to generate a text file
which is saved in the datestamped folder

This code in the user's workbook...its not sophisticated since we're using
various versions of Office and/or Excel...so kept simple:

Sub Submit_Data()
Dim sFileName As String
Dim text As String, vText As Variant
Dim rw As Long
Dim cl As Long

Const FileName As String = "H:\MyData\DATESTAMP\USER_Data.txt"

sFileName = Replace(FileName, "USER", Environ$("username"))
sFileName = Replace(sFileName, "DATESTAMP", Format$(Date, "YYYYMMDD"))

Open sFileName For Output As #1

For rw = 1 To 30
text = ""
For cl = 1 To 5
text = text & "," & Cells(rw, cl)
Next
text = Mid(text, 2)
Print #1, text
Next
Close

End Sub

you'll need to set the rows/columns etc but this tested OK

Your own workbook will need to read in all the data...follows...









"Roger" wrote:

I receive via e-mail 25 spreadsheets every week to consolidate into a group
report. I have constant problems with idiots forgetting to attach the file,
attaching the wrong file, attaching the shortcut. I have been experimenting
with automating the sending of these files to me. However,having read and
tried many of the suggestions on e-mailing with zero success, am I asking too
much to devise code that would work on all these different PC's with
different mailers and very varied versions of windows & office.
--
Roger



All times are GMT +1. The time now is 04:29 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ExcelBanter.com