Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1188to1192
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
Bevor als Mail versenden
Heinz
Hallo Leute
Habe hier ein Super Makro zum Emailversenden eines Tabellenblatt von Beverly bekommen.
Nochmals Danke an Beverly.
Nun hätte ich ein paar Fragen dazu.
1. Sollte das zu versendende Tab.Blatt den Namen von Sheets Personalbesetung
C5 & Q5 & U5 haben.
2. Sollte der Shapes 6 gelöscht werden im neuen Sheets,bevor versendet wird.
3. Sollte der Betreff "Personalbesetung " & von Sheets Personalbesetung
C5 & Q5 & U5 haben.
Wäre mir dazu bitte jemand behilflich ?
Gruß
Heinz
Option Explicit
Sub einzelnes_blatt_senden()
'* 24.08.06, 22.04.07                             *
'* erstellt von Karin, http://beverly.excelhost.de*
'* beverly@excelhost.de                           *
Dim strTabelle As String                ' Variable für den Tabellennamen
Dim wsTabelle As Worksheet              ' Variable für die Tabelle als Objekt
'   Tabelle2 als Standard festlegen
strTabelle = "Personalbesetzung"
'   Name der zu versendenen Tabelle abfragen
strTabelle = InputBox("Welches Blatt möchten Sie senden?" & vbCrLf & _
vbCrLf & "Bitte den Tabellennamen eingeben", , strTabelle)
'   kein Abbruch der Eingabe
If strTabelle  "" Then
'       Schleife über alle Arbeitsblätter
For Each wsTabelle In ThisWorkbook.Sheets
'           Name der Tabelle entspricht dem der zu versendenen Tabelle
If wsTabelle.Name = strTabelle Then
'               Bildschirmaktualisierung aus
Application.ScreenUpdating = False
'               Tabelle komplett kopieren
Sheets(strTabelle).Copy
'               aktive Arbeitsmappe mit Mailbenachrichtigung "Diese Tabelle wurde als Mail  _
versandt" versenden
ActiveWorkbook.SendMail ThisWorkbook.Worksheets("Personalbesetzung").Cells(5,  _
26), "Diese Tabelle wurde als Mail versandt"
'               aktive Arbeitsmappe schließen ohne Speichern
ActiveWorkbook.Close False
'               Bildschirmaktualisierung ein
Application.ScreenUpdating = True
'               Schleife verlassen
Exit For
Else
'               Tabelle mit dem eingegebenen Namen ist nicht vorhanden
If wsTabelle.Name = ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count).Name Then  _
MsgBox "Diese Tabelle gibt es nicht"
End If
Next wsTabelle
End If
End Sub

AW: Bevor als Mail versenden
07.12.2010 12:08:32
Heinz
Hallo Leute
Punkt 3 .habe ich selbst hingebracht:
'aktive Arbeitsmappe mit Mailbenachrichtigung "Diese Tabelle wurde als Mail versandt" versenden
ActiveWorkbook.SendMail ThisWorkbook.Worksheets("Personalbesetzung").Cells(5, 26), "Personalbesetzung" & " " & Worksheets("Personalbesetzung").Cells(5, 17) & " Schicht " & Worksheets("Personalbesetzung").Cells(5, 21)

Aber zu Punkt1 & 2 bräuchte ich bitte noch Hilfe
Gruß
Heinz
AW: Bevor als Mail versenden
07.12.2010 13:03:50
Rudi
Hallo,
so?
Sub einzelnes_blatt_senden()
'* 24.08.06, 22.04.07                             *
'* erstellt von Karin, http://beverly.excelhost.de*
'* beverly@excelhost.de                           *
Dim strTabelle As String                ' Variable für den Tabellennamen
Dim wsTabelle As Worksheet              ' Variable für die Tabelle als Objekt
'   Tabelle2 als Standard festlegen
With Sheets("Personalbesetzung")
strTabelle = .Range("C5") & .Range("Q5") & .Range("U5")
End With
If strTabelle  "" Then
'       Schleife über alle Arbeitsblätter
For Each wsTabelle In ThisWorkbook.Sheets
'           Name der Tabelle entspricht dem der zu versendenen Tabelle
If wsTabelle.Name = strTabelle Then
'               Bildschirmaktualisierung aus
Application.ScreenUpdating = False
'               Tabelle komplett kopieren
Sheets(strTabelle).Copy
ActiveSheet.Shapes(6).Delete
'               aktive Arbeitsmappe mit Mailbenachrichtigung "Diese Tabelle wurde als  _
Mail _
versandt" versenden
ActiveWorkbook.SendMail ThisWorkbook.Worksheets("Personalbesetzung").Cells(5, _
26), "Diese Tabelle wurde als Mail versandt"
'               aktive Arbeitsmappe schließen ohne Speichern
ActiveWorkbook.Close False
'               Bildschirmaktualisierung ein
Application.ScreenUpdating = True
'               Schleife verlassen
Exit For
Else
'               Tabelle mit dem eingegebenen Namen ist nicht vorhanden
If wsTabelle.Name = ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count).Name Then _
MsgBox "Diese Tabelle gibt es nicht"
End If
Next wsTabelle
End If
End Sub

Gruß
Rudi
Anzeige
AW: Bevor als Mail versenden
07.12.2010 13:10:37
Heinz
Hallo Rudi
Erstmals Danke.
Jetzt bekomme ich aber
MsgBox "Diese Tabelle gibt es nicht"
Gruß
Heinz
AW: Bevor als Mail versenden
07.12.2010 13:21:49
Rudi
Hallo,
dann ergibt sich kein gültiger Tabellenname aus den 3 Zellen.
Geh den Code doch mal mit F8 durch und prüfe den Inhalt von strTabelle.
Gruß
Rudi
AW: Bevor als Mail versenden
07.12.2010 13:49:12
Rudi
Hallo,
tatsächlich nicht?
Das Blatt Personalbesetzung02.02.20111 gibt es nicht in der Mappe.
Gruß
Rudi
Anzeige
AW: Bevor als Mail versenden
07.12.2010 13:54:33
Heinz
Hallo Rudi
Aber hier funktioniert es auch.
Gruß
Heinz
Option Explicit
Sub einzelnes_blatt_senden()
'* 24.08.06, 22.04.07                             *
'* erstellt von Karin, http://beverly.excelhost.de*
'* beverly@excelhost.de                           *
Dim strTabelle As String                ' Variable für den Tabellennamen
Dim wsTabelle As Worksheet              ' Variable für die Tabelle als Objekt
'   Tabelle2 als Standard festlegen
ActiveSheet.DrawingObjects.Visible = False
strTabelle = "Personalbesetzung"
'   Name der zu versendenen Tabelle abfragen
'strTabelle = InputBox("Welches Blatt möchten Sie senden?" & vbCrLf & _
'vbCrLf & "Bitte den Tabellennamen eingeben", , strTabelle)
'   kein Abbruch der Eingabe
If strTabelle  "" Then
'       Schleife über alle Arbeitsblätter
For Each wsTabelle In ThisWorkbook.Sheets
'           Name der Tabelle entspricht dem der zu versendenen Tabelle
If wsTabelle.Name = strTabelle Then
'               Bildschirmaktualisierung aus
Application.ScreenUpdating = False
'               Tabelle komplett kopieren
Sheets(strTabelle).Copy
'aktive Arbeitsmappe mit Mailbenachrichtigung "Diese Tabelle wurde als Mail versandt" versenden
ActiveWorkbook.SendMail ThisWorkbook.Worksheets("Personalbesetzung").Cells(5,  _
26), "Personalbesetzung" & _
" " & Worksheets("Personalbesetzung").Cells(5, 17) & " Schicht " & Worksheets(" _
Personalbesetzung").Cells(5, 21)
'               aktive Arbeitsmappe schließen ohne Speichern
ActiveWorkbook.Close False
'               Bildschirmaktualisierung ein
Application.ScreenUpdating = True
'               Schleife verlassen
Exit For
Else
'               Tabelle mit dem eingegebenen Namen ist nicht vorhanden
If wsTabelle.Name = ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count).Name Then  _
MsgBox "Diese Tabelle gibt es nicht"
End If
Next wsTabelle
End If
ActiveSheet.DrawingObjects.Visible = True
End Sub

Anzeige
AW: Bevor als Mail versenden
07.12.2010 14:53:16
Rudi
Hallo,
Zitat:
1. Sollte das zu versendende Tab.Blatt den Namen von Sheets Personalbesetung
C5 & Q5 & U5 haben.

Und dieses Blatt gibt es nicht in deiner Mappe.
Oder soll die Kopie so genannt werden?
Gruß
Rudi
AW: Bevor als Mail versenden
07.12.2010 15:23:30
Heinz
Hallo Rudi
Ja, Bitte die Kopie sollte denn Namen von Personalbesetzung
C5 & Q5 & U5 haben.
Danke
Heinz
Kauf dir mal ne U5-Brille ;-) (owT)
07.12.2010 15:33:49
Renee

AW: Kauf dir mal ne U5-Brille ;-) (owT)
07.12.2010 15:37:38
Heinz
Hallo Renee
Bitte - Wie ?
Was willst du damit sagen ?
Heinz
Lesen - Bildet! (owT)
07.12.2010 15:43:16
Renee

AW: Lesen - Bildet! (owT)
07.12.2010 16:52:32
Heinz
Also Renee
Bitte Antorte Sachgemäß oder unterlasse solche Bemerkungen.
Solch eine Aussage

Lesen - Bildet!
finde ich eine Frechheit.
Bin schwer Entäuscht von dir!!!
Heinz
Anzeige
Hier eine Sachgemäße Antorte ...
07.12.2010 17:00:48
Renee
, die zwar grammatikalisch falsch und voller Rechtschreibefehler ist, Heinz
Vielleicht hilft es dir, wenn du mal den Inhalt der Zellen:
C5 Q5 und U5 ohne Abstände dazwischen auf ein Blatt Papier schreibst.
Dann vergleichst du das Wort auf dem Papier mit deinen Tabellenreiter-Namen und zwar Zeichen für Zeichen. Solltest du am Schluss nicht bei jedem Zeichen mit "ja stimmt" geantwortet haben, hast du ein Problem!
GreetZ Renée
Wie Lesen - Bildet! ein Frechheit sein kann, übersteigt meinen Horizont ;-)
AW: Hier eine Sachgemäße Antorte ...
07.12.2010 17:17:40
Heinz
Hallo Renee
Warum sollte die Copie nicht so heißen?
C5=Personalbesetzung & " " & Q5=01.04.2011 & " " & U5=1
Gruß
Heinz
Anzeige
Fragen auf Fragen, sind keine Antworten
07.12.2010 19:00:51
Renee
Heinz,
Bist du deinen Code mit F8 durchgegangen? NEIN!
Hast du versucht zu verstehen, was der Code macht? NEIN!
Hast du eine Ahnung, warum jetzt die Meldung Diese Tabelle gibt es nicht aufpoppt? NEIN!
Du darfst den Namen erst nach dem Kopieren des Blatts zusammensetzen und dem ActiveSheet zuweisen:
  Sheets(strTabelle).Copy
With ThisWorkbook.Sheets("Personalbesetzung")
ActiveSheet.Name = .Range("C5").Text & " " & .Range("Q5").Text & " " & .Range("U5").Text
End With
..... jetzt .SendMail !
GreetZ Renée
Anzeige
AW: Fragen auf Fragen, sind keine Antworten
07.12.2010 19:22:30
Heinz
Hallo Renee
Ich wußte das ich mich auf dich verlassen kann.
Bin wieder Happy - Jetzt ist die Welt wieder in Ordnung!
Werde mir deinen Rat wirklich zu Herzen nehmen
Lesen - Bildet!
Recht herzlichen Dank
Gruß
Heinz

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige