Registriert seit: 02.08.2018
Version(en): 2010
Hallo,
Ich möchte bei einer Excel Datei den Wert in 2 Zellen über eine Formel berechnen Lassen und anschließend alle weiteren Zellen unterhalb über autofill nach der selben Formel berechen.
Hab dazu mal folgendes Makro aufgezeichnet.
Sub Spalten_einfügen()
ActiveCell.FormulaR1C1 = "=RC[-1]*0.0061037"
Selection.AutoFill Destination:=Range("B15:B235557")
Range("B15:B235557").Select
Range("C15").Select
ActiveCell.FormulaR1C1 = "=ABS(RC[-1])"
Selection.AutoFill Destination:=Range("C15:C235557")
Range("C15:C235557").Select
End Sub
Beim Ausführen bekomme ich den Laufzeitehler 1004 angezeigt.
Woran kann das liegen?
Viele Grüße Sandro
Registriert seit: 02.05.2018
Version(en): Excel 365 & 2016
08.08.2018, 13:38
(Dieser Beitrag wurde zuletzt bearbeitet: 08.08.2018, 13:39 von MisterBurns.)
Ich vermute mal ganz stark, dass deine Datei nur 65000 Zeilen hat. Somit kann also nicht bis zur Zeile 235557 ausgefüllt werden.
Schöne Grüße
Berni
Registriert seit: 02.08.2018
Version(en): 2010
(08.08.2018, 13:38)MisterBurns schrieb: Ich vermute mal ganz stark, dass deine Datei nur 65000 Zeilen hat. Somit kann also nicht bis zur Zeile 235557 ausgefüllt werden.
Doch die Datei wird bis Zeile 235557 beschrieben
Registriert seit: 02.05.2018
Version(en): Excel 365 & 2016
08.08.2018, 13:46
(Dieser Beitrag wurde zuletzt bearbeitet: 08.08.2018, 13:47 von MisterBurns.)
Ach, versteh schon, wo der Fehler liegt. Mach es so:
Code:
Sub Spalten_einfügen()
Dim letzte As Long
letzte = Cells(Rows.Count, 1).End(xlUp).Row
ActiveCell.FormulaR1C1 = "=RC[-1]*0.0061037"
Selection.AutoFill Destination:=Range("B15:B" & letzte)
Range("C15").Select
ActiveCell.FormulaR1C1 = "=ABS(RC[-1])"
Selection.AutoFill Destination:=Range("C15:C" & letzte)
End Sub
Du solltest aber generell nicht mit Select-Anweisungen arbeiten. Wenn du noch sagst, ob immer in B15 gestartet werden soll, bau ich dir das noch um.
Schöne Grüße
Berni
Registriert seit: 02.08.2018
Version(en): 2010
08.08.2018, 13:52
(Dieser Beitrag wurde zuletzt bearbeitet: 08.08.2018, 15:53 von WillWissen.
Bearbeitungsgrund: Antwort aus Zitat rausgenommen-unnötiges Zitat entfernt
)
Hey vielen Dank erstmal.
Hab den Code gerade mal getestet. Er zeigt mir wieder den Laufzeitfehler an und es steht da "Die Autofill-Methode des Range-Objektes konnte nicht ausgeführt werden"
Registriert seit: 02.05.2018
Version(en): Excel 365 & 2016
08.08.2018, 14:01
(Dieser Beitrag wurde zuletzt bearbeitet: 08.08.2018, 14:02 von MisterBurns.)
1. Hör bitte auf, ständig komplette Beiträge zu zitieren. Diese Funktion ist dafür da, konkret auf Fragen oder Hinweise einzugehen. Wozu zitierst du überhaupt Code?
2. Autofill funktioniert nur dann, wenn in der Spalte davor auch Werte stehen. Falls dort keine Werte stehen, musst du statt Autofill Copy verwenden.
3. Bevor es noch mehr wilde Raterei wird, lade bitte ein Beispielmappe hoch. Andernfalls werde ich dir noch drei Codevarianten präsentieren, von denen keine passt.
4. Hatte ich dir eine Frage gestellt, diese darfst du auch gerne noch beantworten.
Schöne Grüße
Berni
Registriert seit: 02.08.2018
Version(en): 2010
(08.08.2018, 14:01)MisterBurns schrieb: 2. Autofill funktioniert nur dann, wenn in der Spalte davor auch Werte stehen. Falls dort keine Werte stehen, musst du statt Autofill Copy verwenden.
Gruß Berni, Besten Dank für die Hilfe mit dem Copy-Befehl funktioniert es bestens !:23:
Registriert seit: 02.05.2018
Version(en): Excel 365 & 2016
Trotzdem der Vollständigkeit halber noch der richtige Code, auch wenn du nicht auf meine Frage eingehen magst.
Code:
Sub Spalten_einfügen()
Dim letzte As Long
letzte = Cells(Rows.Count, 1).End(xlUp).Row
Range("B15").FormulaR1C1 = "=RC[-1]*0.0061037"
Range("C15").FormulaR1C1 = "=ABS(RC[-1])"
Range("B15:C15").Copy Destination:=Range("B15:C" & letzte)
End Sub
Schöne Grüße
Berni