heute mal ein VBA-Problem (?), welches ich nicht nachvollziehen kann.
Vorweg genommen - ich bin absoluter VBA-Anfänger und die Lösungen hatte ich mir damals erfragt, dann selbst adaptiert und deswegen kann Form und Aufbau ein bisschen "komisch" aussehen.
Aber zumindest funktionieren sie und ich verstehe grob, was da passiert.
Allerdings verstehe ich folgendes nicht:
Bei mir wird durch verschiedene Rechenoperationen eine Zeile mit Zahlen erzeugt (ca. 300 Stück, alle zwichen 0 und 1 mit ca. 4 Nachkommastellen).
Diese Zeile wird immer und immer wieder mit ihren jeweiligen Ergebnissen zeilenweise nach unten kopiert.
Soweit die Theorie und Aufgabe der Befehle. Funktioniert im Ablauf auch ganz gut.
Problem ist, dass beim Kopieren scheinbar nicht bei jedem Kopiervorgane alle Ergebnisse der Zeile richtig übernommen werden. Sondern eines der häufigsten Ergebnisse bei mir (0,5000) an die Stelle kopiert werden.
Die Rechenergebnisse bzw. stimmen jedoch immer in der zu kopierenden Ausgangszeile.
In meiner "Verzweiflung" habe ich nun schon zigmal
Application.CutCopyMode = False
eingefügt, um vielleicht an irgendeinem entscheidenden Schritt irgendein Artefakt aus dem Zwischenspeicher zu löschen.Hilft aber nichts, der Fehler bleibt.
Nachfolgend der komplette Code, falls es hilft.
Sub durchlauf()
Dim avntArray As Variant, iavntItem As Variant
Dim i As Long
avntArray = Array("testen") 'Anpassen !!!
For Each iavntItem In avntArray
Worksheets(iavntItem).EnableCalculation = False
Next
Z = Sheets("Analyse").Cells(1, 20) + 82 ' Zielzeile und Kartei, ab wo Eintragung Ergebnisse _
beginnt (+82 um Ausgleich zwischen Beginn Analysedaten und Beginn Auswertungskopien zu schaffen)
For i = Sheets("Analyse").Cells(1, 20) To Sheets("Analyse").Cells(1, 22)
Sheets("Analyse").Cells(1, 9) = i ' Definiere Zelle (immer in Reihenfolge Nr. Zeilennr. / _
Spaltennr.)
Application.CutCopyMode = False
Application.Run "Alles_kopieren_fuer_Analyse15_mit14er"
Application.CutCopyMode = False
Sheets("Analyse").Cells(Z, 1) = i
Sheets("Analyse").Cells(Z, 2) = Sheets("Analyse").Cells(48, 44)
Sheets("Analyse").Cells(Z, 3) = Sheets("Analyse").Cells(48, 38)
Sheets("Analyse").Cells(Z, 4) = Sheets("Analyse").Cells(48, 39)
Sheets("Analyse").Cells(Z, 5) = Sheets("Analyse").Cells(48, 40)
Application.CutCopyMode = False
Sheets("Analyse").Cells(Z, 21) = Sheets("Analyse").Cells(52, 22)
Sheets("Analyse").Cells(Z, 22) = Sheets("Analyse").Cells(48, 12)
Sheets("Analyse").Cells(Z, 23) = Sheets("Analyse").Cells(48, 13)
Sheets("Analyse").Cells(Z, 24) = Sheets("Analyse").Cells(48, 14)
Sheets("Analyse").Cells(Z, 25) = Sheets("Analyse").Cells(48, 15)
Sheets("Analyse").Cells(Z, 26) = Sheets("Analyse").Cells(48, 16)
Sheets("Analyse").Cells(Z, 27) = Sheets("Analyse").Cells(48, 17)
Sheets("Analyse").Cells(Z, 28) = Sheets("Analyse").Cells(48, 18)
Sheets("Analyse").Cells(Z, 29) = Sheets("Analyse").Cells(48, 19)
Sheets("Analyse").Cells(Z, 30) = Sheets("Analyse").Cells(48, 20)
Sheets("Analyse").Cells(Z, 31) = Sheets("Analyse").Cells(48, 21)
Sheets("Analyse").Cells(Z, 32) = Sheets("Analyse").Cells(48, 22)
Sheets("Analyse").Cells(Z, 33) = Sheets("Analyse").Cells(48, 23)
Sheets("Analyse").Cells(Z, 34) = Sheets("Analyse").Cells(48, 24)
Sheets("Analyse").Cells(Z, 35) = Sheets("Analyse").Cells(48, 25)
Sheets("Analyse").Cells(Z, 36) = Sheets("Analyse").Cells(48, 26)
Sheets("Analyse").Cells(Z, 37) = Sheets("Analyse").Cells(48, 27)
Sheets("Analyse").Cells(Z, 38) = Sheets("Analyse").Cells(48, 28)
Sheets("Analyse").Cells(Z, 39) = Sheets("Analyse").Cells(48, 29)
Sheets("Analyse").Cells(Z, 40) = Sheets("Analyse").Cells(48, 30)
Sheets("Analyse").Cells(Z, 41) = Sheets("Analyse").Cells(48, 31)
Sheets("Analyse").Cells(Z, 42) = Sheets("Analyse").Cells(48, 32)
Sheets("Analyse").Cells(Z, 43) = Sheets("Analyse").Cells(48, 33)
Sheets("Analyse").Cells(Z, 44) = Sheets("Analyse").Cells(48, 34)
Sheets("Analyse").Cells(Z, 45) = Sheets("Analyse").Cells(48, 35)
Sheets("Analyse").Cells(Z, 47) = Sheets("Analyse").Cells(48, 41)
Sheets("Analyse").Cells(Z, 48) = Sheets("Analyse").Cells(48, 42)
Sheets("Analyse").Cells(Z, 49) = Sheets("Analyse").Cells(48, 43)
Sheets("Analyse").Cells(Z, 50) = Sheets("Analyse").Cells(48, 45)
Sheets("Analyse").Cells(Z, 51) = Sheets("Analyse").Cells(48, 46)
Sheets("Analyse").Cells(Z, 55) = Sheets("Analyse").Cells(18, 11)
Sheets("Analyse").Cells(Z, 56) = Sheets("Analyse").Cells(18, 12)
Application.CutCopyMode = False
Sheets("Analyse").Cells(Z, 59) = Sheets("Analyse").Cells(48, 47)
Sheets("Analyse").Cells(Z, 60) = Sheets("Analyse").Cells(48, 48)
Sheets("Analyse").Cells(Z, 61) = Sheets("Analyse").Cells(48, 49)
Sheets("Analyse").Cells(Z, 62) = Sheets("Analyse").Cells(48, 50)
Sheets("Analyse").Cells(Z, 63) = Sheets("Analyse").Cells(48, 51)
Application.CutCopyMode = False
' ab hier Kopieren
Sheets("Analyse").Range(Sheets("Analyse").Cells(26, 29), Sheets("Analyse").Cells(26, 370)).Copy
Sheets("Analyse").Cells(Z, 810).PasteSpecial xlPasteValues
Z = Z + 1
Next i
Application.CutCopyMode = False
For Each iavntItem In avntArray
Worksheets(iavntItem).EnableCalculation = True
Next
Application.CutCopyMode = False
End Sub
Der obere Teil ist für eine etwaige Hilfe wahrscheinlich komplett egal (die ganzen Zuordnungen), aber lieber doch mit reinkopiert.Es würde mich freuen, wenn jemand einen Hinweis hätte, wie man das Problem beheben kann.
Herzliche Grüße
Joerschi