2.3k Aufrufe
Gefragt in Tabellenkalkulation von little-key Mitglied (333 Punkte)
Habe mal versucht hier was zusammen zu basteln, leider ohne Erfolg.

Wie kann das funktionieren??

Sub Test()

Dim y As Integer
y = InputBox("Bitte die letzte Zeilennummer der Tabelle festlegen:", "Tabellenende festlegen")
Columns("D:D").Select
Selection.Insert Shift:=xlToRight
Range("D2").Select
ActiveCell.FormulaR1C1 = _
"=CONCATENATE(RC[-1],"" "",""("",RC[-3],"")"","" "",RC[2])"

Selection.AutoFill Destination:=Range("D2:Dy"), Type:=xlFillDefault
Range("D2:Dy").Select

End Sub

Selection.Auto Fill Destination macht Probleme, falls das überhaupt mit einer Variable geht.
Denke, dass Profis wissen, was hier passieren soll.

Danke schon mal.

4 Antworten

0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo Namenloser,

nachfolgend Dein geänderter Code. Ich habe zusätzlich die ganzen Select-Anweisungen gelöscht, da diese nicht benötigt werden.

Sub Test()

Dim y As Integer
y = InputBox("Bitte die letzte Zeilennummer der Tabelle festlegen:", "Tabellenende festlegen")
Range("D2").FormulaR1C1 = _
"=CONCATENATE(RC[-1],"" "",""("",RC[-3],"")"","" "",RC[2])"

Range("D2").AutoFill Destination:=Range("D2:D" & y), Type:=xlFillDefault

End Sub

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von little-key Mitglied (333 Punkte)
Hallo Oliver,

Verzeihung, meinen Namen vergessen.

Herzlichen Dank, funktioniert wie immer tadellos.

Auch gleich wieder was dazu gelernt.

Mario
0 Punkte
Beantwortet von little-key Mitglied (333 Punkte)
Hallo Oliver,

doch noch eine Frage dazu:

Wenn in der o. g. Formel die Variable gesetzt ist (also letzte Zeilennummer), würde ich gern noch alle Einträge nach dieser Zeile gelöscht haben.

Kannst Du den Code dazu noch ergänzen?

Danke Mario
0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo Mario,

ich hoffe, ich habe Dich richtig verstanden:

Option Explicit

Sub Test()

Dim y As Integer
y = InputBox("Bitte die letzte Zeilennummer der Tabelle festlegen:", "Tabellenende festlegen")
Range("D2").FormulaR1C1 = _
"=CONCATENATE(RC[-1],"" "",""("",RC[-3],"")"","" "",RC[2])"

Range("D2").AutoFill Destination:=Range("D2:D" & y), Type:=xlFillDefault

Range("D" & y + 1 & ":D65536").ClearContents
End Sub
Mit dem Code wird abschließend von der nächsten Zeile, die Du angegeben hast, bis zur Zeile 65536 alles in Spalte D gelöscht.

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
...