VBA Code Zusammenführen
03.02.2021 09:51:59
Jonas
Ich bin erst seit einer Woche mit VBA Codes unterwegs und habe untenstehende Funktion geschrieben. Der Code funktioniert, aber ich habe noch zwei Probleme:
1. Ich möchte nur die Werte und die Formatierung der Zellen kopieren, nicht aber die Formeln. Egal wie ich es versucht habe, ob mit .value oder mit .PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Es hat nie funktioniert. Ich vermute, dass ich die Auswahl vor dem .Copy beim .PasteSpecial nicht richtig definiert habe.
2. Es sollten nur die Spalten B-E kopiert werden. Um diese zu beheben, habe ich den zweiten Sub geschrieben, aber könnte man diesen in den 1. integrieren? Kann mir da Jemand helfen? Besten Dank! P.S. Ich habe die Datei nicht angehängt, da es 32 Arbeitsblätter sind und ich diesen VBA dann _ auf die andern auch anwenden möchte. Die Zeit sich einem Überblick in diesem File zu machen möchte ich euch sparen. Wenn es allerdings anders nicht geht, kann ich die Datei noch liefern.
Sub KopieErstellen()
Dim lngZeile As Long
Dim lngErste As Long
With Worksheets("ATPL (H) IR int. 010 Air Law")
For lngZeile = 2 To 712
If Worksheets("010 Air Law").Cells(lngZeile, 4) = "x" Then
lngErste = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(xlUp). _
Row, .Rows.Count) + 1
Worksheets("010 Air Law").Rows(lngZeile).Copy .Cells(lngErste, 1)
End If
If Worksheets("010 Air Law").Cells(lngZeile, 2).Font.Bold = True Then
lngErste = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(xlUp).Row, _
.Rows.Count) + 1
Worksheets("010 Air Law").Rows(lngZeile).Copy .Cells(lngErste, 1)
End If
Next lngZeile
End With
End Sub
Sub Clear()
ActiveSheet.Range(Columns(6), Columns(Columns.Count)).Delete
End Sub