AW: zeig deinen Code. owT
14.08.2015 10:38:24
Peter
Hallo Rudi,
so sieht er aus.
Sub MitgliederEinlesenNeu()
Dim arr As Variant
Dim iRow As Integer
Dim lz, ls, i, j, lz1, ls1 As Integer
Dim Mitgliedernr, bereitsvorhanden As String
Application.ScreenUpdating = False
'Öffnen der Originaladressen-Datei auf Laufwerk X
Workbooks.Open "X:\XYZ\Mitgliederadressen.xlsm" 'Pfad anpassen!
Worksheets("Mitglieder").Activate
'Letzte Zeile und Spalte in Mitgliederadressen bestimmen
lz = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row 'letzte Zeile bestimmen
ls = Cells(6, Columns.Count).End(xlToLeft).Column 'letzte Spalte bestimmen
For i = 1 To lz - 6
Application.ScreenUpdating = False
Windows("Mitgliederadressen.xlsm").Activate
Sheets("Mitglieder").Activate
Mitgliedernr = Cells(6 + i, 2) 'Mitgliederadresse bestimmen
Range(Cells(6 + i, 2), Cells(6 + i, ls)).Select
Selection.Copy
'Zu XYZ springen
Application.ScreenUpdating = False
Windows("Metall_Chemie XYZ.xlsm").Activate
Sheets("Mitgliederanschrift").Activate
lz1 = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row 'letzte Zeile im XYZ bestimmen
ls1 = Cells(10, Columns.Count).End(xlToLeft).Column 'letzte Spalteim XYZ bestimmen
bereitsvorhanden = "nein"
For j = 1 To lz1 - 10
If bereitsvorhanden = "ja" Then
Exit For
Else
'Überprüfen, ob der Kunde in Mitgliederadressen auch in
'STVer XYZ Mitgliederanschriften vorhanden ist
Dim ws As Worksheet, efz%, gef As Range
Set ws = ThisWorkbook.Worksheets("Mitgliederanschrift")
Set gef = ws.Range(Cells(11, 2), Cells(lz1, 2)).Find(Mitgliedernr)
If gef Is Nothing Then
'Wenn die Adresse im XYZ nicht vorhanden ist, dann wird sie ans Ende
'der Tabelle eingefügt
Application.ScreenUpdating = False
Windows("Mitgliederadressen.xlsm").Activate
Sheets("Mitglieder").Activate
Range(Cells(6 + i, 2), Cells(6 + i, ls)).Select
Selection.Copy
Application.ScreenUpdating = False
Windows("Metall_Chemie XYZ.xlsm").Activate
Sheets("Mitgliederanschrift").Activate
Range(Cells(lz1 + 1, 2), Cells(lz1 + 1, ls)).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End If
'Wenn die Adresse im XYZ vorhanden ist, dann wird sie mit der Adresse
'aus Mitgliederadressen überschrieben
If Mitgliedernr = Cells(10 + j, 2) Then
Application.ScreenUpdating = False
Windows("Mitgliederadressen.xlsm").Activate
Sheets("Mitglieder").Activate
Range(Cells(6 + i, 2), Cells(6 + i, ls1)).Select
Selection.Copy
Application.ScreenUpdating = False
Windows("Metall_Chemie XYZ.xlsm").Activate
Sheets("Mitgliederanschrift").Activate
Range(Cells(10 + j, 2), Cells(10 + j, ls)).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
bereitsvorhanden = "ja"
End If
End If
Next j
Next i
Application.ScreenUpdating = True
End Sub