Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1880to1884
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Tabellenblatt senden

Tabellenblatt senden
22.04.2022 21:00:18
Guesa
Hallo Forum
Möchte gerne ein Tabellenblatt versenden, für den BodyText, Mail To, CC und Betreff möchte ich die entsprechenden Daten aus Zellen einfügen.
Dabei bekomme ich eine Fehlermeldung angezeigt "Index außerhalb vom Bereich"
Was mache ich da falsch?

Sub Auswertung_Pivot_Senden()
'** Das aktive Tabellenblatt wird über Outlook versendet
'** Dimensionierung der Variablen
Dim strBlatt As String
Dim strDatei As String
Dim strPfad As String
Dim outObj As Object
Dim Mail As Object
Dim strBodyText As String
Set outObj = CreateObject("Outlook.Application")
Set Mail = outObj.CreateItem(0)
'** Pfad für temporäre Zwischenspeicherung angeben
strPfad = "D:\Auftragsverwaltung" 'entsprechend anpassen
'** Aktuelles aktives Blatt in neue Arbeitsmappe kopieren
strBlatt = ActiveSheet.Name
'** Gewähltes Tabellenblatt kopieren
Sheets(strBlatt).Copy
'** Blatt temporär in vorgegebenes Verzeichnis abspeichern
ActiveWorkbook.SaveAs strPfad & "\" & ActiveSheet.Name
'** Pfad und Dateiname der neuen Datei zwischenspeichern
strDatei = ActiveWorkbook.FullName
'** Body-Text festlegen               ab hier kommt die Fehlermeldung
strBodyText = Worksheets("Ausw1").Range("N1").Value & Chr(13) & Chr(13) _
& Worksheets("Ausw1").Range("O1").Value & Chr(13) & Worksheets("Ausw1").Range("P1").Value & Chr(13) _
& Worksheets("Ausw1").Range("Q1").Value
'** Mail erzeugen
With Mail
.To = Worksheets("Ausw1").Range("L1").Value
.CC = Worksheets("Ausw1").Range("M1").Value
.Subject = Worksheets("Ausw1").Range("O1").Value 'Betreff
.BodyFormat = 2 '2 = HTML, 1 = Text
.Attachments.Add strDatei 'Anhang
.Body = strBodyText 'Bodytext / Signatur
End With
'** Erzeugte Datei schließen
Workbooks(Dir(strDatei)).Close
'** Erzeugte Datei wieder löschen
Kill (strDatei)
'** E-Mail anzeigen
Mail.Display
End Sub
Für Eure Hilfe schon mal ein Danke schön
Gruß, Guesa

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblatt senden
22.04.2022 21:35:57
Yal
Moin Guesa,
"Index ausserhalb vom gültigen Bereich" bedeutet, dass Du vesuchst mit einem Bezeichner auf einem Element zuzugreifen, aber keines der vorhandenen Element hat diese Bezeichner.
In dem Fall tippe ich auf dem Worksheet "Ausw1", die es -nicht mehr- gibt oder nicht in dem aktiven Workbook.
Aber hier gibt es potentielel Fehelrquelle:

strBlatt = ActiveSheet.Name
Sheets(strBlatt).Copy
ActiveWorkbook.SaveAs strPfad & "\" & ActiveSheet.Name
nach dem Copy vom Activesheet ist das neue ActiveSheet die Kopie und nicht das original.
Nach diese 3 Zeilen, vielleicht Sheets(strBlatt).Activate anstossen.
Dieses Problem sollte aber die Quell des Übels sein.
VG
Yal
Anzeige
AW: Tabellenblatt senden
23.04.2022 09:12:00
Guesa
Hallo Yal
Dein Tipp das es Ausw1 nicht mehr gibt war die Lösung. Man ich bin sowas von Blind, ich wollte Ausw2 senden und habe die Verweise auf die Zellen
in Ausw1 kopiert, logisch das es dort nicht mehr gefunden werden kann.
Danke Dir für Deine Mühe
Gruß, Guesa
AW: Tabellenblatt senden
23.04.2022 10:17:09
Luschi
Hallo Guesa,
dieser Befehl
ActiveWorkbook.SaveAs strPfad & "\" & ActiveSheet.Name
kann Dir aber noch Kopfschmerzen bereiten, denn im Excel-Blattnamen sind Zeichen erlazbt, die von Windows im Dateinamen für ungültig erklärt werden- zB |
Gruß von Luschi
aus klein-Paris
AW: Tabellenblatt senden
23.04.2022 13:39:01
Guesa
Hallo Luschi
Danke für den Hinweis, dann werde ich diese mal vermeiden.
Gruß, Guesa
Anzeige
AW: Tabellenblatt senden
23.04.2022 13:51:47
Guesa
Hallo Luschi
Danke für den Hinweis, dann werde ich diese mal vermeiden.
Gruß, Guesa

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige