2.1k Aufrufe
in Tabellenkalkulation von ahorn38 Experte (3.3k 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
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
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
von ahorn38 Experte (3.3k 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
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
von ahorn38 Experte (3.3k Punkte)
danke ,ich versuche es noch einmal.Gruß
0 Punkte
von m-o Profi (22.9k 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
von ahorn38 Experte (3.3k 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

Deine Antwort

Dein angezeigter Name (optional):
Datenschutz: Deine Email-Adresse benutzen wir ausschließlich, um dir Benachrichtigungen zu schicken. Es gilt unsere Datenschutzerklärung.
Anti-Spam-Captcha:
Bitte logge dich ein oder melde dich neu an, um das Anti-Spam-Captcha zu vermeiden.
...