Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1344to1348
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

Aus Outlook heraus in Excel suchen

Aus Outlook heraus in Excel suchen
13.01.2014 19:48:21
Markus
Hallo zusammen,
ich möchte aus einer Userform in Outlook heraus überprüfen, ob der in der Textbox befindliche Text, bereist in einer Exceldatei vorhanden ist.
Anbei findet ihr meinen bisherigen Code, allerdings weiß ich jetzt nicht weiter. Die find what Methode arbeitet ja nicht mit Variablen. Zudem soll mir, wenn der Text bereist enthalten sein sollte, die Zeile mittels MSGBox mitgeteilt werden.
Wie sollte ich am besten weiter an die Sache gehen?
Gruß Markus
Sub prüfen()
Const Datei = "Test.xlsx" 'Name der Exceldatei
Const Path = "C:\Users\xxx\Downloads\Excel Addin\E_Mail\" 'Pfad, wo die Exceldatei liegt
Dim xlApp As Excel.Application                  'Excel deklarieren
Dim xlwb As Workbook                            'Workbook deklarieren
Dim WkSh  As Worksheet                          'Arbeitsblatt deklarieren
Dim a As Integer                                'Variable für den Suchwert
Dim UF As Object                                'Userform in der Outlook deklarieren
Dim lastrow As Integer                          'Variable für letzte Zeile
Set UF = Export                                 'Usferom von Outlook ansprechen
Set xlApp = CreateObject("Excel.Application")   'Variable für Excel
Set x1wb = GetObject(Path & Datei)              'Varibale für den Speicherort und den  _
Dateinamen
Set WkSh = x1wb.Worksheets("Hallo")             'Variable für das Arbeitsblatt in dem gesucht  _
werden soll
Set a = UF.TextBox1.Text                        'Suchvariable erhält Suchtext
lastrow = WkSh.Range("E" & WkSh.Cells(WkSh.Rows.Count, 2).End(xlUp).Row )
WkSh.UnProtect ("cc")                        'Blattschutz aufheben
'Wenn Suchwert in Bereich E9 bis lastrow, dann
MsgBox "Wert befindet sich bereist in der Datenbank Zeile 4711 "
'Sonst
'Export.Show
x1wb.Application.Visible = True                     'Exceldatei öffnen
x1wb.Parent.Windows(1).Visible = True
x1wb.Parent.Windows(1).Close savechanges:=False     'Excel wieder schließen ohne Speichern
xlApp.Quit                                          'Excelprogramm schließen
Set WkSh = Nothing                                  'Variablen löschen
Set WkBk = Nothing                                  'Variablen löschen
Set xlApp = Nothing                                 'Variablen löschen
End Sub

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Aus Outlook heraus in Excel suchen
13.01.2014 20:43:00
mumpel
Hallo!
Ein Beispiel aus meiner Prozedur.
Gruß, René

Nachtrag
13.01.2014 20:49:54
mumpel
Damit Du den gesamten Zusammenhang verstehst (der ganze Code passt hier "nicht" rein), habe ich ihn mal auf meine HP hochgeladen. Outlook VBA Codebeispiel
Du siehst also dass Du sehr wohl mit Variablen arbeiten kannst.

AW: Nachtrag
14.01.2014 12:58:05
Markus
Hallo Mumpel,
danke für deinen Code. Verstehen tue ich ihn vom Ablauf her und was er bewirken soll, doch leider schaffe ich es nicht diesen auf meine Bedürfnisse zu zuschneiden. Ich habe mir überlegt, daher das über contif machen zu wollen, anbei mein code, allerdings meckert er jetzt an der Zeile:
lngTreffer = WkSh.CountIf(Columns(5), strSuchbegriff)
Fehlermeldung lautet: Methode oder Datenobject nicht gefunden. Was fehlt da noch. Habe es doch deklariert, oder habe ich etwas vergessen? bestimmt, sonst würds ja laufen.
Sub suchen()
Const Datei = "Test.xlsx" 'Name der Exceldatei
Const Path = "C:\xxx\xxx\xxx\xxx\" 'Path, wo die Exceldatei liegt
Dim xlApp As Excel.Application
Dim xlwb As Workbook
Dim WkSh  As Worksheet
Dim strSuchbegriff As String
Dim lngTreffer As Long
Dim UFs As Object
Set UF = Export
Set xlApp = CreateObject("Excel.Application")
Set x1wb = GetObject(Path & Datei)
Set WkSh = x1wb.Worksheets("Hallo")
strSuchbegriff = UF.TextBox1.Text
lngTreffer = WkSh.CountIf(Columns(5), strSuchbegriff)
End Sub
Gruß Markus

