Ich benötige mal Hilfe zum Thema VBA: Ich möchte monatlich Daten aus einer gefilterten Liste kopieren und in eine andere (identisch aufgebaute) gefilterte Liste einfügen. Durch die Filterung habe ich aber keinen zusammenhängenden Bereich. Eine Beispieldatei habe ich angefügt. Ich habe gelernt, dass in diesem Fall beim Einfügen die ausgeblendeten Felder einfach überschrieben werden. Um das zu verhindern, ist wohl ein Makro notwendig. Nach einiger Recherche habe ich auch etwas Entsprechendes gefunden:
Public Sub Daten_in_gefilterte_Zeilen_einfügen()
On Error Resume Next
Dim objZA As New DataObject
Dim SPL1 As Variant
Dim SPL2 As Variant
Dim lngZ As Long
Dim lngZZ As Long
Dim intI As Integer
Dim intS As Integer
Dim strText As String
objZA.GetFromClipboard
strText = objZA.GetText
If Err.Number 0 Then
MsgBox "Es wurden keine Daten kopiert!", 48
Exit Sub
End If
lngZZ = ActiveCell.Row
intS = ActiveCell.Column
SPL1 = Split(strText, Chr(10))
For lngZ = 0 To UBound(SPL1) - 1
For lngZZ = lngZZ To 1048576
If Cells(lngZZ, intS).EntireRow.Hidden = False Then
SPL2 = Split(SPL1(lngZ), Chr(9))
For intI = 0 To UBound(SPL2)
Cells(lngZZ, intS + intI).Value = _
LTrim(RTrim(WorksheetFunction.Proper(Replace(SPL2(intI), Chr(13), ""))))
Next
lngZZ = lngZZ + 1
Exit For
End If
Next
Next
End Sub
Allerdings funktioniert das nicht wie vorgesehen. Egal was ich mache, das Makro läuft nicht bis zum Schluss durch, sondern bleibt mittendrin hängen und bringt die entsprechende Fehlermeldung. Leider kenne ich mich in VBA so gut wie gar nicht aus. Daher weiß ich auch nicht, wo ich was anpassen muss, damit das Makro funktioniert.Vielleicht hat ja jemand den entscheidenden Tipp (oder eine andere Lösung) für mich? Ich bedanke mich jedenfalls schon mal vorab!
Viele Grüße
Rico
https://www.herber.de/bbs/user/131402.xlsx