Von |
Sensewell |
Am |
17. Dezember 2007 um 14:01:48 |
Frage |
Mahlzeit,
Hallo zusammen. Ich habe ein riesiges Problem was ich so schnell wie möglich lösen möchte. Ich habe schon in einem anderen Forum gepostet nur die wussten nicht mehr weiter. Also hier mal meine Problemstellung:
Ich habe schon mal fleisig einen Code geschrieben. Ich möchte im VBA von Outlook eine Excel Datei auslesen und ihre zellenwerte A1,A2,A3.....Ax in ein Array lesen. Die grenze wieviel Zeilen es sind ist nicht vorgegeben. Also muss erst ein count gemacht werden. NUn soollen die Werte der Arrays (z.B: A1: "31.12.2007","01.01.2008","02.01.2008","03.01.2008","04.01.2008","07.01.2008","08.01.2008","09.01.2008") mit dem heutigen Datum: faelligkeit= Date verglichen werden. Sollte in dem Array das heutige Datum vorkommen so soll eine Prozedur mit dem Namen AssignTask starten.
Dim varA As String Const Tabelle = "Serientyp_jedenTag_liste.xls" 'Name der Exceldatei Const Path = "C:\Dokumente und Einstellungen\llibrs1\Desktop\" 'Path, wo die Exceldatei liegt Sub Excel_Datei_Oeffnen() Dim xlApp As Excel.Application Dim xlWb As Workbook Set x1App = New Excel.Application Set x1Wb = GetObject(Path & Tabelle) x1Wb.Application.Visible = True x1Wb.Parent.Windows(1).Visible = True End Sub Public Sub Excel_auslesen() Dim xlApp As Excel.Application Dim xlWb As Workbook Dim xlWs As Worksheet 'Exceltabelle öffnen Set xlApp = GetObject(, "Excel.Application") Set xlWb = xlApp.ActiveWorkbook Set xlWs = xlWb.Worksheets(1) With xlWs varA = .Range("A1").Value End With Set xlApp = Nothing Application.Quit End Sub Sub test() Dim dummy(99) As String Dim zaehler As Integer Dim starteBei As Integer Dim faelligkeit As Date faelligkeit = Date starteBei = 1 zaehler = 0 For j = 1 To Len(Cells(1, 1)) If Mid(Cells(1, 1), j, 1) = "," Then zaehler = zaehler + 1 dummy(zaehler) = Mid(Cells(1, 1), starteBei, j - starteBei) starteBei = j + 1 If dummy(zaehler) = faelligkeit Then AssignTask End If End If Next j End Sub mit diesem Code klappt es noch nicht ganz.Er kann die Werte aus dem Array nicht lesen. Ein weiteres Problem wäre: in B1 und C1 und D1 und E1 stehen Ausdrücke die zu A1 gehören. Diese werden durch die Prozedur AssignTask hinzugefügt:'Nebenprozedur 'Deklaration von MyItem als Aufgabe 'Deklaration von MyDelegate als Emailversand 'Erstellt eine neue Aufgabe 'Ordnet der Variable myItem die Aufgabe zu Sub AssignTask() Dim myItem As Outlook.TaskItem Dim myDelegate As Outlook.Recipient Set myItem = Application.CreateItem(olTaskItem) myItem.Assign 'Fügt die Gruppierfelder System,IV Gruppe,Administrationstätigkeit ein Set myProp = myItem.UserProperties.Add("System", olText) Set myProp = myItem.UserProperties.Add("Freier Filter", olText) Set myProp = myItem.UserProperties.Add("IV Gruppe", olText) 'Fügt einen Adressanten ein Set myDelegate = myItem.Recipients.Add("Brakowski Simon (LLI)") 'Löst den Adressanten im Adressbuch auf myDelegate.Resolve 'Wenn der Adressant aufgelöst werden konnte wird die IF Anweisung ausgeführt. If myDelegate.Resolved Then 'Fügt der Aufgabe den Namen: ... an 'Fügt einen Inhalt In das Hauptfenster der Aufgabe hinzu 'Der Aufgabenfälligkeit wird ein Wert zugeteilt (z.B: Now=heutige Systemdatum) 'Der Aufgabe wird ein Wert im Feld "System" zugeteilt 'Der Aufgabe wird ein Wert im Feld "IV Gruppe" zugeteilt 'Der Aufgabe wird ein Wert im Feld "Administrationstätigkeit" zugeteilt 'Die Aufgabe wird versendet 'Ende der Schleife& Ende der Prozedur myItem.Subject = "Test 123456" myItem.Body = "Hallo Welt" myItem.DueDate = Now myItem.UserProperties.Find("System").Value = "Test" myItem.UserProperties.Find("IV Gruppe").Value = "ERP" myItem.UserProperties.Find("Freier Filter").Value = "Backup" myItem.Send End If 'Application.Quit End Sub Nun sind die myItem Eigenschaften wie zum beispiel body oder system subject etc. in den Zellen C1,D1,E1 etc in der Exceldatei geschrieben. Jetzt möchte ich, dass wenn er A1,A2 etc. durchläuft und was findet, sagen wir in A2 dann auch in AssignTask die Propeties etc. von C2,D2,E2 nimmt. Also muss er ihm quasi ein Wert übergeben. Bzw. die Zahl nach dem A. und bei den Propeties muss dann als Wert quasi stehen: = Cx und genau das X soll von oben übernommen werden. Ich hoffe ich habe es verständlich rüber gebracht. Ich bin mit meinem VBA Latein am Ende. Würde mich über jede Hilfe freuen
Liebe Grüße,
Simon
|
|