Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

In Schleife Daten aus anderem Tabellenblatt

In Schleife Daten aus anderem Tabellenblatt
27.10.2017 11:48:59
Oisse
Hallo Zusammen,
ich habe zwei Tabellenblätter "Plan" und "Adressen".
In dem Tabellenblatt "Plan" befinden sich in Spalte "C" verschiedene Aufgaben, die in verschiedenen Monaten zu erledigen sind.
Die Monate sind in den Spalten "I:AA" zu finden. Von manchen Monaten sind zwei Spalten vorhanden, weil für bestimmte Aufgaben zwei Mitarbeiter vorgesehen sind.
Die Mitarbeiter können über eine DropDown-Liste den Monaten und Aufgaben zugeteilt werden. Die DropDown-Liste wird mit Daten aus dem Tabellenblatt "Adressen" gefüllt.
Im Tabellenblatt "Adressen" befinden sich in Spalte A die Namen, in Spalte B die E-Mail-Adressen.
Nun möchte ich folgendes realisieren:
Die erste Spalte mit dem Systemmonat (momentan also Oktober) soll durchsucht werden, ob Einträge vorhanden sind, also, ob in diesem Monat Mitarbeiter für Arbeiten eingeteilt sind.
Diesen Mitarbeiter soll er ausgeben und auch die entsprechende Tätigkeit, die für ihn in diesem Monat vorgesehen ist.
Das klappt bisher sehr gut, auch dank der Hilfe bereits hier im Forum.
Nun möchte ich aber die E-Mail-Adresse des MA holen, aus einem Ordner eine dazugehörige Arbeitsanweisung und ihm das per E-Mail zusenden. Es können mehrere MA in diesem Monat Arbeiten erhalten.
Mein bisheriger Code sieht so aus, der aber so, wie ich es mir vorstelle, nicht funktioniert, _ weil ich ja die Schleifen verlasse indem ich in das Tabellenblatt "Adressen" springe:

Option Explicit
Private Sub Worksheet_Activate()
Dim MonAbk As String
Dim lzZeile As Integer
Dim lzSpalte As Integer
Dim wksJahrPl As Worksheet
Dim c As Range
Dim d As Range
Dim strFind     As String
Dim firstAddress As String
Dim Aufgabe As String
Dim emailtext As String
Dim Inspekteur As String
Dim EmailAdr As String
Dim wksAdr As Worksheet
Set wksJahrPl = ThisWorkbook.Worksheets("Plan")
Set wksAdr = ThisWorkbook.Worksheets("Adressen")
lzZeile = wksJahrPl.Cells(Rows.Count, 3).End(xlUp).Row
lzSpalte = wksJahrPl.Cells(2, Columns.Count).End(xlToLeft).Column
Select Case Month(Now())
Case 1: MonAbk = "Jan"
Case 2: MonAbk = "Feb"
Case 3: MonAbk = "Mär"
Case 4: MonAbk = "Apr"
Case 5: MonAbk = "Mai"
Case 6: MonAbk = "Jun"
Case 7: MonAbk = "Jul"
Case 8: MonAbk = "Aug"
Case 9: MonAbk = "Sep"
Case 10: MonAbk = "Okt"
Case 11: MonAbk = "Nov"
Case 12: MonAbk = "Dez"
End Select
With wksJahrPl.Range("I:AA")
Set c = .Find(MonAbk, LookIn:=xlValues, LookAt:=xlWhole)
If Not c Is Nothing Then
firstAddress = c.Address
Range(c.Address).Select      'Die Zeile in der der zu suchende Wert ist  _
markieren
Do
Debug.Print c.Column
With wksJahrPl.Range(Cells(8, c.Column), Cells(lzZeile, c.Column))
Set d = .Find("*", LookIn:=xlValues, LookAt:=xlWhole)
If Not d Is Nothing Then
firstAddress = d.Address
Range(d.Address).Select      'Die Zeile in der der zu  _
suchende Wert ist markieren
Do
'Ab hier soll die Zuweisung an den gefundenen MA einschließlich Versand per E-  _
_
Mail beginnen
Aufgabe = Cells(d.Row, 3).Value
Inspekteur = Cells(d.Row, c.Column).Value
wksAdr.Select
With wksAdr.Range("A:B")
Set e = .Find(Inspekteur, LookIn:=xlValues, LookAt:=xlWhole)
Range(e.Address).Select
EmailAdr = Cells(e.Row, 2)
End With
wksJahrPl.Select
Debug.Print d.Row & " " & Aufgabe & " " & Inspekteur & " " & EmailAdr
'Finde den nächsten passenden Eintrag in der Zeile, also den Nä _
_
chsten Namen für eine Aufgabenzuteilung
Set d = .FindNext(d)
Loop While Not d Is Nothing And d.Address  firstAddress
End If
End With
'Finde den nächsten passenden Eintrag
Set c = .FindNext(c)
If c  MonAbk Then
Exit Do
End If
Loop While Not c Is Nothing And c.Address  firstAddress
End If
End With
End Sub

Beispieltabelle:
https://www.herber.de/bbs/user/117256.xlsm
Vielen Dank schon mal

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
selbst rausgefunden
27.10.2017 21:09:57
Oisse
Hallo Zusammen,
ich habe mein Problem nun mit For-Next Schleifen gelöst.
Danke zumindest an alle, die sich mit meinem Problem gedanklich beschäftigt haben.
Gruß Oisse
Anzeige

365 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige