1.7k Aufrufe
Gefragt in Tabellenkalkulation von ahorn38 Experte (3.2k Punkte)
Hallo,

ich habe eine Befehlsfolge mit der ich aus dem aktuellen Sheet heraus Eintragungen in ("MtglKonto") vornehmen möchte:

Sheets("MtglKonto").Cells(12 + l, 1) = Cells(rng, 1)
Sheets("MtglKonto").Cells(12 + l, 2) = Cells(rng, 2)
Sheets("MtglKonto").Cells(12 + l, 3) = Cells(rng, 3)
Sheets("MtglKonto").Cells(12 + l, 4) = Cells(rng, 4)
Sheets("MtglKonto").Cells(12 + l, 5) = Cells(rng, 5)
Sheets("MtglKonto").Cells(12 + l, 6) = Cells(rng, 6)
Sheets("MtglKonto").Cells(12 + l, 7) = Cells(rng, 7)

Ich wollte das verkürzen durch:
'Sheets("MtglKonto").Range(Cells(12 + l, 1), Cells(12 + l, 7)) = Range(Cells(rng, 1), Cells(rgn, 7))

was aber nicht funktioniert. Habt ihr einen Tipp wie es doch einfacher geht?
Danke und Gruß

7 Antworten

0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
Sheets("MtglKonto").Range(Cells(12 + l, 1), Cells(12 + l, 7)) = Cells(rng, 1)
ungetestet.

Gruß hajo
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi all ^^

eine arrayvariante

gruss nighty

bereich anpassen

z.b.

Sub KArray()
Dim Dat As Variant
Dat = Range("A13:G20")
Worksheets(2).Range("A20:G27") = Dat
End Sub
0 Punkte
Beantwortet von ahorn38 Experte (3.2k Punkte)
Hallo,
hab's probiert, leider klappen beide Vorschläge nicht.

nightys Variante habe ich dabei für mich wie folgt angepasst:
..
Dim Dat As Variant
Dat = Range(Cells(rng, 1), Cells(rng, 7))
Worksheets("MtglKonto").Range(Cells(12 + 1, 1), Cells(12 + l, 7)) = Dat
.....
Gruß
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi all ^^

Einige Möglichkeiten zur Ermittlung flexobler Bereiche zum befüllen eines Array

eventuell liesse sich auch eine schleife vermeiden

gruss nighty

Sub Ermittlung()
Rem letzte zeile eines sheets
a = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
Rem letze spalte eines sheets
b = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Column
Rem letzte zeile einer spalte
c = ActiveSheet.Range(Cells(Rows.Count, 1), Cells(Rows.Count, 1)).End(xlUp).Row
Rem letzte spalte einer zeile
d = ActiveSheet.Rows("1:1").End(xlToRight).Column
End Sub



geruss nighty
0 Punkte
Beantwortet von ahorn38 Experte (3.2k Punkte)
danke ,ich versuche es noch einmal.Gruß
0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)
Hallo Andreas,

du kannst die Daten einfach kopieren:

Bsp:
ActiveSheet.Range(Cells(Rng, 1), Cells(Rng, 7)).Copy _
Destination:=Worksheets("MtglKonto").Cells(12 + 1, 1)


Du kannst natürlich auch eine Schleife verwenden:

For spalte = 1 To 7
Worksheets("MtglKonto").Cells(12 + l, spalte) = ActiveSheet.Cells(Rng, spalte)
Next spalte


Gruß

M.O.
0 Punkte
Beantwortet von ahorn38 Experte (3.2k Punkte)
Hallo M.O.,

beides gute Vorschläge und besser als das was ich bisher hatte, werde eines von beiden übernehmen. Vilen Dank!
Gruß
Andreas
...