Softpicks.Net  Deutsch Foren-Übersicht Softpicks.Net Deutsch
Software Forum Deutsch
 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Ebay e-mails Durchsuchen und Adressenspeichern
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    Softpicks.Net Deutsch Foren-Übersicht -> Microsoft Outlook
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Brandmeir Gerhard



Anmeldedatum: 01.01.1970
Beiträge: 39

BeitragVerfasst am: Fr Okt 15, 2004 4:46 pm    Titel: Ebay e-mails Durchsuchen und Adressenspeichern Antworten mit Zitat



Hallo Michael

Vielen Dank für deine Antwort hat mir meine ersten Befürchtungen das es
nicht möglich währe genommen.

> nette Leute findest Du hier eine ganze Menge Smile
weiss ich

> Deine Aufgabe ist lösbar - und auch gar nicht so kompliziert.
> Voraussetzung ist eben, dass das Format gleich bleibt. Ob Du das nun mit
> einem HTML-Parser machst (ziemlich schweres Geschütz für die paar
> Zeilen) oder "von Hand" erledigst (das würde ich in diesem Fall
> vorziehen) bleibt Dir überlassen.

OK von Hand

> Mal ein paar Anhaltspunkte:
Super die brauch ich auch

> - In MailItem.HtmlBody findet Du den HTML-Inhalt einer E-Mail.
> - Mit der Instr-Funktion kannst Du Zeichenketten in diesem Inhalt suchen
> und erfährst deren Position.
> - Mit der Mid$-Funktion kannst Du prima auf Teilstrings aus dem ganzen
> zugreifen.
Hier stetzts schon mal aus ich weiss gar nicht wie ich anfangen soll !

ok ich weiss aus Access das ich mit Private Sub u.s.w arbeiten kann und habe
für meine Verhältnisse schon viel gemacht nur hier weiss ich nicht wie ich
es im VBA Editor anfangen.
Soll ich das als Function oder Modul machen ?
Ich fang mal von vorne an:

Ich öffne mein Outlook 2000 dann öffne ich mein VBA Editor dann steht links
Projekt1 u.s.w. DieseOutlookSitzung und kann dann rechts mein VBA code
eintragen.

Wenn ich jetzt der Reihe nach und nach dem Verstand anfangen würde, würd ich
als erstes eine Schaltfläche erstellen.
Hier ist das ganz anders als in Access da habe ich meine Schaltfläche und
sag bei Klicken und dann wird das schon im VBA Editor eingtragen nur wie
mach ich das in Outlook

Nun würde ich folgendes machen :

Folder = "EbayOrdner"
Do While ( Email exists in Outlook Folder named "EbayOrdner" )
Open Email

hier müsste ich dann ja dann denn Weizen vom Spreu Trennen nur fehlt mir
leider das Wissen dazu

und hier dann die Daten in einer Access DB Speichern

Loop

Ich steht als Ochs vorm Berg könntest du mir da nochmal behilflich sein ?


Gruss

Gerhard




.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Michael Bauer



Anmeldedatum: 01.01.1970
Beiträge: 759

BeitragVerfasst am: Fr Okt 15, 2004 8:47 pm    Titel: Ebay e-mails Durchsuchen und Adressenspeichern Antworten mit Zitat



Hallo Gerhard,

> Ich öffne mein Outlook 2000 dann öffne ich mein VBA Editor dann steht
links
> Projekt1 u.s.w. DieseOutlookSitzung und kann dann rechts mein VBA code
> eintragen.

das ist doch schon mal was :-)

"DieseOutlookSitzung" ist unter VBA zwingend Dein Ausgangspunkt. Linke
Box über dem Codemodul, "Application" wählen, in der rechten dann
"Startup". Diese Methode ruft OL beim Start auf, hier beginnt also Dein
Werk. (Die eben automatisch erstellte Funktion "ItemSend" kannst Du
löschen.)

> Wenn ich jetzt der Reihe nach und nach dem Verstand anfangen würde,
würd ich
> als erstes eine Schaltfläche erstellen.

Ok, dafür verwendest Du die CommandBars-Liste des ActiveExplorer. Wirf
mal einen Blick in den Objektkatalog (F2)! Dort findest Du alle
vorhandenen Klassen, deren Methoden etc.

Mit CommandBars.Add erstellst Du eine eigene Symbolleiste. Wie das genau
abläuft, wird in der OH ausreichend erklärt. Einfach die Add-Methode im
Objektkatalog auswählen und dann F1 drücken.

Was dort nicht erwähnt wird: Theoretisch könntest Du Deinen Button auch
einer schon vorhandenen Symbolleiste hinzufügen. Das ist aber zumindest
unter OL 2000 buggy: Häufig aber unregelmäßig werden mit einem Aufruf
gleich zwei Buttons erstellt. Desweiteren löscht OL 2000 die permanent
erstellte Leiste nicht mehr. Die taucht immer wieder mal auf. Ich habe
das nicht weiterverfolgt, evt. hilft es aber, die Leiste immer nur
temporär zu erstellen (wird per Argument der Add-Methode übergeben).

Einen Klick auf Deinen Button erfährst Du, indem Du eine Variable im
Modulkopf deklarierst:

private withevents DeinButton as office.commandbarbutton.

Danach kannst Du den Prozedurrumpf genauso erstellen, wie Du es oben
schon mit Application_StartUp gemacht hast.

> Folder = "EbayOrdner"
> Do While ( Email exists in Outlook Folder named "EbayOrdner" )
> Open Email

Zum Thema Schleife über den Ordner hatte ich ja schon geschrieben.
Google einfach mal nach: "typeof obj is outlook.mailitem" "for each"!

> hier müsste ich dann ja dann denn Weizen vom Spreu Trennen nur fehlt
mir
> leider das Wissen dazu

Nein, im Grunde nicht. Hier kommst Du wirklich mit den beiden genannten
Funktionen aus.

In Deinem Beispiel weißt Du folgendes:

- Der erste Datensatz steht im ersten TD. Du suchst also in Deinem
HTMLBody von Position 1 an beginndend mit Instr nach dem ersten
Vorkommen von "<td".

Also: posAnf=instr(1,MailItem.HTMLBody,"
- Auf das öffnende td-Tag folgt ein font-Tag, das Teil endet mit ">".
Nimm mal an, ">" findest Du an Position 100!

- Danach beginnt Dein erster Datensatz. Der endet ein Zeichen vor der
Position, an der ein " gefunden!

Hier gilt also:

(posAnf=100, posEnd=120)

sName = mid$(MailItem.HTMLBody, posAnf+1, posEnd-1-posAnf)

Nun kannst Du von posEnd an beginnend nach dem nächsten td-Tag suchen
etc.

Wenn Du soweit bist, dann können wir gerne noch über den DB-Zugriff
sprechen.


--
Viele Grüße
Michael Bauer

.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Brandmeir Gerhard



Anmeldedatum: 01.01.1970
Beiträge: 39

BeitragVerfasst am: Sa Okt 16, 2004 2:35 pm    Titel: Ebay e-mails Durchsuchen und Adressenspeichern Antworten mit Zitat



Hallo Michael

also ich bekomm das einfach nicht zum laufen mir fehlt einfach die
Zusammenbringung der einzelnen befehle geschweige weiss ich auch die Befehle
nicht.
könntest du mir da bitte nochmal helfen?


Gruss
Brandmeir Gerhard


.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Michael Bauer



Anmeldedatum: 01.01.1970
Beiträge: 759

BeitragVerfasst am: Sa Okt 16, 2004 7:16 pm    Titel: Ebay e-mails Durchsuchen und Adressenspeichern Antworten mit Zitat



Hallo Gerhard,

> Das ist mir fast alles schon zu viel hier denn ich kenn mich da gar
net mehr

Dein Wunsch ist ja auch nicht gerade ganz so klein :-)


> nur wo lege ich nun das fest was beim klicken auf den button
ausgeführt wird

> Private Sub Application_Startup()
> Dim Element As CommandBarControl

Um Ereignisse des Buttons empfangen zu können, mußt Du die Variable
("Element") im Modulkopf deklarieren, nicht in der Prozedur.

Lösche die obige Zeile (Dim ...) aus der Prozedur und schreibe in den
Modulkopf:

private withevents Element as office.commandbarbutton

Du hattest eingangs aus der Box über dem Modul den Eintrag "Application"
ausgewählt und auf diesem Wege die Methode "Application_Startup"
erstellt. Wenn Du nun soweit alles richtig hast, dann findest Du in eben
dieser Box einen neuen Eintrag: Element. Wähle den aus, und es wird für
Dich automatisch die Eregnisprozedur erstellt!


>> - Schleife über alle Elemente eines Ordners: habe ich gerade heute
>> morgen ausführlichst gepostet
>> (news:9B0546CE-82EA-4D88-AB2D-9EC3CE31FBC9 [at] microsoft.com)

> ok ich habe da schon einiges gefunden nur aber immer mit dem Default
Ordner
> von Outlook (Posteingang)

Mein Fehler; ich begreife einfach nicht, wie das mit dem Verweisen auf
andere Postings funktioniert. Natürlich wollte ich Dir nicht die Frage
Bharaths, sondern meine Antwort darauf präsentieren.

Schau Dir dazu bitte "How-To: Loop Folder, Save All Attchmts in Every"
in der NG "microsoft.public.outlook.program_vba" an!


> > - Der erste Datensatz steht im ersten TD. ...

> da steht nicht nur ein TD da stehen mehrere TD s denn das wahr ja nur
d e r
> ausschnitt aus der email den ich filtern muss.

Mal angenommen, Du suchst das 10. <td>, dann mußt Du Dich eben in einer
Schleife von Treffer zu Treffer durchhangeln, bis Du den 10. Treffer
erreicht hast, z.B. (nur sinnvoll, wenn es ganz sicher mindestens 10 der
gesuchten Zeichen gibt):

for treffer=1 to 10
pos=pos+1
pos=instr(pos,mailitem.htmlbody," next


--
Viele Grüße
Michael Bauer

.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Michael Bauer



Anmeldedatum: 01.01.1970
Beiträge: 759

BeitragVerfasst am: So Okt 17, 2004 2:44 pm    Titel: Ebay e-mails Durchsuchen und Adressenspeichern Antworten mit Zitat



Hallo Gerhard,

> Public Sub SaveAdressen(ByRef olMail As Outlook.MailItem)
> 'On Error Resume Next
> For treffer = 1 To 15
> pos = pos + 1
> pos = InStr(pos, MailItem.HTMLBody, "<TABLE",
vbTextCompare)
> MsgBox pos
> Next
> End Sub
>
> so jetzt wird mir in SaveAdressen eine MsgBox ausgegeben bis 15 und
dann
> wieder von vorne den ich habe 2 mails im Ordner drinnen das ist sowait
> richtig nehm ich mal.
> jetzt kommt aber das ausgeben was z.B nach <Table kommt in pos steht
ja
> immer nur der zähler wie bekomm ich das was ich nach <Table haben will
in
> zuerst mal in eine MsgBox

Hast Du 15 Tabellen in der Mail? Dann ist obiges soweit richtig.

Einen Teilstring bekommst Du - wie bereits geschrieben - mit der
mid$-Funktion-.

Instr liefert Dir die Startposition des gesuchten Strings. Wenn pos in
Deinem Bsp. die 15 enthält, dann steht an der 15. Stelle im Text "<", an
der 16. "T" etc.

Wenn Du nun wissen möchtest, was z.B. von der 20. bis zur 30. Stelle
steht, dann bekommst Du das mit:
Teilstring=mid$(MailItem.HTMLBody, 20, 30-20).

--
Viele Grüße
Michael Bauer

.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Brandmeir Gerhard



Anmeldedatum: 01.01.1970
Beiträge: 39

BeitragVerfasst am: Mo Okt 18, 2004 8:04 pm    Titel: Ebay e-mails Durchsuchen und Adressenspeichern Antworten mit Zitat



Hallo Michael


also jetzt komm ich wieder mal nicht weiter ich habe nun folgendes gemacht

For treffer = 1 To 15
Pos = Pos + 1
Pos = InStr(Pos, Outlook.MailItem, " 'Debug.Print Pos
Teilstring = Mid$(MailItem.HTMLBody, Pos, 1 - 129)
Debug.Print Teilstring
MsgBox Teilstring
Next

irgendwie stimmt da was nicht es steht nirgends wo was drin was hab ich denn
hier falsch ?


Gruss Gerhard


.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Michael Bauer



Anmeldedatum: 01.01.1970
Beiträge: 759

BeitragVerfasst am: Di Okt 19, 2004 8:30 am    Titel: Ebay e-mails Durchsuchen und Adressenspeichern Antworten mit Zitat



Moin Gerhard,

so, heute mit frischer Kraft ans Werk...

> In VB(A) musst Du die Deklaration in jede Variable schreiben

Natürlich wollte ich sagen: ... Deklaration *hinter* jede Variable
schreiben.

Ich hatte Dir ja bereits gemailt, dass ich die Anwendung nicht für Dich
entwickeln kann. Was ich aber tun kann, ist, mir eine Deiner E-Mails
anzusehen. Wenn ich die gewünschten Infos darin finde, dann wissen wir
zumindest, dass soweit alles ok ist - den winzigen Rest mußt Du Dir dann
selbst arbeiten.

Meine Adresse hast Du. Bitte veröffentliche die hier *nicht*!

--
Viele Grüße
Michael Bauer

.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Brandmeir Gerhard



Anmeldedatum: 01.01.1970
Beiträge: 39

BeitragVerfasst am: Di Okt 19, 2004 6:49 pm    Titel: Ebay e-mails Durchsuchen und Adressenspeichern Antworten mit Zitat



Hallo Michael

> bitte gib Du mir einen Tipp, was ich tun soll Smile
Sorry wenn ich das könnte dann würd ich Dir nicht so auf die Nerven gehen
:-)

>> Dim Text1, ErstesWort, LetztesWort, Mitte
>
> Du deklarierst hier implizit alles als Variant. Das solltest Du
> tunlichst vermeiden, weil VB dann Datentypen für Dich konvertiert, was
> im Einzelfall zu unerwünschten Ergebnissen führen kann.
> Nimm Dir bitte die Zeit, jeden Datentypen so zu deklarieren, wie Du ihn
> brauchst! Im obigen Fall sollen es sicherlich alles Strings sein.

Ich habe einfach mal das Beispiel aus OH kopiert und da steht das ganze nur
so Deklariert drinnen.

> pos=...
> if pos>0 then
> Teilstring = Mid$...
> endif

Dim ErstesWort As Variant
Dim Text1 As Variant
Text1 = "Mid -Funktion Demo Mid-Funktion Demo"

For treffer = 1 To 2
Pos = Pos + 1
Pos = InStr(Pos, Text1, "-Funktion", vbTextCompare)
If Pos > 0 Then
MsgBox Pos
End If
ErstesWort = Mid$(Text1, Pos, 9)
MsgBox ErstesWort
Next

das Funtioniert jetzt


> Nein, obj ist ein Verweis auf die Mail. Der Inhalt steht entweder in
> obj.Text (Text Mail) oder in obj.HTMLBody (HTML Mail).

Du hattest einfach recht das problem war das obj als Objekt Deklariert wahr
und nicht als VAriant so wies in der OH stand darum fand er nichts in
obj.HTMLBODY

Public Sub LoopMailFolderByFolderPath()
On Error GoTo ERR_HANDLER
Dim oFld As Outlook.MAPIFolder
Dim obj As Variant
Dim Teilstring As Variant

Set oFld = GetFolder("Persönliche Ordner\Posteingang")
If Not oFld Is Nothing Then
For Each obj In oFld.Items
If TypeOf obj Is Outlook.MailItem Then

For treffer = 1 To 15
Pos = Pos + 1
Pos = InStr(Pos, obj.HTMLBody, " Teilstring = Mid(obj.HTMLBody, Pos, Cool
Next
MsgBox Teilstring

End If
Next
End If
Exit Sub
ERR_HANDLER:
MsgBox Err.Description, vbExclamation
End Sub


und so gehts jetzt erstmal ich bekomm in der MsgBox das jeweilige ergebniss
und jetzt versuch ich mal das ganze auszusortieren



Vielen Dank

Gruss
Gerhard

PS: Ich melde mich wieder wenn ich am ende meines Wissens binn (Sie haben
Post!!)


.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Michael Bauer



Anmeldedatum: 01.01.1970
Beiträge: 759

BeitragVerfasst am: Di Okt 19, 2004 8:30 pm    Titel: Ebay e-mails Durchsuchen und Adressenspeichern Antworten mit Zitat



Hallo Gerhard,

ich habe mir Deine Mail angesehen.

Statt nach der 15. Tabelle zu suchen, könntest Du auch gleich nach
"Bitte schicken Sie den Artikel an folgende Adresse:" suchen. Der String
kommt in der Mail nur einmal vor und ist somit eindeutig.

Von da an brauchst Du dann nur - wie schon beschrieben - nach den
TD-Tags zu suchen.

Ich denke, bald hast Du es :-)


--
Viele Grüße
Michael Bauer

.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Michael Bauer



Anmeldedatum: 01.01.1970
Beiträge: 759

BeitragVerfasst am: Mi Okt 20, 2004 8:09 pm    Titel: Ebay e-mails Durchsuchen und Adressenspeichern Antworten mit Zitat



Hallo Gerhard,

> was is den hir schon wieder falsch?

Soll ich Dir das wirklich sagen? Smile)

Gerhard, Deine Postings sind herrlich erfrischend im Büroalltag...

Die Antwort auf Deine Frage hast Du Dir doch schon selbst gegeben. Im
letzten Argument will mid$ von Dir keine Position, sondern eine Länge
wissen.

Pos1 ist eine Position, Pos2 auch; die *Differenz* zwischen beiden ist
die Länge. Ich bin mir sicher, dass ich das auch in allen Beispielen so
angegeben habe: pos2-pos1.

Mal abgesehen davon, dass die ganze Geschichte für Dich bestimmt einen
hohen Lernwert hat: Die Suche in einer zweiten Schleife nach dem 14.
" pos1 nach " Argument die Startposition angeben.

--
Viele Grüße
Michael Bauer

.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Brandmeir Gerhard



Anmeldedatum: 01.01.1970
Beiträge: 39

BeitragVerfasst am: Mi Okt 20, 2004 9:05 pm    Titel: Ebay e-mails Durchsuchen und Adressenspeichern Antworten mit Zitat



Hallo Michael


> Mal abgesehen davon, dass die ganze Geschichte für Dich bestimmt einen
> hohen Lernwert hat: Die Suche in einer zweiten Schleife nach dem 14.

Bestimmt

> "</table" ist reine Resourcenverschwendung. Warum suchst Du nicht ab
> pos1 nach "</table"? Genau dafür darfst Du der InStr-Funktion im ersten
> Argument die Startposition angeben.

ok ich will erstmal testen

so nun hab ich meinen namen wie bekomm ich den namen nun in eine Acces
Datenbank ?
ich habe mal unter Verweise gekukt ob ich da Das mit dem DAO finde aber das
gibt es anscheinend in Outlook gar nicht?

Hoffentlich ist das nicht auch wieder so ein riesen AKT !!


Gruss Gerhard


.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Michael Bauer



Anmeldedatum: 01.01.1970
Beiträge: 759

BeitragVerfasst am: Do Okt 21, 2004 8:02 pm    Titel: Ebay e-mails Durchsuchen und Adressenspeichern Antworten mit Zitat



Hi Gerhard,

Deine Lösung ist soweit ja schon ganz gut.

Zuerst kannst Du die "Entertaste" aus dem Text entfernen:

TeilstringName = Replace(TeilstringName, vbcrlf, "")

Und dann müssen die vielen überflüssigen Leerzeichen weg. Damit nicht
die Info verloren geht, wo der erste Name endet und der zweite beginnt,
ändere Deinen Ansatz mal geringüfig, d.h. ersetze nicht *einfache*
Leerzeichen, sondern nur alle *doppelten*:

alt: TeilstringName = Replace(TeilstringName, " ", "")
neu: TeilstringName = Replace(TeilstringName, " ", "")

> und schonmal ein RIESEN GROSSES DANKESCHÖN

Gern geschehen; das hat mir Spaß gemacht.

--
Viele Grüße
Michael Bauer


.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Brandmeir Gerhard



Anmeldedatum: 01.01.1970
Beiträge: 39

BeitragVerfasst am: Do Okt 21, 2004 9:04 pm    Titel: Ebay e-mails Durchsuchen und Adressenspeichern Antworten mit Zitat



Hallo Michael

jetzt hab ich da noch was
hiermit lese ich ja die mails aus dem angegebenen Ordner ein

Set oFld = GetFolder("Persönliche Ordner\Posteingang")
If Not oFld Is Nothing Then
For Each obj In oFld.Items
If TypeOf obj Is Outlook.MailItem Then

hier kommt mein schwer erarbeiteter VBA Code

und hier sollen dann alle aus dem oben genantem Ordner in einen von mir
Fest´gelegtem Ordner verschoben werden


wie bewergstellige ich das nun ?


Gruss Gerhard


.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Michael Bauer



Anmeldedatum: 01.01.1970
Beiträge: 759

BeitragVerfasst am: Do Okt 21, 2004 9:40 pm    Titel: Ebay e-mails Durchsuchen und Adressenspeichern Antworten mit Zitat



Hallo Gerhard,

> und hier sollen dann alle aus dem oben genantem Ordner in einen von
mir
> Fest´gelegtem Ordner verschoben werden


Deklariere neben oFld eine weitere Variable gleichen Typs und setze den
Verweis ebenfalls per GetFolder auf den gewünschten Ordner.


> Set oFld = GetFolder("Persönliche Ordner\Posteingang")

set oFolder2=getfolder(....)

> If Not oFld Is Nothing Then
> For Each obj In oFld.Items
> If TypeOf obj Is Outlook.MailItem Then
>
> hier kommt mein schwer erarbeiteter VBA Code

obj.move oFolder2
Endif
Next
Endif


--
Viele Grüße
Michael Bauer

.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Brandmeir Gerhard



Anmeldedatum: 01.01.1970
Beiträge: 39

BeitragVerfasst am: Fr Okt 22, 2004 8:11 pm    Titel: Ebay e-mails Durchsuchen und Adressenspeichern Antworten mit Zitat



Hallo Michael

wie bekomm ich eigentlich die mailadresse von und den betreff aus einer
Email die steht bestimmt in einer Variable oder ?


Gruss Gerhard


.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Softpicks.Net Deutsch Foren-Übersicht -> Microsoft Outlook Alle Zeiten sind GMT
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht teilnehmen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de