![]() |
Betrifft: VBA Funktion so oft wiederholen wie ...
von: Max
Geschrieben am: 01.08.2014 14:40:30
Hallo *,
ich habe noch eine Frage. Mittlerweile kann ich meine Funktion mithilfe von
For i = 1 To 14
Cells(65000, 1).End(xlUp).Offset(1, 0).Select
Selection = Worksheets("upload_data").Range("b18")
Next i
14x wiederholen lassen. Nun möchte ich, dass die Funktion so oft wiederholt wird, wie ich in dem Blatt "upload_data" gefüllte Zellen im Bereich ab B18 habe.
Kann man das evtl. irgendwie so gestalten?
y = Anzahl an gefüllten Zellen ("B18:B" & Lastrow)
Vielen Dank!
![]() ![]() |
Betrifft: AW: VBA Funktion so oft wiederholen wie ...
von: Robert
Geschrieben am: 01.08.2014 14:48:19
Hallo Max.
Möchtest du bei jeder Ausführung dann auch entsprechend nicht mehr Range(B18) einfügen, sondern dann B19, B20....?
PS: Goldene Regel von VBA: Meide .Select und .Activate wie den Teufel. Bei Großen Files rechnet er dir dann ewig rum.
Statt:
For i = 1 To 14 Cells(65000, 1).End(xlUp).Offset(1, 0).Select Selection = Worksheets("upload_data").Range("b18") Next iSchreibe:
For i = 1 To 14 Cells(65000, 1).End(xlUp).Offset(1, 0) = Worksheets("upload_data").Range("b18") Next iViele Grüße
![]() ![]() |
Betrifft: AW: VBA Funktion so oft wiederholen wie ...
von: {Boris}
Geschrieben am: 01.08.2014 14:51:36
Hi Max,
Option Explicit Sub til() Dim i As Long, j As Long j = Worksheets("upload_data").Cells(Rows.Count, 2).End(xlUp).Row For i = 18 To Worksheets("upload_data").Cells(Rows.Count, 2).End(xlUp).Row Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) = Worksheets("upload_data").Cells(i, 2) Next i End SubVG, Boris
![]() ![]() |
Betrifft: Sorry...
von: {Boris}
Geschrieben am: 01.08.2014 14:52:50
...war etwas "doppelt":
Option Explicit Sub til() Dim i As Long, j As Long j = Worksheets("upload_data").Cells(Rows.Count, 2).End(xlUp).Row For i = 18 To j Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) = Worksheets("upload_data").Cells(i, 2) Next i End SubVG, Boris
![]() ![]() |
Betrifft: AW: VBA Funktion so oft wiederholen wie ...
von: Max
Geschrieben am: 01.08.2014 15:05:33
Hallo Robert & Boris,
ich war noch etwas zu ungenau bei der Beschreibung... Aber vielen Dank für eure schnellen Antworten.
Ich habe zwei Tabellenblätter ("Upload_data" und "data"). Per Schaltfläche in Tabellenblatt "data" starte ich aktuell folgenden Makro 14x:
For i = 1 To 14
Cells(65000, 1).End(xlUp).Offset(1, 0) = Worksheets("upload_data").Range("b18")
Next i
... und weitere von diesen "Übertragungsfunktionen".
Nachdem upload_data b18 14x untereinander kopiert wurde, soll dassselbe mit b19 und allen weiteren gefüllten Zellen im bereich ab b18 durchgeführt werden.
![]() ![]() |
Betrifft: AW: VBA Funktion so oft wiederholen wie ...
von: Max
Geschrieben am: 01.08.2014 15:15:27
Also vielleicht wäre es ja wiefolgt möglich:
For x = 1 to (AnzahlZellen Bereich b18:letzte beschriebene Zelle Bereich B)
For i = 1 To 14
Cells(65000, 1).End(xlUp).Offset(1, 0) = Worksheets("upload_data").Range("b18"+x)
Next i
("b18"+x) sodas auf b19 etc. gesprungen wird (falls das geht)
Next x
Geht sowas in der Art irgendwie??
Vielen Lieben Dank im Voraus!
![]() ![]() |
Betrifft: Wo ist LaufVariable i geblieben, ...
von: Luc:-?
Geschrieben am: 01.08.2014 16:00:43
…Max?
So was in der Art geht natürlich nicht, aber schon, wenn's richtig gemacht wird. :->
.Range("b18"+x) ergibt bestenfalls B181, B182 usw. Außerdem würde auch bei richtigerem .Cells(2, 18 + x) niemals B18 angesprochen wdn. Wenn das aber sein soll, dann überleg mal, warum nicht! :->
Viell solltest du dich doch erst mal etwas intensiver mit den Grundlagen von VBA befassen!
Gruß, Luc :-?
Besser informiert mit …
![]() |