Anzeige
AW: Nachtrag
14.01.2014 13:50:59
Markus
Hallo Mumpel,
ich habe es jetzt hinbekommen, dass er mir die entsprechende Meldung zurückgibt.
Doch leider nur für eine Zelle, wie müsste ich die Zeile abändern, dammit ich einen bereich durchsuche?
Mit:
With wskh
Range(Cells(9, 5), Cells(1000, 5)).Select
If InStr(1, selection ;UF.TextBox1.Text) > 0
klappt es nicht.
Zusätzlich bräuchte ich jetzt noch die Rückgabe, der Zeile in der der Begriff gefunden wurde, damit ich dass weiter nutzen kann.
Sub suchen()
Const Datei = "Test.xlsx" 'Name der Exceldatei
Const Path = ""C:\xxx\xxx\xxx\xxx\" 'Path, wo die Exceldatei liegt
'Path, wo die Exceldatei liegt
Dim xlApp As Excel.Application
Dim xlwb As Workbook
Dim WkSh  As Worksheet
Dim strSuchbegriff As String
Dim lngTreffer As Long
Dim UFs As Object
Set UF = Export
Set xlApp = CreateObject("Excel.Application")
Set x1wb = GetObject(Path & Datei)
Set WkSh = x1wb.Worksheets("Hallo")
'strSuchbegriff = UF.TextBox1.Text
'lngTreffer = WkSh.CountIf(Columns(5), strSuchbegriff)
If InStr(1, WkSh.Cells(13, 5), UF.TextBox1.Text) > 0 Then
MsgBox "Suchbegriff gefunden"
Else
Export.Show
End If
Set UF = Nothing
Set xlApp = Nothing
Set x1wb = Nothing
Set WkSh = Nothing
End Sub

Gruß Markus

Anzeige
AW: Nachtrag
14.01.2014 19:40:26
mumpel

AW: Nachtrag
14.01.2014 20:25:46
Markus
Hallo Mumpel,
ich habe deinem Code noch
suchBegriff = Export.TextBox1.Text 'Userform Export mit Textbox
hinzugefügt, um den Suchbegriff zu zuweisen, erhalte jetzt aber für
Set lngTreffer = wkSh.Columns(5).Find(suchBegriff, _
lookat:=xlWhole, LookIn:=xlValues, MatchCase:=True)
die Fehlermeldung, dass das Objectvariable oder die With-Blockvariable nicht festgelegt ist.
Warum?
Danke und Gruß Markus
Sub finden()
Dim wkSh        As Excel.Worksheet
Dim lngTreffer  As Excel.Range
Dim suchBegriff As String
suchBegriff = Export.TextBox1.Text
Set lngTreffer = wkSh.Columns(5).Find(suchBegriff, _
lookat:=xlWhole, LookIn:=xlValues, MatchCase:=True)
If Not lngTreffer Is Nothing Then
MsgBox "Eintrag noch nicht vorhanden"
End If
End Sub

Anzeige
AW: Nachtrag
14.01.2014 20:35:21
mumpel
Was steht denn in "wkSH"?

AW: Nachtrag
14.01.2014 21:46:08
mumpel
Du hast im Code ein paar Denkfehler drin. Du deklarierst a als Integer, weist a aber einen Text aus einer (geschlossenen) Userform zu. So kann das nicht funktionieren.

AW: Nachtrag
15.01.2014 16:25:07
Markus
Hallo Mumpel,
wenn es zu spät am Abend ist bzw. man schon mehr als 8 Stunden vor dem Rechner sitzt sieht mam den Wald vor lauter Bäumen nicht mehr. Ich habe vergessen WSK zu definieren. Nachdem ich das dann auch alles gemacht habe läuft es auch so wie es soll. (Anbei mein Code). Danke für deine Hilfe.
Eine Frage hätte ich allerdings noch: Wie kann ich noch die Zeile herausbekommen in der der Text gefunden worden ist? Ich möchte diese ggf. weiter nutzen um, wenn man dem Eintrag im nachhinein was hinzufügen möchte, dies auch in der richtigen Stelle tut.
Gruß Markus
Sub finden
Const Datei = "Test.xlsx" 'Name der Exceldatei
Const Path = "C:\Users\XXX\XXX\XXX\" 'Path, wo die Exceldatei liegt
Dim xlApp As Excel.Application
Dim xlwb As Workbook
Dim wkSh  As Worksheet
Dim lngTreffer  As Excel.Range
Dim suchBegriff As String
Set xlApp = Excel.Application
Set x1wb = GetObject(Path & Datei)
Set wkSh = x1wb.Worksheets("Hallo")
suchBegriff = Export.TextBox1.Text
Set lngTreffer = wkSh.Columns(5).Find(suchBegriff, _
lookat:=xlWhole, LookIn:=xlValues, MatchCase:=True)
If Not lngTreffer Is Nothing Then
MsgBox "Eintrag vorhanden"
Else
MsgBox "Eintrag nicht vorhanden"
End If
End Sub

Anzeige
AW: Nachtrag
15.01.2014 17:41:34
mumpel
Bei mir macht das searchIDN.Row (wenn Du nochmal schauen würdest). ;-)

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige