Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1716to1720
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

Problem Userform

Problem Userform
07.10.2019 10:50:16
Thomas
Guten Morgen
Ich starte Excel und Userform1 wird angezeigt, alles funktioniert. Über einen Button wechsel ich in die Userform2, und blende Userform1 mit Userform1.hide aus.
Wenn ich erst in Userform1 das Makro "email_with_range_UF1" ausführe und im Anschluss in der Userform2 "Dispo_Mail_UF2" klappt alles.
Wenn ich aber umgedreht mache, also erst Userform2, Makro "Dispo_email_UF2" und dann in die Userform1 wechsel und "email_with_range_UF1" ausführen will, wird zwar der richtige Email Verteiler angesprochen, aber das Bild von "Dispo_email_UF2" eingefügt.
Was mache bzw. wo liegt der Fehler?
Hier die beiden Makros
Sub email_with_range_UF1()
Application.ActiveWorkbook.RefreshAll
Dim TempFilePath As String
Dim xOutApp As Object
Dim xOutMail As Object
Dim xHTMLBody As String
Dim xRg As Range
On Error Resume Next
Set xRg = Worksheets("Drucken").Range("A1:AJ57")
If xRg Is Nothing Then Exit Sub
With Application
.Calculation = xlManual
.ScreenUpdating = False
.EnableEvents = False
End With
Set xOutApp = CreateObject("outlook.application")
Set xOutMail = xOutApp.CreateItem(olMailItem)
Call createJpg(ActiveSheet.Name, xRg.Address, "DashboardFile")
TempFilePath = Environ$("temp") & "\"
xHTMLBody = "
" _ & "
" _ With xOutMail .Subject = "" & "" & ThisWorkbook.Worksheets("Drucken").Range("BJ12") .HTMLBody = xHTMLBody .Attachments.Add TempFilePath & "DashboardFile.jpg", olByValue .To = "Test@Test.de" .GetInspector .Display '.Send End With Application.DisplayAlerts = False ThisWorkbook.Saved = True 'Call Drucken_Konzern End Sub
Sub createJpg(SheetName As String, xRgAddrss As String, nameFile As String)
Dim xRgPic As Range
ThisWorkbook.Activate
Worksheets("Drucken").Activate
Set xRgPic = ThisWorkbook.Worksheets(SheetName).Range(xRgAddrss)
xRgPic.CopyPicture
With ThisWorkbook.Worksheets("Drucken").ChartObjects.Add(xRgPic.Left, xRgPic.Top, xRgPic. _
Width, xRgPic.Height)
.Activate
.Chart.Paste
.Chart.Export Environ$("temp") & "\" & nameFile & ".jpg", "JPG"
End With
Worksheets("Drucken").ChartObjects(Worksheets("Drucken").ChartObjects.Count).Delete
Set xRgPic = Nothing
End Sub

Sub mail_Dispo_UF2()
Application.ActiveWorkbook.RefreshAll
Dim TempFilePath As String
Dim xOutApp As Object
Dim xOutMail As Object
Dim xHTMLBody As String
Dim xRg As Range
On Error Resume Next
Set xRg = Worksheets("Zeitplan").Range("A1:AJ27")
If xRg Is Nothing Then Exit Sub
With Application
.Calculation = xlManual
.ScreenUpdating = False
.EnableEvents = False
End With
Set xOutApp = CreateObject("outlook.application")
Set xOutMail = xOutApp.CreateItem(olMailItem)
Call createJpg(ActiveSheet.Name, xRg.Address, "DashboardFile")
TempFilePath = Environ$("temp") & "\"
xHTMLBody = "
" _ & "
" _ With xOutMail .Subject = "" & "" & ThisWorkbook.Worksheets("Zeitplan").Range("R2") .HTMLBody = xHTMLBody .Attachments.Add TempFilePath & "DashboardFile.jpg", olByValue .To = "Dipso.Test@Test.de" .GetInspector .Display '.Send End With Application.DisplayAlerts = False ThisWorkbook.Saved = True 'Call Drucken_Zeitplan End Sub
Sub createJpg(SheetName As String, xRgAddrss As String, nameFile As String)
Dim xRgPic As Range
ThisWorkbook.Activate
Worksheets("Zeitplan").Activate
Set xRgPic = ThisWorkbook.Worksheets("Zeitplan").Range(xRgAddrss)
xRgPic.CopyPicture
With ThisWorkbook.Worksheets("Zeitplan").ChartObjects.Add(xRgPic.Left, xRgPic.Top, xRgPic. _
Width, xRgPic.Height)
.Activate
.Chart.Paste
.Chart.Export Environ$("temp") & "\" & nameFile & ".jpg", "JPG"
End With
Worksheets("Zeitplan").ChartObjects(Worksheets("Zeitplan").ChartObjects.Count).Delete
Set xRgPic = Nothing
End Sub

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Problem Userform
07.10.2019 11:52:10
Torsten
Hallo Thomas,
wenn diese Subs alle in der gleichen Datei sind, wundert es mich, dass das ueberhaupt funktioniert. Du hast die Sub createJpg zweimal mit dem gleichen Namen. Zwar im Code mit unterschiedlichen Worksheets aber immernoch der gleiche Name fuer die Sub. Normalerweise muesste das eine Fehlermeldung geben.
Gruss Torsten
AW: Problem Userform
07.10.2019 12:00:34
Thomas
Ok.
Leider habe ich diese Makro zusammengesucht, da ich wenig Kenntnisse habe.
Welche Daten im Code muss ich denn ändern, damit es zwei Codes sind?
Sub createJpg(SheetName As String, xRgAddrss As String, nameFile As String)
Dim xRgPic As Range
ThisWorkbook.Activate
Worksheets("Zeitplan").Activate
Set xRgPic = ThisWorkbook.Worksheets("Zeitplan").Range(xRgAddrss)
xRgPic.CopyPicture
With ThisWorkbook.Worksheets("Zeitplan").ChartObjects.Add(xRgPic.Left, xRgPic.Top, xRgPic.  _
_
Width, xRgPic.Height)
.Activate
.Chart.Paste
.Chart.Export Environ$("temp") & "\" & nameFile & ".jpg", "JPG"
End With
Worksheets("Zeitplan").ChartObjects(Worksheets("Zeitplan").ChartObjects.Count).Delete
Set xRgPic = Nothing
End 

Sub

Anzeige
AW: Problem Userform
07.10.2019 13:21:28
Torsten
Hallo Thomas,
die Sub createJpg wird nur einmal benoetigt, wenn man die Variablen richtig uebergibt. Deshalb ist wahrscheinlich dein Code immer durcheinander gekommen und hat immer das gleiche createJpg aufgerufen, wenn du die Reihenfolge geaendert hast. Deshalb immer das Bild vom falschen Sheet.
Versuchs mal bitte wie folgt:

Option Explicit
Sub email_with_range_UF1()
Application.ActiveWorkbook.RefreshAll
Dim TempFilePath As String
Dim xOutApp As Object
Dim xOutMail As Object
Dim xHTMLBody As String
Dim xRg As Range
On Error Resume Next
Set xRg = Worksheets("Drucken").Range("A1:AJ57")
If xRg Is Nothing Then Exit Sub
With Application
.Calculation = xlManual
.ScreenUpdating = False
.EnableEvents = False
End With
Set xOutApp = CreateObject("outlook.application")
Set xOutMail = xOutApp.CreateItem(olMailItem)
Call createJpg("Drucken", xRg.Address, "DashboardFile")
TempFilePath = Environ$("temp") & "\"
xHTMLBody = ""
" _
" _
With xOutMail
.Subject = "" & "" & ThisWorkbook.Worksheets("Drucken").Range("BJ12")
.HTMLBody = xHTMLBody
.Attachments.Add TempFilePath & "DashboardFile.jpg", olByValue
.To = "Test@Test.de"
.GetInspector
.Display
'.Send
End With
Application.DisplayAlerts = False
ThisWorkbook.Saved = True
'Call Drucken_Konzern
End Sub
Sub createJpg(SheetName As String, xRgAddrss As String, nameFile As String)
Dim xRgPic As Range
ThisWorkbook.Activate
Worksheets(SheetName).Activate
Set xRgPic = ThisWorkbook.Worksheets(SheetName).Range(xRgAddrss)
xRgPic.CopyPicture
With ThisWorkbook.Worksheets(SheetName).ChartObjects.Add(xRgPic.Left, xRgPic.Top, xRgPic.  _
_
Width, xRgPic.Height)
.Activate
.Chart.Paste
.Chart.Export Environ$("temp") & "\" & nameFile & ".jpg", "JPG"
End With
Worksheets(SheetName).ChartObjects(Worksheets(SheetName).ChartObjects.Count).Delete
Set xRgPic = Nothing
End Sub
Sub mail_Dispo_UF2()
Application.ActiveWorkbook.RefreshAll
Dim TempFilePath As String
Dim xOutApp As Object
Dim xOutMail As Object
Dim xHTMLBody As String
Dim xRg As Range
On Error Resume Next
Set xRg = Worksheets("Zeitplan").Range("A1:AJ27")
If xRg Is Nothing Then Exit Sub
With Application
.Calculation = xlManual
.ScreenUpdating = False
.EnableEvents = False
End With
Set xOutApp = CreateObject("outlook.application")
Set xOutMail = xOutApp.CreateItem(olMailItem)
Call createJpg("Zeitplan", xRg.Address, "DashboardFile")
TempFilePath = Environ$("temp") & "\"
xHTMLBody = ""
" _
" _
With xOutMail
.Subject = "" & "" & ThisWorkbook.Worksheets("Zeitplan").Range("R2")
.HTMLBody = xHTMLBody
.Attachments.Add TempFilePath & "DashboardFile.jpg", olByValue
.To = "Dipso.Test@Test.de"
.GetInspector
.Display
'.Send
End With
Application.DisplayAlerts = False
ThisWorkbook.Saved = True
'Call Drucken_Zeitplan
End Sub

lass mich wissen, wenn noch was falsch laeuft.
Gruss Torsten
Anzeige
AW: Problem Userform
08.10.2019 08:10:38
Thomas
Hallo
Erstmal riesen Dank für Deine Hilfe.
Ich habe das Marko in ein Modul gepackt, jetzt hängt er sich bei:
Set xOutMail = xOutApp.CreateItem(olMailItem)
auf.
Variable nicht definiert olMailItem
Gruß
Thomas
AW: Problem Userform
08.10.2019 08:14:15
Thomas
Ahh, Fehler gefunden, Option Explicit stand oben.
Der Code funktioniert !!!
Vielen lieben Dank Torsten.
gerne...
08.10.2019 08:24:05
Torsten
Danke fuer die Rueckmeldung

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige