AW: VBA Abfrage auf Zelle
06.02.2008 22:40:00
fcs
Hallo Michael,
hier ein Beispiel(ungetestet). Die Namen der Dateien und Tabellenblätter, sowie vorgegebene Zeilen- und Spaltennummer muss du an deine Dateien anpassen. Das Makro gehört in die Datei in der die e-mail-Adressen eingetragen werden sollen.
Gruß
Franz
Sub eMailAdressenHolen()
Dim wbthis As Workbook, wksThis As Worksheet
Dim ZeileThis As Long, SpalteIDt As Integer, SpalteMailt As Integer
Dim wbEmail As Workbook, wksEmail As Worksheet
Dim SpalteMail As Integer, SpalteIDe As Integer
Dim varLogID As Variant, ZelleLogID As Range
'Datei mit dem Tabellenblatt in das die emailadressen eingetragen werden sollen
Set wbthis = ThisWorkbook 'oder = Workbooks("DateiXYZ.xls")
'Tabellenblatt in das die emailadressen eingetragen werden sollen
Set wksThis = Worksheets("Tabelle1")
SpalteIDt = 1 'Spalte mit LogID in diesem Tabellenblatt
SpalteMailt = 4 'Spalte in die die E-mail Adresse eingetragen werden soll
'Dateimit den email-Adressen, Datei muss geöffnet sein! Name ggf. anpassen
Set wbEmail = Workbooks("DateiEmails")
'Tabellenblatt aus dem die e-Mail-Adressen ausgelesen werden sollen
Set wksEmail = wbEmail.Worksheets("Tabelle1")
SpalteIDe = 1 'Spalte mit LogID in Tabellenblatt mit e-Mail-Adressen
SpalteMail = 2 'Spalte mit e-Mail-Adressen in Tabellenblatt mit e-Mail-Adressen
'LogID's zeilenweise abarbeiten
For ZeileThis = 2 To wksThis.Cells(wksThis.Rows.Count, SpalteIDt).End(xlUp).Row
varLogID = wksThis.Cells(ZeileThis, SpalteIDt).Text
'LogID im Blatt mit E-mail-Adressen in Spalte suchen
Set ZelleLogID = wksEmail.Columns(SpalteIDe).Find(whst:=varLogID, _
lookat:=xlWhole, LookIn:=xlValues)
If Not ZelleLogID Is Nothing Then
wksThis.Cells(ZeileThis, SpalteMailt).Value = wksEmail.Cells(ZelleLogID.Row, SpalteMail). _
Value
End If
Next
Set wbthis = Nothing: Set wksThis = Nothing
Set wbEmail = Nothing: Set wksEmail = Nothing
Set ZelleLogID = Nothing
End Sub