Guten Morgen. Ich habe einen Programmcode, der in 3 verschiedenen Sheets Daten heraussucht und diese dann in eine Übersicht kopiert.
Unter dem Strich seht ihr den Versuch, aus der zusammengestellten Übersicht alle Zeilen (hier mit der ersten Spalte versucht) ín ein neues Sheet zu kopieren, die in einer Spalte den Wert 3 haben.
Wie mache ich das am besten? Ich denke ich habe mit den Variablen was falsch gemacht, er zeigt immer an, dass in der Kopierzeile x den Wert 4 hat und es damit außerhalb des Bereiches ist, ich verstehe nur nicht wieso x = 3 sein soll, wenn ich angebe, dass die Zelle den wert 3 haben soll.
Option Explicit
Sub Aktualisieren()
Dim lastrowüber As Long
Dim lastrowbeg As Long
Dim lastrowcokAs Long
Dim x As Long
Dim v As Long
Dim z As Long
Dim a As Long
Dim w As Long
Dim b As Long
Dim e As Long
Worksheets("Übersicht").Range("A2:Z8000").Select
Selection.ClearContents
lastrowüber = Worksheets("COM").Cells(Rows.Count, 2).End(xlUp).Row
For x = 2 To lastrowüber
Worksheets("Übersicht").Cells(x, 1) = Worksheets("COM").Cells(x, 1)
Worksheets("Übersicht").Cells(x, 2) = Worksheets("COM").Cells(x, 2)
Worksheets("Übersicht").Cells(x, 3) = Worksheets("COM").Cells(x, 5)
Worksheets("Übersicht").Cells(x, 4) = Worksheets("COM").Cells(x, 8)
Worksheets("Übersicht").Cells(x, 5) = Worksheets("COM").Cells(x, 14)
Worksheets("Übersicht").Cells(x, 7) = Worksheets("COM").Cells(x, 33)
Worksheets("Übersicht").Cells(x, 15) = Worksheets("COM").Cells(x, 3)
Next x
lastrowbeg = Worksheets("Beg").Cells(Rows.Count, 2).End(xlUp).Row
For a = 2 To lastrowüber
Worksheets("Übersicht").Cells(a, 7).Value = Trim(Cells(a, 7).Value)
If Worksheets("Übersicht").Cells(a, 7).Value <> "" Then
For v = 2 To lastrowbeg
If Worksheets("Übersicht").Cells(a, 7).Value = Worksheets("Beg").Cells(v, 2).Value Then
Worksheets("Übersicht").Cells(a, 9) = Worksheets("Beg").Cells(v, 7)
Worksheets("Übersicht").Cells(a, 16) = Worksheets("Beg").Cells(v, 18)
ElseIf Worksheets("Übersicht").Cells(a, 7).Value = Worksheets("Beg").Cells(v, 1).Value Then
Worksheets("Übersicht").Cells(a, 9) = Worksheets("Beg").Cells(v, 7)
Worksheets("Übersicht").Cells(a, 16) = Worksheets("Beg").Cells(v, 18)
End If
If Worksheets("Übersicht").Cells(a, 2).Value = 2 Then
Worksheets("Status_1").Cells(a, 1) = Worksheets("Übersicht").Cells(a, 1)
End If
Next v
End If
Next a
lastrowcok = Worksheets("COK").Cells(Rows.Count, 2).End(xlUp).Row
For w = 2 To lastrowcok
Worksheets("COK").Cells(w, 4).Value = Trim(Worksheets("COK").Cells(w, 4).Value)
Next w
For b = 2 To lastrowüber
Worksheets("Übersicht").Cells(b, 5).Value = Trim(Cells(b, 5).Value)
If Worksheets("Übersicht").Cells(b, 5).Value <> "" Then
For z = 2 To lastrowcok
If Worksheets("Übersicht").Cells(b, 5).Value = Worksheets("COK").Cells(z, 4).Value Then
Worksheets("Übersicht").Cells(b, 6).Value = Worksheets("COK").Cells(z, 30).Value
Worksheets("Übersicht").Cells(b, 17) = Worksheets("COK").Cells(z, 15)
Worksheets("Übersicht").Cells(b, 18) = Worksheets("COK").Cells(z, 31)
End If
Next z
End If
Next b
' -----------------------------------------------------------------------------------------------------------------------------------------------------------------
Dim i As Long
Dim m As Long
For m = 2 To lastrowüber
If Worksheets("Übersicht").Cells(m, 2).Value = 3 Then
Worksheets("Status_1").Cells(m, 1) = Worksheets("Übersicht").Cells(m, 1)
End If
Next m
End Sub
|