Wie immer viel Spielraum für Interpretationen.
Meine Interpretation wie folgt:
In ein allgemeines Modul:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | 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
End With
End Sub
Function getDatensatz( ByVal lngZeile As Long ) As typDatensatz
With getDatensatz
.Nachname = ThisWorkbook.Worksheets( "Eingabe" ).Cells(lngZeile, "B" ).Value
End With
End Function
|
In das Arbeitsblatt "Eingabe":
1 2 3 4 5 6 7 | 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 :)
|