Anzeige
Archiv - Navigation
1468to1472
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Loop und gebe Daten in unterschiedliche Bereich

Loop und gebe Daten in unterschiedliche Bereich
28.01.2016 14:40:02
Judith
Hallo zusammen,
ich hoffe, ihr koennt mir mit dem folgenden Problem helfen. In Tabellenblatt "JV_Prep" befindet sich meine Datenbasis. Abhaengig von Daten in Spalte A sollen Daten in Tabellenblatt "JV_Template" kopiert werden.
Mein Ziel ist, dass mittels loop in Blatt "JV_Prep" gecheckt wird, welcher Eintrag in Spalte A ist (JV 1, JV 2, oder JV 3) und abhaengig vom Ergebnis dann der Eintrag in Spalte D (cost center) in Blatt "JV_Template" / Spalte C kopiert wird. Daten mit JV 1 sollen in Zeile 9 bis 458 kopiert werden, Daten mit JV 2 in den Bereich von Zeile 464 bis 913 und Daten mit JV 3 in Zeilen 919 bis 1368.
In der Datei anbei habe ich die Daten manuell als Beispiel eingegeben. Habt ihr eine Idee?
https://www.herber.de/bbs/user/103114.xlsm
Viele Gruesse,
Judith

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Loop und gebe Daten in unterschiedliche Bereich
28.01.2016 17:03:00
Michael
Hi Judith,
ich habe auf Deinem Prep-Blatt einen Bereich mit den Anfang- und Ende-Zeilennummern untergebracht, der vom Makro verwendet wird.
Das Makro ist "halb-optimal", d.h. man könnte es bei größeren Datenmengen noch beschleunigen, indem man die Ausgabe nicht direkt ins Template schreibt, sondern zunächst in ein Array.
So sieht das aus:
Option Explicit
Sub kopieren()
Dim JV As Variant       ' Definition der Zeilen
Dim werte As Variant    ' zu kopierender Bereich
Dim w As Long           ' Laufvariable
Dim welchesJV As Long   ' noch eine
Const minZ = 6          ' erste Zeile mit Werten
Dim maxZ As Long        ' unterste Zeile mit Werten
Dim erl As Boolean      ' "erledigt" = wahr/falsch
JV = Sheets("JV_Prep").Range("L2:N4")
maxZ = Sheets("JV_Prep").Range("A" & Rows.Count).End(xlUp).Row
werte = Sheets("JV_Prep").Range("A" & minZ & ":D" & maxZ)
With Sheets("JV_Template")
For w = LBound(werte) To UBound(werte)
erl = False
welchesJV = 0
While Not erl And welchesJV 
Die Datei:

Die Datei https://www.herber.de/bbs/user/103123.xlsm wurde aus Datenschutzgründen gelöscht


Schöne Grüße,
Michael

Anzeige
AW: Loop und gebe Daten in unterschiedliche Bereich
28.01.2016 19:29:45
Judith
Hi Michael,
vielen, vielen Dank! Das ist absolut grandios! Ich tue mich noch ein bisschen schwer beim Verstehen mit den Laufvariablen, aber das ist wirklich spitze!
Viele Gruesse
Judith

Herzlichen Dank für die freundliche Rückmeldung,
28.01.2016 20:36:42
Michael
Judith,
um die Variablen besser nachvollziehen zu können, gibt es die Möglichkeit, den Code im VB-Editor mit F8 zeilenweise ablaufen zu lassen: dann kannst Du währenddessen mal ins Tabellenblatt gucken, ob und was da passiert, aber vor allem mit dem Mauszeiger über eine Variablen gehen, dann wird der jeweilige Wert angezeigt.
Weiterhin kann es ganz hilfreich sein, sich das Array mal genau anzusehen.
Kurze Info anbei: https://www.herber.de/bbs/user/103126.xlsx
Schöne Grüße,
Michael
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige