Office: Range Array von einem Workbook in ein anderes kopieren

Helfe beim Thema Range Array von einem Workbook in ein anderes kopieren in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo Experten! Ich hoffe ihr könnt mir (wenig erfahren mit VBA) weiterhelfen. Bitte beachten, ich arbeite mit einem Mac, also werden nicht alle... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von BerlinBlues, 27. April 2015.

  1. Range Array von einem Workbook in ein anderes kopieren


    Hallo Experten!

    Ich hoffe ihr könnt mir (wenig erfahren mit VBA) weiterhelfen.

    Bitte beachten, ich arbeite mit einem Mac, also werden nicht alle Befehle unterstützt. Vor allem Workbook.Open

    Ich möchte täglich Daten von einem Workbook in ein anderes Kopieren. Es gibt aber einen Bereich, in dem die Werte nicht statisch sind, das heißt, es kann sich um 3 Zeilen handeln, oder 10 oder 7, jeden Tag anders.

    In der Quelldatei fängt dieser Bereich in Range("B10:H10") an. Die letzte Zeile fängt in Zelle B? mit "Gesamt:" an.

    ich kann mit folgendem Code das auch schaffen:

    Dim i As Integer
    Dim x As Integer
    Dim lieferant As String
    Dim ScrRange As Range

    Windows("Lieferungen.xls").Activate

    i = 10
    x = 0

    Do Until lieferant = "Gesamt:"

    Windows("Lieferungen.xls").Activate

    lieferant = Cells(i, 2).Value
    Set ScrRange = Range(Cells(i, 2), Cells(i, 7))

    Windows("Reports.xlsm").Activate

    ScrRange.Copy Destination:=Range(Cells(i + 13, 2), Cells(i + 13, 7))
    i = i + 1
    x = x + 1 '(Ich habe x, um die Gesamtzahl der Zeilen zu ermitteln.)

    Loop

    Wie gesagt, es funktioniert, ist aber sehr unschön, also wollte ich die Gelegenheit nutzen, endlich mal Arrays zu lernen um das Ganze hübscher zu gestalten. Aber seit nun mehr als fünf Stunden hilft mir Google nicht weiter.

    Hier ist so meine Idee:

    Dim i As Integer
    Dim j As Integer
    Dim x As Integer

    Windows("Lieferungen.xls").Activate

    i = 10
    x = 0
    j = 0

    Do Until lieferant = "Gesamt:"
    liefernat = Cells(i, 2).Value
    i = i + 1
    x = x + 1
    Loop

    (Jetzt weiß ich wie viele Zeilen ich kopieren muss)

    Dim ArrRange() As Range

    (Diese For... Next sollen die Variablen ArrRange(0), ArrRange(1), ArrRange(2) usw. mit Werte befüllen.
    For j = 0 To x - 1
    ArrRange(j) = Range(Cells(10 + j, 2), Cells(10 + j, 7))
    Next j

    Windows("Reports.xlsm").Activate

    (Diese nächste Schleife soll die Variablen ArrRange(0), ArrRange(1), ArrRange(2) usw. in einen Range kopieren.)

    For j = 0 To x - 1
    ArrRange(j).Copy Destination:=Range(Cells(j + 24, 2), Cells(j + 24, 7))
    Next j

    Ich bekomme aber eine Vielzahl von Fehlermeldungen, z.B. Konstate benötigt, außerhalb des definierten Bereichs, usw.

    Ich hoffe einer von euch hat eine simple und für mich verständliche Lösung.

    Vielen Dank!!!

    :)
     
    BerlinBlues, 27. April 2015
    #1
  2. Hallo,

    ich habe mal ein paar Zeilen geschrieben, wie ich es vermutlich lösen würde und alles ausführlich kommentiert.
    Bitte gehe den Code durch und versuche alles zu verstehen. Frage mich gerne auch bei Kleinigkeiten, ich denke dadurch kannst du viel lernen *Smilie
    Code:
    Hatte keine Dateien zum testen, daher bitte einen kurzen Hinweis, falls es Fehler gibt *wink.gif*

    VG
    Santa
     
    Mc Santa, 29. April 2015
    #2
  3. Vielen lieben Dank!

    Ich werde das morgen gleich testen, dann gebe ich Dir einen Feedback.
     
    BerlinBlues, 29. April 2015
    #3
  4. Range Array von einem Workbook in ein anderes kopieren

    WOW - magisch. Es hat perfekt funktioniert. Ich musste lediglich .xls hinter dem Workbooknamen setzen, by SetQuelle....

    Eine Frage habe ich: wenn ich Bezug auf Workbook("Book1").Worksheet("Sheet1") nehmen will, aber das Workbook nur dieses eine Sheet hat, muss ich das Sheet explizit erwähnen?


    Ich danke dir vielmals.
     
    BerlinBlues, 30. April 2015
    #4
  5. Hallo noch mal,

    im selben Bericht, den ich erstelle, habe ich eben erfahren, dass ein Bereich, den ich kopieren soll, auch "dynamisch" ist. Ich dachte mit dem Teil bin ich fertig, weil alles immer gleich bleibt. Pch gehabt.

    Diese Zeile mit den Arrays würde perfekt passen, ich habe es schon getestet, aber in der Quelldatei ist jede zweite Zeile leer gelassen worden, und genauso wird es übertragen.

    Wäre es einfach das so zu ergänzen, dass jede leere Zeile ignoriert wird und die Werte dann ohne leere Zeilen übertragen werden?
     
    BerlinBlues, 30. April 2015
    #5
  6. Hallo,

    Das Blatt musst du immer angeben, auch wenn es nur ein einziges gibt.

    Für die Frage mit den leeren Zellen kann ich mir eine Antwort vorstellen, aber am besten lädst du mir dafür mal eine Beispiel-Datei hoch. Quelle und Ziel können einfach zwei Blätter in dieser Datei sein.

    Viele Grüße
    Santa
     
    Mc Santa, 30. April 2015
    #6
  7. ich habe eine Datei angehängt. Ich hoffe,es hat geklappt. Unter Tab Fremdfirma habe ich die Angaben so formatiert, wie ich sie täglich bekomme, also Spalte und Zeile stimmen. Ich habe auch die Zeilen ausgeblendet, wie Sie im Original auch sind.

    Unter Mein_Unternehmen habe ich gezeigt, wohin die Daten kopiert werden sollen. Bitte beachten, dass die Namen und Anzahl der Ware immer unterschiedlich sind, deshalb der Bedarf nach Arrays.

    Vielen Dank noch mal für deine Hilfe!
     
    BerlinBlues, 4. Mai 2015
    #7
  8. Range Array von einem Workbook in ein anderes kopieren

    Hallo,

    das geht auch ohne Arrays...

    Code:
     
    xlph, 4. Mai 2015
    #8
  9. Ich bekomme in der Zeile
    Code:
    bei Tabelle1 die Fehlermeldung "Variable nicht definiert". Ich habe es mit vielen definierten Variablen ersetzt, aber dann kam immer "außerhalb des gültigen Bereichs". Was muss genau dort stehen?

    EDIT: Ich habe die richtige Variable gefunden, jetzt kommt keine Fehlermeldung mehr, aber in der Zieldatei ist immer noch jede zweite eine leere Zeile. Vielleicht sind die Zeilen nicht ausgeblendet, sonder nur minimiert bzw. Zeilenhöhe = 0??

    EDIT 2: Ja, sie sind auf 0 Höhe.... sorry
     
    BerlinBlues, 4. Mai 2015
    #9
  10. Hallo,

    statt Tabelle1 sollte dort eigentlich wksBlatt_Z stehen.

    VG
    Santa
     
    Mc Santa, 4. Mai 2015
    #10
  11. Wäre es einfach den Code so zu ändern, dass nicht ausgeblendeten Zeilen nicht berücksichtigt werden, sonder die leeren?
     
    BerlinBlues, 4. Mai 2015
    #11
  12. Ja das geht,

    ersetze folgende Codezeile:
    Code:
    durch diese:
    Code:
    Funktioniert das in deiner Datei?

    VG
    Santa
     
    Zuletzt von einem Moderator bearbeitet: 12. Januar 2021
    Mc Santa, 4. Mai 2015
    #12
  13. Range Array von einem Workbook in ein anderes kopieren

    Nein, an der Stelle kommt jetzt Laufzeitfehler 1004 : Bei einer Markierung von nicht angrenzenden Zeilen ist die Ausführung dieses Befehls nicht möglich.
     
    BerlinBlues, 5. Mai 2015
    #13
  14. Hm, dann sieht deine echte Datei anders aus, als dei Beispieldatei, da habe ich den Code erfolgreich getestet.

    Da vielleicht beim Einfügen etwas schief gegangen ist, hier der Code von xlph mit meinen Anpassungen:
    Code:
    Falls das in deiner Datei nicht klappt, müsstest du eine neue Beispieldatei hochladen, in der man den Fehler nachstellen kann.

    VG
    Santa
     
    Mc Santa, 5. Mai 2015
    #14
  15. Es klappt nicht, in der gleichen Zeile kommt die Fehlermeldung "Nicht zulässiger oder nicht gekennzeichneter Verweis."

    Also kopierte ich die Dateien und wollte diese hochladen. Beim Öffnen kommt jedoch sofort eine Fehlermeldung bei Code:
    Hauptmenü ist mein Userform. Warum das in der kopierte Datie nicht funktioniert, weiß ich nicht.

    Ich bin verzweifelt, zumal das Projekt bereits drei Tage überfällig ist. Ich werde mich mit einer unschönen Lösung zufrieden geben müssen. Ich danke euch vielmals für eure Mühe.
     
    BerlinBlues, 5. Mai 2015
    #15
Thema:

Range Array von einem Workbook in ein anderes kopieren

Die Seite wird geladen...
  1. Range Array von einem Workbook in ein anderes kopieren - Similar Threads - Range Array Workbook

  2. Excel Range als Bild in Word einfügen

    in Microsoft Excel Hilfe
    Excel Range als Bild in Word einfügen: Hallo, ich möchte gerne per Makro in einem Wordtemplate Mustergrafiken, die als Platzhalter dienen durch Bereiche in meiner Exceldatei ersetzen, die ich als Bild einfüge. Per Hand mache ich das...
  3. SVERWEIS mit Range von bis funktioniert nicht?

    in Microsoft Excel Hilfe
    SVERWEIS mit Range von bis funktioniert nicht?: Hallo, ich komme leider nicht weiter bei meinem SVERWEIS. Spalte A und C werden ausgefüllt. In Spalte B sollte dann der SVERWEIS sein. Leider komm ich mit "von bis" nicht weiter und jedes...
  4. Macro Fehler Subscript out of Range

    in Microsoft Excel Hilfe
    Macro Fehler Subscript out of Range: Hallo Zusammen, ich muesste aus ca. 500 pdf's mit teilweise 90 oder evtl. sogar mehr Seiten, ein paar Daten auslesen. Ich habe ein Makro, dass ich vor Jahren benutzt habe, mit dem ich erst die...
  5. Variant Array in Range

    in Microsoft Excel Hilfe
    Variant Array in Range: Hallo mal wieder, Ich schreibe gerade eine Klasse "Film". Diese beinhaltet Informationen wie "Name", "Regisseur", "Erscheinungsjahr" etc. In der Klasse gibt es außerdem eine Prozedur, die den...
  6. Array mit Range aus InputBox befüllen geht nicht

    in Microsoft Excel Hilfe
    Array mit Range aus InputBox befüllen geht nicht: hallo folgender Code macht einen Fehler. Warum? Code: Sub Versuch() Dim meinArray() As Variant 'Fehler, weil "Typen unverträglich". Warum? meinArray = Application.InputBox("Bitte wähle...
  7. VBA Funktion Range in Array umwandeln

    in Microsoft Excel Hilfe
    VBA Funktion Range in Array umwandeln: Liebe Alle! Ich hab folgendes Problem. Ich möchte ein Funktion die Zahlen in einer Range übernimmt und dann in ein Array kopiert / umwandelt. Code: Option Explicit Public Function...
  8. Mehrdimensionales Array mit Range-Funktion füllen

    in Microsoft Excel Hilfe
    Mehrdimensionales Array mit Range-Funktion füllen: Hallo, ich habe ein kleines Problem bei der Befüllung eines mehrdimensionalen Arrays. Kurz zum Hintergrund, ich habe eine Excel Tabelle mit 15 Spalten und einer variablen Anzahl an Zeilen. Aus...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden