Microsoft Excel

Herbers Excel/VBA-Archiv

Kopien von Zeilen aus verschiedenen Workbooks

Betrifft: Kopien von Zeilen aus verschiedenen Workbooks von: Rouven
Geschrieben am: 21.08.2008 00:56:28

Moin,
ich hätte da mal ein VBA Problem bei dem ich mit meinem Latein am Ende bin.

Ausgangslage sind zwei Workbooks mit einmal 20Sheets (1) und 8Sheets (2).
Es geht um Buchhaltung und es wird in das erste Workbook (1) mit den 20 Sheets gebucht. Dabei sind zwei Werte die eingetragen werden entscheidend. Es werden "Betrag" und "Gegenstand" in das vorgesehene Sheet des Workbook (1) eingetragen. Jeder der Vorgänge kann nun zu einem von acht Kunden zugeordnet werden. Dafür gibt es eine extra Spalte in der das Kürzel drinsteht. Diese zwei Einträge sollen nun, nachdem man sie in das Workbook (1) eingetragen hat, in das zweite Workbook (2) kopiert und sortiert werden und zwar gibt es für jeden Kunden ein Sheet in das der entsprechende "Betrag" und "Gegenstand" kopiert werden sollen.

Das Makro soll also auf Klick in einer Schaltfläche folgendes Ausführen:
Durchsuchen aller Worksheets des ersten Workbooks nach den jeweiligen 8 verschiedenen Kundenabkürzungen. Wenn ein Kürzel gefunden wird soll daraufhin der "Betrag" und der "Gegenstand", sind die 2. bzw. 3 Spalten Links des Kürzels, in das zweite Workbook in das entsprechende Sheet des Kürzels kopiert werden. Sozusagen als Sicherung und Auflistung nach Kunden.

Ich hatte schonmal eine kleine Version für ein einzelnes Sheet entwickelt indem ich die über eine for Schleife die Werte übergeben habe. Wie:
For i = 1 to 100
If Workbook("1").Worksheets("erstes").Cells(i,5).value = BT then
Workbook("2").Worksheets("BT").Cells(i,3).value = Workbook("1").Worksheets("erstes").Cells(i,3).value

Allerdings ist diese simple Methode nicht ansatzweise funktional und hier endet dann auch mein spärliches Excel Wissen. Ich hatte es noch mit einer Do/Until Schleife versucht aber es werden dann blöderweise genau die gleichen Zellen kopiert und ich habe einen Flickenteppich mit Leerzellen in meinem zweiten Workbook.
Außerdem klappt das nur bei einem Blatt. Sobald ich ein weiteres einlese werden die bestehenden Daten einfach überschrieben. Das darf nicht passieren.

Ich hoffe, ich habe mein Problem richtig beschrieben und verständlich verdeutlicht.
Über jede Idee wie ich die Kopien sinnvoll anlegen und sortieren kann bin ich dankbar.

Viele Grüße
Rouven

  

Betrifft: AW: Kopien von Zeilen aus verschiedenen Workbooks von: Marc aka Knebel1
Geschrieben am: 21.08.2008 07:27:37

Servus!

Der Ansatz hört sich doch schon erfolgversprechend an. Alles was dir zu fehlen scheint, ist eine möglichkeit, die Daten sauber untereinander zu schreiben.

Dazu benutzt du am besten einen Zähler für die Zeile. Weise am Anfang (vor dem loop) einer Variable die 1. Zeile zu (Beispiel: Zielzeile = 1)

Nach jedem Kopiervorgang in die andere Arbeitsmappe wird der Zähler hochgesetzt. (Zielzeile = Zielzeile + 1)
Wenn verschiedene Prozeduren mit "Zielzeile" arbeiten, mußt du den Wert öffentlich verfügbar machen mit Public Zielzeile.

Viel Erfolg.


  

Betrifft: AW: Kopien von Zeilen aus verschiedenen Workbooks von: Rouven
Geschrieben am: 24.08.2008 16:55:14

Moin,
danke erstmal für die schnelle Antwort. Leider bekomme ich es nicht hin, bzw. verstehe ich nicht wie du das mit dem Zähler meinst.
Ich lasse momentan eine Variable n mitlaufen die mit n=n+1 immer bei kopiert hochzählt. Leider ist das Problem nun, dass sobald ich den Kopier Vorgang von vorne beginne, erneut ALLE daten unten in das neue Dokument kopiert werden. Es sollen ja aber nur die neuesten oder von mir aus immer alle daten komplett neu kopiert werden.
Wie kann ich das bewerkstelligen.
Außerdem fehlt mir noch die Zündende Idee um das ganze für alle Worksheets anzupassen. Also mit einem Kommando alle 20 Blätter durchzusuchen und die gefundenen Werte zu kopieren!?!

Vielleicht eine Idee?
Danke
Viele Grüße
Rouven


 

Beiträge aus den Excel-Beispielen zum Thema "Kopien von Zeilen aus verschiedenen Workbooks"