Microsoft Excel

Herbers Excel/VBA-Archiv

VBA Code 13x hintereinander ausführen

Betrifft: VBA Code 13x hintereinander ausführen von: Max
Geschrieben am: 01.08.2014 12:38:20

Hallo meine schlauen Füchse,

ich habe nochmal eine Frage.

Ich habe einen Makro geschrieben:

Cells(65000, 1).End(xlUp).Offset(1, 0).Select
Selection = Worksheets("upload_data").Range("b18")

Cells(65000, 3).End(xlUp).Offset(1, 0).Select
Selection = Worksheets("upload_data").Range("c18")

... ganz viele weitere Übertragungen

Dieser Makro soll nach Knopfdruck 14x ausgeführt werden. Ich habe keine Lust, jeden einzelnen Teil des Makros per Copy-Paste 14x hintereinander zu kopieren, geht das evtl. auch einfacher??

Beste Grüße und vielen Dank im Voraus!

  

Betrifft: AW: VBA Code 13x hintereinander ausführen von: Hajo_Zi
Geschrieben am: 01.08.2014 12:42:41

warum schreiben wir Beiträge wenn Du Sie doch nicht beachtest

Sub mal()
Dim InI As Integer
For InI = 1 To 23
Cells(65000, InI).End(xlUp).Offset(1, 0) = Worksheets("upload_data").Cells(18, InI + 1)
Next
End Sub
GrußformelHomepage


  

Betrifft: AW: VBA Code 13x hintereinander ausführen von: Max
Geschrieben am: 01.08.2014 12:59:42

Okay, vielen Dank allen erstmal. Würde ich auf anhieb das finden was ich suche, würde ich gewiss hier nicht nachfragen ;)

Mein Wunsch wäre folgender, vielleicht habe ich das nicht ganz präzise formuliert. Mein Code sieht derzeit wiefolgt aus:

Cells(65000, 1).End(xlUp).Offset(1, 0).Select
Selection = Worksheets("upload_data").Range("b18")

Cells(65000, 1).End(xlUp).Offset(1, 0).Select
Selection = Worksheets("upload_data").Range("b18")

Cells(65000, 1).End(xlUp).Offset(1, 0).Select
Selection = Worksheets("upload_data").Range("b18")

Cells(65000, 1).End(xlUp).Offset(1, 0).Select
Selection = Worksheets("upload_data").Range("b18")

Cells(65000, 1).End(xlUp).Offset(1, 0).Select
Selection = Worksheets("upload_data").Range("b18")

Cells(65000, 1).End(xlUp).Offset(1, 0).Select
Selection = Worksheets("upload_data").Range("b18")

Cells(65000, 1).End(xlUp).Offset(1, 0).Select
Selection = Worksheets("upload_data").Range("b18")

Cells(65000, 1).End(xlUp).Offset(1, 0).Select
Selection = Worksheets("upload_data").Range("b18")

Cells(65000, 1).End(xlUp).Offset(1, 0).Select
Selection = Worksheets("upload_data").Range("b18")

Cells(65000, 1).End(xlUp).Offset(1, 0).Select
Selection = Worksheets("upload_data").Range("b18")

Cells(65000, 1).End(xlUp).Offset(1, 0).Select
Selection = Worksheets("upload_data").Range("b18")

Cells(65000, 1).End(xlUp).Offset(1, 0).Select
Selection = Worksheets("upload_data").Range("b18")

Cells(65000, 1).End(xlUp).Offset(1, 0).Select
Selection = Worksheets("upload_data").Range("b18")

Das ist 14x derselbe "Befehl" der ausgeführt werden soll. Das ganze möchte ich aber eben nicht so 14x hintereinander programmiert haben, sondern es soll 14x ausgeführt werden und anschließend geht man im Makro weiter, weil noch weitere 14xEr Schleifen folgen.

Grüße Max ;)



  

Betrifft: AW: VBA Code 13x hintereinander ausführen von: Hajo_Zi
Geschrieben am: 01.08.2014 13:13:45

Hallo Max,

Du hast Extra im ersten Beitrag anderen Code gepostet, da Du den Code selber an Deine Bedingungen anpassen möchtest, also mache es auch. Ich bin raus.

Gruß Hajo


  

Betrifft: AW: VBA Code 13x hintereinander ausführen von: Daniel
Geschrieben am: 01.08.2014 12:49:25

Hi

um den selben Codeteil mehrfach hintereinander auszuführen, verwendet man eine For-Next-Schleife.
Müssen Werte variiert werden, so berechnet man diese aus dem Schleifenzähler (hier die Spalte des zu kopierenden Bereichs)

Sub Makro1
Dim x as long
for x = 0 to 13
    Cells(65000, 1).End(xlUp).Offset(1, 0) = Worksheets("upload_data").Range("b18").Offset(0, x) _
.value
Next
End Sub
In diesem Fall würde aber folgende Befehle ausreichen, um alle 14 Werte auf einmal zu kopieren:
Worksheets("upload_data").Range("B18").Resize(1, 14).Copy
Cells(Rows.Count, 1).End(xlup).Offset(1, 0).PasteSpecial xlpastevalues, Transpose:=True

das entspricht folgender Aktion ein Excel:
- im Blatt "upload_data" den Zellbereich B18:O18 kopieren
- als Wert mit der Option "Transponieren" im aktuellen Blatt am Tabellenende einfügen (Inhalte einfügen - Werte + Transponieren)
dh du brauchst hier keine Schleife sondern kannst alle Werte auf einmal übertragen.

Gruß Daniel


  

Betrifft: Zu den BasisKenntnissen JEDER ... von: Luc:-?
Geschrieben am: 01.08.2014 12:50:18

…PgmierSprache gehören auch zyklische, d.h. wiederkehrende, PgmAbläufe, auch (Pgm-)Schleifen genannt, Max!
Gruß, Luc :-?


  

Betrifft: AW: VBA Code 13x hintereinander ausführen von: Max
Geschrieben am: 01.08.2014 13:15:52

Hat sich erledigt!

Entschuldige bitte Hajo!


 

Beiträge aus den Excel-Beispielen zum Thema "VBA Code 13x hintereinander ausführen"