thomas1972
Goto Top

Tabellenblatt per VBA als Email versende. Range Bereich angeben??

Hallo,

mit folgendem Code lasse ich das Tabellenblatt1 per Mail als CSV Datei versenden.

Wie bekomme ich es hin, dass nur ein gewisser Rangebereich versendet wird.

mit z.b. ThisWorkbook.Worksheets("Tabelle1").Cells(1).Resize(14).Value ect..
kommt er nicht klar.

z.b. Spalten A-N


Sub Mail_CSV()
Dim csvFullName$
Dim strMailEmpfaenger As String
Dim quelle As Range

'Delimiter angeben
Const sDelimiter$ = ";"

strMailEmpfaenger = "fewf@dede.de"

If Application.MailSystem <> xlNoMailSystem Then
Dim vValue As Variant
Do
vValue = InputBox("Für welche Nummersoll gemeldet werden?", "Nummer")
If IsNumeric(vValue) Then Exit Do
Loop

csvFullName = ThisWorkbook.Path
If Right$(csvFullName, 1) <> "\" Then csvFullName = csvFullName & "\"
csvFullName = csvFullName & "CROSS_Keyuser " & vValue & ".csv"

Application.ScreenUpdating = False

'CSV erstellen
'sDelimiter, Datei, Tabelle
Export_CSV sDelimiter, csvFullName, ThisWorkbook.Worksheets("Tabelle1")

Workbooks.Open Filename:=csvFullName


Application.ActiveWorkbook.SendMail strMailEmpfaenger, "CROSS Keyuser - Neuanlagen / Änderungen Cross Betriebsnummer: " & vValue, False
End If
ActiveWorkbook.Close False

If Dir(csvFullName, vbNormal) <> "" Then
Kill csvFullName
End If

Application.ScreenUpdating = True
End Sub

Sub Export_CSV(sDelimiter As String, strDatei As String, oTabelle As Worksheet)
Dim rngBereich As Range, strString$
Dim F As Integer
'löschen wenn vorhanden
If Dir(strDatei, vbNormal) <> "" Then
Kill strDatei
DoEvents
End If

Set rngBereich = oTabelle.UsedRange
F = FreeFile
Open strDatei For Append As #F
With Application
If rngBereich.Columns.Count > 1 Then
For Each rngBereich In rngBereich.Rows
strString = Join(.Transpose(.Transpose(rngBereich)), sDelimiter)
Print #F, strString
Next rngBereich
Else
For Each rngBereich In rngBereich.Rows
Print #F, rngBereich.Value
Next rngBereich
End If
End With
Close #F
End Sub

Content-ID: 292990

Url: https://administrator.de/forum/tabellenblatt-per-vba-als-email-versende-range-bereich-angeben-292990.html

Ausgedruckt am: 23.12.2024 um 01:12 Uhr

114757
114757 13.01.2016 um 15:53:22 Uhr
Goto Top
Hier gibts die passende Funktion dafür:
Mittels VBA Makro Excel Zellen auslesen und diese in eine CSV Datei exportieren

Gruß jodel32