wieso kommt es beim Ausführen von Makro 3 zu der Fehlermeldung?
Was kann ich da machen?
https://www.herber.de/bbs/user/131632.xlsm
Danke für eure Hilfe
Christian
.....
If x > 1 Then
.Cells(x, 2).Resize(1, 2).Copy .Range("B1")
.Cells(x, 7).Resize(1, 5).Copy .Range("G1")
.Cells(x, 5).Copy .Range("E1")
.Rows(x).Value = .Rows(x).Value
End If
.Range("G1:J1").Copy .Range("G2:J" & loLetzte)
.Range("G2:J" & loLetzte).Copy
.Range("G2:J" & loLetzte).PasteSpecial xlPasteValues
.Cells(x, 12) = Empty 'markierung löschen
.Range("E2").Select
End With
End Sub
Application.CutCopyMode = False
Sub Makro3()
Dim rng
Dim loLetzte As Long, j As Long, x As Long
Application.ScreenUpdating = False
With Worksheets("Ergebnis")
loLetzte = .Cells(Rows.Count, 1).End(xlUp).Row
.Range("B1:C1").Copy .Range("B1:C" & loLetzte)
.Range("B2:C" & loLetzte).Copy
.Range("B2:C" & loLetzte).PasteSpecial xlPasteValues
.Range("E1").Copy .Range("E2:E" & loLetzte)
.Range("E2:E" & loLetzte).Copy
.Range("E2:E" & loLetzte).PasteSpecial xlPasteValues
.Range("K1").Copy .Range("K1:K" & loLetzte)
.Range("K2:K" & loLetzte).Copy
.Range("K2:K" & loLetzte).PasteSpecial xlPasteValues
.Columns("K:K").Copy
.Columns("F:F").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
.Range("L1") = "Formel" 'Zeile 1 markieren!!
.Sort.SortFields.Clear
.Sort.SortFields.Add Key:=.Range("C1:C" & loLetzte), SortOn:=xlSortOnValues, _
Order:=xlAscending, DataOption:=xlSortNormal
.Sort.SortFields.Add Key:=.Range("F1:F" & loLetzte), SortOn:=xlSortOnValues, _
Order:=xlDescending, DataOption:=xlSortNormal
With .Sort
.SetRange Range("A1:L" & loLetzte)
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
'Zeile der Markierung in Spalte l suchen
x = .Cells(Rows.Count, 12).End(xlUp).Row
'Formeln ggf. in Zeile1 zurück kopieren
If x > 1 Then
.Cells(x, 2).Resize(1, 2).Copy .Range("B1")
.Cells(x, 7).Resize(1, 5).Copy .Range("G1")
.Cells(x, 5).Copy .Range("E1")
.Rows(x).Value = .Rows(x).Value
End If
Set rng = .Range("G2:J" & loLetzte)
.Range("G1:J1").Copy rng
rng.Value = rng.Value2
.Cells(x, 12) = Empty 'markierung löschen
.Range("E2").Select
End With
End Sub
.Range("G2:J" & loLetzte).Value = .Range("G2:J" & loLetzte).Value2
.Cells(x, 12) = Empty 'markierung löschen
.Range("E2").Select
lG und einen schönen Abend Euch!!Sub Makro3()
Dim loLetzte As Long, j As Long, x As Long
Application.ScreenUpdating = False
With Worksheets("Ergebnis")
loLetzte = .Cells(Rows.Count, 1).End(xlUp).Row
.Range("K1").Copy .Range("K1:K" & loLetzte)
.Range("K2:K" & loLetzte).Copy
.Range("K2:K" & loLetzte).PasteSpecial xlPasteValues
.Range("B1:C1").Copy .Range("B1:C" & loLetzte)
.Range("B2:C" & loLetzte).Copy
.Range("B2:C" & loLetzte).PasteSpecial xlPasteValues
.Range("E1").Copy .Range("E2:E" & loLetzte)
.Range("E2:E" & loLetzte).Copy
.Range("E2:E" & loLetzte).PasteSpecial xlPasteValues
.Columns("K:K").Copy
.Columns("F:F").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
.Range("L1") = "Formel" 'Zeile 1 markieren!!
.Sort.SortFields.Clear
.Sort.SortFields.Add Key:=.Range("C1:C" & loLetzte), SortOn:=xlSortOnValues, _
Order:=xlAscending, DataOption:=xlSortNormal
.Sort.SortFields.Add Key:=.Range("F1:F" & loLetzte), SortOn:=xlSortOnValues, _
Order:=xlDescending, DataOption:=xlSortNormal
With .Sort
.SetRange Range("A1:L" & loLetzte)
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
'Zeile der Markierung in Spalte l suchen
x = .Cells(Rows.Count, 12).End(xlUp).Row
'Formeln ggf. in Zeile1 zurück kopieren
If x > 1 Then
.Cells(x, 2).Resize(1, 2).Copy .Range("B1")
.Cells(x, 7).Resize(1, 5).Copy .Range("G1")
.Cells(x, 5).Copy .Range("E1")
.Rows(x).Value = .Rows(x).Value
End If
.Range("G1:J1").Copy .Range("G2:J" & loLetzte)
.Range("G2:J" & loLetzte).Copy
.Range("G2:J" & loLetzte).PasteSpecial xlPasteValues
.Cells(x, 12) = Empty 'markierung löschen
.Range("E2").Select
End With
Application.CutCopyMode = False
End Sub
Sub RowsDel()
Dim i As Long, lC As Long
With Worksheets("Ergebnis")
lC = .Cells(Rows.Count, 11).End(xlUp).Row
For i = lC To 2 Step -1
If .Cells(i, 11).Value = "" Then
.Rows(i).Delete
End If
Next i
End With
End Sub
Du kannst das Makro entweder direkt einbauen, dann einfach alles entfernen, was Du schon im Deinem Makro hast, oder du gibst an der Stelle in Deinem Makro, wo er die Zeilen löschen soll das hier ein:Call RowsDel
und dann einfach weiter, wie gehabt.