Microsoft Excel

Herbers Excel/VBA-Archiv

VBA Funktion so oft wiederholen wie ...

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 i
Schreibe:
For i = 1 To 14
Cells(65000, 1).End(xlUp).Offset(1, 0) = Worksheets("upload_data").Range("b18")
Next i
Viele Grüße
Robert


  

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 Sub
VG, 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 Sub
VG, 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 …


 

Beiträge aus den Excel-Beispielen zum Thema "VBA Funktion so oft wiederholen wie ..."