Wie immer viel Spielraum für Interpretationen.
Meine Interpretation wie folgt:
In ein allgemeines Modul:
Option Explicit
Type typDatensatz
Nachname As String
Vorname As String
End Type
'
Sub main(ByRef rngTarget As Excel.Range)
With ThisWorkbook.Worksheets("Mail").Cells(Rows.Count, "B").End(xlUp)
.Offset(1, 0).Value = getDatensatz(rngTarget.Row).Nachname
'TODO Vorname
End With
End Sub
Function getDatensatz(ByVal lngZeile As Long) As typDatensatz
With getDatensatz
.Nachname = ThisWorkbook.Worksheets("Eingabe").Cells(lngZeile, "B").Value
'TODO Vorname
End With
End Function
In das Arbeitsblatt "Eingabe":
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Columns(1)) Is Nothing Then
Call main(Target)
End If
End Sub
Hinweise:
Es läuft derzeit alles in einer Mappe ab.
Die Mappe stellt zwei Arbeitsblätter: Eingabe und Mail.
Das Ausgliedern in zwei Mappen, sowei eine Fehlerbehandlung, überlasse Ich Dir ;)
Hinwei2:
Ob Du den With-Rahmen um den benutzerdefinierten Datentyp, oder der Zellermittlung stellst, bleibt Dir überlassen.
Wenn Deine Datensätze in Ihrer Reihenfolge 1:1 übertragen werden können, genügt eine einfache Wertzuweisung. Auch wieder eine Frage der Interpretation.
Habe fertig ... bin dann mal :winkend: raus :)
|