AW: Werte übertragen
11.11.2016 14:19:30
Berndt
klingt auf jedenfall einleuchtend.
Habe allerding immernoch einen Laufzeitfehler 424 mit drinnen.
Objekt erforderlich bei: (If Right(Ws.Name, intLänge) = sName Then
(komisch nur damit schon alle Objekte definiert sind)
Dim Treffer As Range
Dim FindStr As String
Dim c As Range
Dim rng As Range
Dim Zell As Range
Dim sName As String
Dim i, von, bis, intLänge, maxZell As Long
Dim rngZelle, rngBereich As Range
Dim Ws, Themen As Worksheet
Dim wbkHier As Workbook
Dim lngZeile As Long
Application.ScreenUpdating = False
Set wbkHier = ThisWorkbook
Set Themen = wbkHier.Sheets("Themenspeicher")
Set Treffer = Themen.Columns(2).Find("*Themenspeicher*", LookIn:=xlValues)
von = Treffer.Row + 1 'erste Zelle nach Themenspeicher in Sheet Themenspeicher
bis = Themen.Range("B" & Rows.Count).End(xlUp).Row + 1
a = Range("B" & von & ":F" & bis)
With Themen
lngZeile = .Cells.SpecialCells(xlCellTypeLastCell).Row
Set rngBereich = Themen.Range(.Cells(5, 3), .Cells(lngZeile, 3))
For Each rngZelle In rngBereich
If rngZelle.Value = "x" Then
sName = rngZelle.Offset(, 1).Value
intLänge = Len(sName)
If Right(Ws.Name, intLänge) = sName Then
bis = Sheets(Ws.Name).Range("B2000").End(xlUp).Row + 1
bis1 = Sheets(a(i, 4)).Range("C2000").End(xlUp).Row + 1
Ab = Application.Match("aus Themenspeicher übertragen", Worksheets(Ws. _
Name).Range("B:B"), 0)
Ab1 = Application.Match("Termin", Worksheets(a(i, 4)).Range("C:C"), 0)
'Doppelte Werte werden vermieden
If IsError(Application.Match(a(i, 1), Worksheets(a(i, 3)).Range("B" _
& Ab & ":B" & bis), 0)) _
& IsError(Application.Match(a(i, 4), Worksheets(a(i, 3)).Range("C" & _
Ab1 & ":C" & bis1), 0)) _
Then
Sheets(Ws.Name).Range("B" & bis) = a(i, 1)
Sheets(Ws.Name).Range("C" & bis) = a(i, 4)
Sheets(Ws.Name).Range("B8:C8").Copy ' da ist das gleiche Format
Sheets(Ws.Name).Range("B" & bis).Resize(, 2).PasteSpecial xlFormats
Sheets(Ws.Name).Range("B" & bis).HorizontalAlignment = xlLeft
Sheets(Ws.Name).Range("C" & bis).NumberFormat = "dd.mm.yyyy"
End If
End If
End If
Next
End With