Falsche Spalte

Hallo,

ich habe schon wieder ein Problem, nur diesmal sehe ich wirklich keinen Ansatz.

Ich möchte in der Spalte T eine Formel schreiben und diese dann durch den AutoFill die gesamte Spalte entlang kopieren. (siehe unten)
Es funktioniert alles, nur das die Spalte T die zwanzigste Spalte ist und nicht die 21…

Selection.AutoFill Destination:=Range(„T4:T“ & Cells(Rows.Count, 21).End(xlUp).Row)

Gebe ich zwanzig ein kommt eine Fehlermeldung, gebe ich die 21 ein funktioniert alles.

An was liegt das?

Und nein, ich habe keine Spalten ausgeblendet.

Der komplette Code:

Range(„T4“).Select
ActiveCell.FormulaR1C1 = „=RC[-4]-RC[-13]“
Range(„T4“).Select
Selection.AutoFill Destination:=Range(„T4:T“ & Cells(Rows.Count, 21).End(xlUp).Row)

Vielen Dank für Eure Hilfe

Hallo.

Es funktioniert alles, nur das die Spalte T die zwanzigste
Spalte ist und nicht die 21…

Selection.AutoFill Destination:=Range(„T4:T“ &
Cells(Rows.Count, 21).End(xlUp).Row)

Gebe ich zwanzig ein kommt eine Fehlermeldung, gebe ich die 21
ein funktioniert alles.

An was liegt das?

Ich sitze hier und versuche, den Code zu verstehen. Du trägst in Zelle T4 die Formel „=P4-G4“ ein und willst diese dann runterkopieren bis zur letzten, nicht leeren Zelle in Spalte T.
Steht denn in Spalte T schon in irgendeiner anderen Zeile unterhalb von T4 etwas drin? Nur, wenn das der Fall ist, könnte der Code „Cells(Rows.Count, 20 ).End(xlUp).Row“ einen anderen Wert zurückgeben als „4“.

Der Code „Cells(Rows.Count, 21 ).End(xlUp).Row“ gibt mir beim Testen der Wert 1 zurück, weil bei mir in Spalte U keine Zelle etwas enthält. Darum füllt bei mir Dein Code den Zellbereich T1:T4 mit Deiner Formel.

Welcher Zellbereich genau soll denn mit der Formel gefüllt werden?

VG
Carsten

Ich möchte in der Spalte T eine Formel schreiben und diese
dann durch den AutoFill die gesamte Spalte entlang kopieren.
(siehe unten)
Es funktioniert alles, nur das die Spalte T die zwanzigste
Spalte ist und nicht die 21…

Selection.AutoFill Destination:=Range(„T4:T“ &
Cells(Rows.Count, 21).End(xlUp).Row)

Gebe ich zwanzig ein kommt eine Fehlermeldung, gebe ich die 21
ein funktioniert alles.

Hallo Pepe,

du trägst in T4 eine Formel ein. Wenn darunter keine gefüllten Zellen mehr kommen in T so ist daß die unterste gefüllte Zelle/Zeilennummer.

Du willst dann mit Autofill das was in T4 steht nach T4:T4 kopieren. Scheinbar ist das für Excel/Vba wie ein Zirkelbezug.

Sub nn()
Range("T4").Formula = "=P4-G4"
If Cells(Rows.Count, 20).End(xlUp).Row \> 4 Then
 Range("T4").AutoFill Destination:=Range("T4:T" & Cells(Rows.Count, 20).End(xlUp).Row)
End If
End Sub

Gruß
Reinhard

Nachtrag
Hallo.

Ich möchte in der Spalte T eine Formel schreiben und diese dann durch den AutoFill die gesamte Spalte entlang kopieren. (siehe unten)

Das habe ich wohl überlesen :smile:

Dafür brauchst Du natürlich die unterste Zeile. Also dann wohl so:

Range("T4").FormulaR1C1 = "=RC[-4]-RC[-13]"
Range("T4").AutoFill Range("T4:T" & CStr(Rows.Count))

Das mit der Select-Anweisung kannst Du (in den allermeisten Fällen) weglassen.
VG
Carsten

Vielen Dank euch. Scheint doch mal wieder ein Logikfehler meinerseits gewesen zu sein.

Funktioniert jetzt alles und den Code kann man auch nachvollziehen.

Schöne Ostern