Microsoft Excel

Herbers Excel/VBA-Archiv

per VBA Liste zum kopieren abarbeiten


Betrifft: per VBA Liste zum kopieren abarbeiten von: Carsten
Geschrieben am: 26.09.2017 08:05:11

Hallo,

ich muss eine Excel-Mappe gegen eine neuere Version austauschen.
In einem der Sheets sind Eingaben, welche in die neue Mappe übernommen werden sollen.
Ich öffne (manuell) die alte Datei und habe ein Add-In geschrieben.
Das Add-In öffnet die neue Mappe vom Laufwerk, kopiert den Sheet der alten Mappe in dem die zu kopierenden Daten sind in die neue Mappe, kopiert die einzelnen Zellinhalte in den neuen Sheet, löscht den vorher kopierten Sheet und speichert die neue Mappe unter dem Namen der alten Mappe ab. Soweit so gut.
Der Punkt "kopiert die einzelnen Zellinhalte" ist jetzt aber sehr viel Code.
Hier würde ich gerne so ansetzen:
Zellen die kopiert werden sollen in einer Liste im Code definieren:
1 B1:B5
2 C3:C30
3 usw.
Diese Liste per Loop oder ähnlichem abarbeiten:
Do until...

Worksheets(1).Range(1.Listenpunkt).Copy
Sheets("Kalkschema-2015-VP").Select
Range(1.Listenpunkt).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Loop

Das würde alles deutlich übersichtlicher machen, besonders bei Veränderungen der zu kopierenden Zellen.
Ist das so möglich?

Danke für eure Unterstützung im Voraus.

Gruß Carsten

  

Betrifft: AW: per VBA Liste zum kopieren abarbeiten von: yummi
Geschrieben am: 26.09.2017 09:04:21

Hallo Karsten,

wenn sich die Bereiche immer ändern, schlage ich vor Du machst auf einem Extra Sheet eine Liste der Bereiche die Du kopieen willst, genauso wie unter 1. 2. usw beschrieben.
Dan nnimmst du den Code, den Du hier gepostet hast und legst eine for Schleife drum herum von der 1. Zeile deiern Liste bis zr letzten. In Deinem Code bei Range beziehst Du dich auf den Zellinhalt deienr Liste und gut ist
Beim Einfügen kannst Du die letzte Zeile des Destination Sheet bestimen und ein draufzählen und kopieren.

Gruß
yummi


  

Betrifft: AW: per VBA Liste zum kopieren abarbeiten von: Carsten
Geschrieben am: 26.09.2017 09:39:20

Hallo,

danke für den Hinweis.
Ich würde gerne alles im Code behalten, ohne den Umweg über eine andere Mappe.

Gruß Carsten


  

Betrifft: AW: per VBA Liste zum kopieren abarbeiten von: yummi
Geschrieben am: 26.09.2017 09:44:48

Hallo Carsten,

Du behälst doch den Code in einer Mappe, ich dachte nur dass Du die Daten aus eienr anderen Mappe importieren wolltest. Du kannst in deiner Mappe wo Du den Code hast 2 Variablen deklarieren wkbS as workbook als Deine Datenquelldatei und wkbD as Workbook als Deine Zieldatei. Wen nbeide identisch sind, brauchst Du nur eine Variable über die du dann auf die zugehörigen Sheets zugreifen kannst.

Da ich aber den Aufbau deienr Daten nicht kenne kann ich dir nur diesen allgemeinen Hinweis geben

Gruß
yummi


  

Betrifft: AW: per VBA Liste zum kopieren abarbeiten von: Peter(silie)
Geschrieben am: 26.09.2017 09:26:42

Hallo,

erstmal: Ja, kopieren per Loop und Liste ist möglich.

Wie sehen denn die Daten aus?


  

Betrifft: AW: per VBA Liste zum kopieren abarbeiten von: Carsten
Geschrieben am: 26.09.2017 09:37:14

Hallo,

was meinst du damit wie sehen die Daten aus? Es sind Zahlenwerte und Text in verschiedenen Zellen.
Ich hätte die Liste gerne im Code, ohne den Umweg über eine andere Mappe.

Gruß Carsten


  

Betrifft: AW: per VBA Liste zum kopieren abarbeiten von: Peter(silie)
Geschrieben am: 26.09.2017 10:02:27

Hallo,

keiner außer dir weiß wie die Daten genau aussehen, also wo sie stehen usw.

Wenn du nur die Frage stellst, "Ist das möglich?", dann kann man dir auch nicht
mehr helfen als zu sagen "Ja".

Da VBA gut + kein Code + keine Beispiel Mappe, bekommst du ein wenig Pseudo Code:

Private Sub a()
	Dim array_(), varItem As Variant 
		
	
	ReDim array_(Anzahl Bereich)	
	array_(xy) = Bereich_xy
	.
	.
	.
	
	
	For Each varItem in array_
		bla 
		bla
		
		Copy Paste in Bereich varItem
		
		bla 
		bla 
	Next varItem

End Sub  



Beiträge aus den Excel-Beispielen zum Thema "per VBA Liste zum kopieren abarbeiten"