Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema RefEdit
BildScreenshot zu RefEdit RefEdit-Seite mit Beispielarbeitsmappe aufrufen

Bereich kopieren in zweite Datei einfügen

Betrifft: Bereich kopieren in zweite Datei einfügen von: Laeubchen
Geschrieben am: 03.11.2014 20:04:19

Guten Abend,

vielleicht kann mir jemand helfen.

Ich habe eine Liste-Spectro-Vorlage.xlsm (Zieldatei) und eine Material.xls (Quelldatei).

Die Quelldatei ist eine Datei die uns zugesandt wird.

Von den laufenden Nummern (Lfd.Nr. 1 - 10) in dieser Tabelle möchte ich bestimmte Bereiche kopieren und in die Zieltabelle einfügen, die zur weiteren Bearbeitung später dient.

Aus der Zieltabelle heraus rufe ich den Dialog öffnen auf und wähle meine Quelle aus.

Anschließend sollen automatisch die Bereiche eingefügt werden, je Lfd-Nr. eine Zeile.

Bisher habe ich zwei Prozeduren.

Bei der ersten Prozedur funktioniert es leider nur für die Lfd.Nr.1, dann leider komme ich nicht weiter, um die weiteren Lfd.Nr'n abzuarbeiten. Ich weiß leider nicht wie ich es umsetzen kann.

Bei der zweiten Prozedur habe ich zwar die Möglichkeit Stück für Stück alles zu kopieren und einzufügen, aber vielleicht gibt es doch eine kürzere Variante.

Habe es leider nicht geschafft weder bei der Mehrfachauswahl, noch bei der DatenHolen ohne Formatierung die Daten einzufügen.

Vielleicht zum besseren Verständnis lege ich beide Dateien mit ab.

https://www.herber.de/bbs/user/93521.xlsm

https://www.herber.de/bbs/user/93522.xls

Es würde mich sehr freuen, kann mir jemand weiterhelfen.

Die Dateien müssen später unter 2003 laufen, bitte nicht wundern das ich eine .xlsm abgelegt habe.

Gruß
Laeubchen

  

Betrifft: AW: Bereich kopieren in zweite Datei einfügen von: Michael
Geschrieben am: 04.11.2014 12:35:46

Hallo Läubchen,

ich habe Deine zweite Prozedur etwas angepaßt:

Sub DatenHolen()
Dim qzeile, zzeile As Long

ChDrive Left(CurDir, 1)
ChDir CurDir
Set wbziel = ThisWorkbook.Worksheets("Tabelle1")
Dim Daten As Variant
Daten = Application.GetOpenFilename("Excel-Arbeitsmappe (*.xls*), *.xls*", _
, "Daten auslesen")
Workbooks.Open Daten
Set wbQuelle = ActiveWorkbook.Worksheets("Tabelle1")
zzeile = 2
qzeile = 5
While wbQuelle.Range("A" & qzeile) <> ""
  With wbQuelle
   ' Kopieren von A5-G5 nach A2-G2:
   For i = 1 To 7
    wbziel.Cells(zzeile, i) = .Cells(qzeile, i)
   Next
    wbziel.Range("H" & zzeile) = .Range("B" & qzeile + 2)
    ' folgende Zeile auskommentiert und ersetzt...
'    wbziel.Range("I" & zzeile) = .Range("D" & qzeile + 2)
    ' sehr lange Paketnr. evtl. angezeigt in
    ' Exponentendarstellung: 5,23E10 oder so
    ' läßt sich vermeiden durch vorangestelltes Hochkomma:
    wbziel.Range("I" & zzeile) = "'" & .Range("D" & qzeile + 2)
    wbziel.Range("J" & zzeile) = .Range("F" & qzeile + 2)
  End With
  zzeile = zzeile + 1
  qzeile = qzeile + 3
Wend
wbziel.Activate
Set wbziel = Nothing
Set wbQuelle = Nothing
End Sub
Ich habe die Kopiererei durch eine schlichte Zuweisung ersetzt, dann wird das Format Deiner Zieltabelle nicht zerschossen.

Kernstück der Änderung sind zwei neue Variablen, die jeweils die Zeilennummer für das Lesen bzw. die Ausgabe beinhalten. Die fürs Lesen wird wegen der üblen dreizeiligen Darstellung (auf die Du ja scheint's keinen Einfluß hast) immer um 3 erhöht, die für die Ausgabe nur um 1.

Sollte auch problemlos unter 2003 rennen.

Schöne Grüße,

Michael


  

Betrifft: AW: Bereich kopieren in zweite Datei einfügen von: Laeubchen
Geschrieben am: 04.11.2014 20:52:52

Hallo Michael,

tausend Dank für Deine Mühe und es läuft einfach fantastisch !!!

Lieber Gruß
Laeubchen




  

Betrifft: gerne von: Michael
Geschrieben am: 05.11.2014 11:15:38

Hallo Läubchen,

freut mich, wenn's läuft.

Vielen Dank für Dein freundliches feedback,

liebe Grüße,

Michael


 

Beiträge aus den Excel-Beispielen zum Thema "Bereich kopieren in zweite Datei einfügen"