Anzeige
Archiv - Navigation
972to976
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
972to976
972to976
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Problem mit Übergabe Outlook

Problem mit Übergabe Outlook
02.05.2008 11:47:00
Marcus
Mit Hilfe diese Forums habe ich folgendes Scenario hinbekommen
Werbematerialbestellung
In Tabelle 1 wird ausgewählt Was bestellt wird und wieviel
Per Knopfdruck zieht er die Bestellungen von einer Bestandsliste ab und kopiert die Werte in eine Outlook Mail, die ich dann noch bearbeiten kann und verschicken kann.
Habe jetzt noch hinzugefügt das er danch die ausgefüllten Zellen (ist ein bestimmter Bereich) wieder leeren soll und das Dokument schließen und abspeichern soll.
Rufe momentan das Schließen nicht auf da er vorne schon ein Problem hat und zwar übergibt er die Daten (ausser Mailadresse und Betreff) nicht mehr ins Outlook, habe schon mit Sleep experimentiert, sowohl an der Stelle wo es jetzt steht und vor Call Zellenleeren. Leider keinen Erfolg, er macht immer das Outlook auf übergibt Mailadresse und Betreff und löscht dann nur die Zellen.
Hier der Code

Dim MyBestellung As String
Private Sub CommandButton1_Click()
Dim Bereich As Long, Such As Range
For Bereich = 4 To Cells(Rows.Count, 1).End(xlUp).Row
If Cells(Bereich, 2).Value > "" Then
With Tabelle2
Set Such = .Range("B:B").Find(What:=Cells(Bereich, 2).Value, LookIn:=xlValues, LookAt:=xlWhole) _
_
If Not Such Is Nothing And IsNumeric(Cells(Bereich, 3).Value) Then
Such.Offset(0, 1) = CLng(Such.Offset(0, 1)) - CLng(Cells(Bereich, 3).Value)
End If
End With
End If
Next Bereich
Set Such = Nothing
Call MailSenden
End Sub
Sub MailSenden()
Dim MyOutApp As Object, MyMessage As Object
Set MyOutApp = CreateObject("Outlook.Application")
Set MyMessage = MyOutApp.CreateItem(0)
With MyMessage
.To = "test@tester.de"
.Subject = "Bestellung Werbematerialien"
.Display
End With
ActiveSheet.Range("A1:" & Cells(Rows.Count, 3).End(xlUp).Address).Copy
Sleep (50)
Application.SendKeys ("%bi")
Set MyOutApp = Nothing
Set MyMessage = Nothing
Call Zellenleeren
End Sub
Sub Zellenleeren()
Range("B3:C28").ClearContents
End Sub
Sub Schliessen()
Workbooks("Werbematerial.xls").Close SaveChanges:=True
End Sub


8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Die Frage ist, Was ist die Frage? (owT)
02.05.2008 11:57:00
Renee

AW: Die Frage ist, Was ist die Frage? (owT)
02.05.2008 12:02:27
Marcus
Die Frage ist : Warum er mir die eigentlichen Daten nicht mehr ins Outlook übergibt, sobald ich Zellenleeren aufrufe?
Meiner Ansicht nach ist der Code schneller, aber wie gesagt mit Sleep hab ich schon rumprobiert.

AW: Die Frage ist, Was ist die Frage? (owT)
02.05.2008 12:12:00
Renee
Hi Marcus,
Ich sehe nirgends einen Befehl, der dir Daten ins Outlook überträgt.
Und den Code, der vorher funktioniert haben soll, kann ich auch nicht sehen.
GreetZ Renée

AW: Die Frage ist, Was ist die Frage? (owT)
02.05.2008 12:25:00
Marcus
Mit dem Code hier hats funktioniert.
If Cells(Bereich, 2).Value > "" Then
With Tabelle2
Set Such = .Range("B:B").Find(What:=Cells(Bereich, 2).Value, LookIn:=xlValues, LookAt:=xlWhole)
If Not Such Is Nothing And IsNumeric(Cells(Bereich, 3).Value) Then
Such.Offset(0, 1) = CLng(Such.Offset(0, 1)) - CLng(Cells(Bereich, 3).Value)
End If
End With
End If
Next Bereich
Set Such = Nothing
Call MailSenden
End Sub



Sub MailSenden()
Dim MyOutApp As Object, MyMessage As Object
Set MyOutApp = CreateObject("Outlook.Application")
Set MyMessage = MyOutApp.CreateItem(0)
With MyMessage
.To = "test@tester"
.Subject = "Bestellung Werbematerialien"
.Display
End With
ActiveSheet.Range("A1:" & Cells(Rows.Count, 3).End(xlUp).Address).Copy
Sleep (50)
Application.SendKeys ("%bi")
Set MyOutApp = Nothing
Set MyMessage = Nothing
End Sub


Anzeige
Kein Unterschied...
02.05.2008 12:47:00
Renee
ist sichtbar, ausser dem Aufruf der Zellenleeren.
In dem Code sind allerdings einige unsauber referenzierte Ranges, wie Cells(Rows.Count, ...
Ich kann überhaupt keine Aussage machen oder Hilfestellung geben. Lad halt eine Beispielmappe hoch.
GreetZ Renée

AW: Kein Unterschied...
02.05.2008 13:34:00
Renee
Hi Marcus,
Ich weiss nicht, aber versuch's mal so:

Sub MailSenden()
Dim MyOutApp As Object, MyMessage As Object, MyData As DataObject
Set MyOutApp = CreateObject("Outlook.Application")
Set MyMessage = MyOutApp.CreateItem(0)
Set MyData = New DataObject
ActiveSheet.Range("A1:" & Cells(Rows.Count, 3).End(xlUp).Address).Copy
MyData.GetFromClipboard
With MyMessage
.To = "test@tester.de"
.Subject = "Bestellung Werbematerialien"
.Display
.Body = MyData.GetText(1)
End With
Set MyOutApp = Nothing
Set MyMessage = Nothing
Call Zellenleeren
End Sub


GreetZ Renée

Anzeige
AW: Kein Unterschied...
02.05.2008 14:29:00
Marcus
Danke Geht,
aber die Formatierungen gehen flöten, sprich die schöne Tabelle, er übergibt nur den Text.
Gibts da noch einen Tip.
Danke
Grüße
Marcus

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige