Office: (Office 365) Mehrere Zellen aus geschlossener Datei kopieren

Helfe beim Thema Mehrere Zellen aus geschlossener Datei kopieren in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo, ich versuche aus einer geschlossene .xls Datei 7 Zellen zu aktive Mappe zu kopieren. Das Klappt aber nicht mit folgenden Code. Sub aa() Dim... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Amar12, 6. April 2021.

  1. Amar12 Neuer User

    Mehrere Zellen aus geschlossener Datei kopieren


    Hallo,
    ich versuche aus einer geschlossene .xls Datei 7 Zellen zu aktive Mappe zu kopieren.
    Das Klappt aber nicht mit folgenden Code.

    Sub aa()

    Dim Rechnung As String
    Dim Datum As String
    Dim Kunde As String
    Dim Bauvorhaben As String
    Dim Auftrag As String
    Dim Tour As String
    Dim Betrag As String

    DatName = Application.GetOpenFilename '(".xls")
    Rechnung = Range("I19")
    Datum = Range("I20")
    Kunde = Range("A12")
    Bauvorhaben = Range("D25")
    Auftrag = Range("D21")
    Tour = Range("D22")
    Betrag = Range("I61")

    Worksheets("Tabelle1").Select
    Worksheets("Tabelle1").Range("A1").Select
    If Worksheets("Tabelle1").Range("A1").Offset(1, 0) <> "" Then
    Worksheets("Tabelle1").Range("A1").End(xlDown).Select
    End If

    ActiveCell.Offset(1, 0).Select
    ActiveCell.Value = Rechnung
    ActiveCell.Offset(0, 1).Select
    ActiveCell.Value = Datum
    ActiveCell.Offset(0, 1).Select
    ActiveCell.Value = Kunde
    ActiveCell.Offset(0, 1).Select
    ActiveCell.Value = Bauvorhaben
    ActiveCell.Offset(0, 1).Select
    ActiveCell.Value = Auftrag
    ActiveCell.Offset(0, 1).Select
    ActiveCell.Value = Tour
    ActiveCell.Offset(0, 1).Select
    ActiveCell.Value = Betrag

    End Sub


    Was mache ich falsch?

    Vielen Dank schon einmal für Eure Hilfe!

    Gruß
    Amar
     
    Amar12, 6. April 2021
    #1
  2. PIVPQ User
    Hallo

    Frage:
    Dreht es sich immer um die gleichen Zeilen aus ein und der selben Datei?
    Was geschieht weiter den Daten?
    Wenn ja, darf es auch ohne VBA sein mit Power Query Lösung sein?
    Viele Grüße
     
    PIVPQ, 6. April 2021
    #2
  3. Amar12 Neuer User
    Hallo,
    es handelt sich immer um die gleiche Zellen.
    Die Zellen sollen von Rechnung kopiert werden.
    Es handelt sich um Dateien wo mehrere Zugriff haben.
    Auf die Rechnungsliste habe ich alleinigen Zugriff.
    Deswegen wollte ich den Code in der Rechnungsliste speichern und nicht verknüpfen.
    Viele Grüße
     
    Amar12, 6. April 2021
    #3
  4. Beverly
    Beverly Erfahrener User

    Mehrere Zellen aus geschlossener Datei kopieren

    Hi,

    versuche es mal so (ungetestet):

    Code:
    Sub aa()
        Dim Rechnung As String
        Dim Datum As String
        Dim Kunde As String
        Dim Bauvorhaben As String
        Dim Auftrag As String
        Dim Tour As String
        Dim Betrag As String
        Dim lngErste As Long
        Dim DatName As String
     
        DatName = Application.GetOpenFilename '(".xls")
        If DatName = "Falsch" Or DatName = False Then Exit Sub
     
        ' geöffnete und damit aktive Quell-Arbeitsmappe
        With ActiveWorkbook.Worksheets("Tabelle1") '<== Name der Quelltabelle anpassen!!
            Rechnung = .Range("I19")
            Datum = .Range("I20")
            Kunde = .Range("A12")
            Bauvorhaben = .Range("D25")
            Auftrag = .Range("D21")
            Tour = .Range("D22")
            Betrag = .Range("I61")
        End With
     
        ' Ziel-Arbeitsmappe (Arbeitsmappe mit dem Code)
        With ThisWorkbook.Worksheets("Tabelle1")
            If Worksheets("Tabelle1").Range("A1").Offset(1, 0) <> "" Then
                lngErste = .Range("A1").End(xlDown).Row + 1
                .Cells(lngErste, 1).Rechnung
                .Cells(lngErste, 2) = Datum
                .Cells(lngErste, 3) = Kunde
                .Cells(lngErste, 4) = Bauvorhaben
                .Cells(lngErste, 5) = Auftrag
                .Cells(lngErste, 6) = Tour
                .Cells(lngErste, 7) = Betrag
            End If
        End With
    End Sub
    
    Man sollte immer korrekte Bezüge auf Arbeitsmappen/Tabellenblätter/Zellen u.a. Objekte verwenden, wenn man mit mehreren Arbeitsmappen arbeitet - das realisiert man durch With-Anweisungen. Beachte, dass dabei die Bezüge immer durch einen vorangesetzten Punkt (.) signalisiert werden. Dadurch wird verhindert, dass falsche Objekte (Arbeitsmappen, Tabellenblätter, Zellen usw.) angesprochen werden.



    Mehrere Zellen aus geschlossener Datei kopieren GrußformelMehrere Zellen aus geschlossener Datei kopieren Beverly's Excel - Inn
     
    Beverly, 6. April 2021
    #4
  5. Amar12 Neuer User
    Hallo Beverly,
    habe es getestet.
    Es kommt leider ein Laufzeitfehler '13' bei: If DatName = "Falsch" Or DatName = False Then Exit Sub

    Gruss
    Amar
     
    Amar12, 6. April 2021
    #5
  6. Amar12 Neuer User
    Habe noch folgende Änderung probiert.

    If DateiName = "Falsch" Or DateiName = False Then Exit Sub

    Es kommt dann kein Fehlermeldung mehr,
    aber es wird nichts rüber kopiert.
     
    Amar12, 6. April 2021
    #6
  7. Beverly
    Beverly Erfahrener User
    Hi,

    ändere den Code wie folgt:

    Code:
    Sub aa()
        Dim Rechnung As String
        Dim Datum As String
        Dim Kunde As String
        Dim Bauvorhaben As String
        Dim Auftrag As String
        Dim Tour As String
        Dim Betrag As String
        Dim lngErste As Long
        Dim DatName As Variant
       
        DatName = Application.GetOpenFilename '(".xls")
        If DatName = "Falsch" Or DatName = False Then Exit Sub
       
        ' Arbeitsmappe öffnen
        Workbooks.Open DatName
        ' Quell-Arbeitsmappe
        With ActiveWorkbook.Worksheets("Tabelle1") '<== Name der Quelltabelle anpassen!!
            Rechnung = .Range("I19")
            Datum = .Range("I20")
            Kunde = .Range("A12")
            Bauvorhaben = .Range("D25")
            Auftrag = .Range("D21")
            Tour = .Range("D22")
            Betrag = .Range("I61")
        End With
       
        ' Ziel-Arbeitsmappe
        With ThisWorkbook.Worksheets("Tabelle1")
            If Worksheets("Tabelle1").Range("A1").Offset(1, 0) <> "" Then
                lngErste = .Range("A1").End(xlDown).Row + 1
                .Cells(lngErste, 1).Rechnung
                .Cells(lngErste, 2) = Datum
                .Cells(lngErste, 3) = Kunde
                .Cells(lngErste, 4) = Bauvorhaben
                .Cells(lngErste, 5) = Auftrag
                .Cells(lngErste, 6) = Tour
                .Cells(lngErste, 7) = Betrag
            End If
        End With
        ' Arbeitsmappe wieder schließen
        ActiveWorkbook.Close False
    End Sub
    
    Noch einen Hinweis: in deinem Eröffnungsbeitrag hattest du geschrieben:

    Das ist eine Aussage, die absolut nicht hilfreich ist - richtiger ist es genau zu beschrieben, WAS nicht klappt. Das Hauptproblem deines Code ist nämlich, dass er überhaupt keine andere Arbeitsmappe öffnet, denn um etwas kopieren zu können muss die Arbeitsmappe erst geöffnet (und am Ende wieder geschlossen) werden - beides habe ich im Code ergänzt.



    Mehrere Zellen aus geschlossener Datei kopieren GrußformelMehrere Zellen aus geschlossener Datei kopieren Beverly's Excel - Inn
     
    Beverly, 6. April 2021
    #7
  8. Amar12 Neuer User

    Mehrere Zellen aus geschlossener Datei kopieren

    Hi,
    ich habe den Code jetzt geändert
    Es wird keine Fehlermeldung mehr angezeigt.
    Beim Code Ausführen lässt die Datei zum öffnen auswählen.
    Nach der Datei Auswahl öffnet sich kurz ein Fenster und schließt sich wieder.
    Es wird aber nichts in der Rechnungsliste kopiert.

    Ich lade die Dateien mit hoch.
    Vielleicht liegt es ja an den Dateien.

    Gruss
    Amar
     
    Amar12, 6. April 2021
    #8
  9. Beverly
    Beverly Erfahrener User
    Hi,

    dein Code für die erste freie Zeile ermittelt einen falschen Wert - ändere sie wie folgt:

    Code:
                lngErste = .Columns(1).Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 1
    
    Damit sollte der Code jetzt korrekt funktionieren.


    Mehrere Zellen aus geschlossener Datei kopieren GrußformelMehrere Zellen aus geschlossener Datei kopieren Beverly's Excel - Inn
     
    Beverly, 6. April 2021
    #9
  10. Amar12 Neuer User
    Hi,

    die Inhalte der Zellen werden nicht rüber kopiert.
    Habe ich das richtig geändert?


    Sub aa()
    Dim Rechnung As String
    Dim Datum As String
    Dim Kunde As String
    Dim Bauvorhaben As String
    Dim Auftrag As String
    Dim Tour As String
    Dim Betrag As String
    Dim lngErste As Long
    Dim DatName As Variant

    DatName = Application.GetOpenFilename '(".xls")
    If DatName = "Falsch" Or DatName = False Then Exit Sub

    ' Arbeitsmappe öffnen
    Workbooks.Open DatName
    ' Quell-Arbeitsmappe
    With ActiveWorkbook.Worksheets("Tabelle1") '<== Name der Quelltabelle anpassen!!
    Rechnung = .Range("I19")
    Datum = .Range("I20")
    Kunde = .Range("A12")
    Bauvorhaben = .Range("D25")
    Auftrag = .Range("D21")
    Tour = .Range("D22")
    Betrag = .Range("I61")
    End With

    ' Ziel-Arbeitsmappe
    With ThisWorkbook.Worksheets("Tabelle1")
    If Worksheets("Tabelle1").Range("A1").Offset(1, 0) <> "" Then
    lngErste = .Columns(1).Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 1
    .Cells(lngErste, 1).Rechnung
    .Cells(lngErste, 2) = Datum
    .Cells(lngErste, 3) = Kunde
    .Cells(lngErste, 4) = Bauvorhaben
    .Cells(lngErste, 5) = Auftrag
    .Cells(lngErste, 6) = Tour
    .Cells(lngErste, 7) = Betrag
    End If
    End With
    ' Arbeitsmappe wieder schließen
    ActiveWorkbook.Close False
    End Sub
     
    Amar12, 6. April 2021
    #10
  11. Beverly
    Beverly Erfahrener User
    Hi,

    Code:
        ' Ziel-Arbeitsmappe
        With ThisWorkbook.Worksheets("Tabelle1")
            If .Range("A1") <> "" Then
                lngErste = .Columns(1).Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 1
                .Cells(lngErste, 1) = Rechnung
                .Cells(lngErste, 2) = Datum
                .Cells(lngErste, 3) = Kunde
                .Cells(lngErste, 4) = Bauvorhaben
                .Cells(lngErste, 5) = Auftrag
                .Cells(lngErste, 6) = Tour
                .Cells(lngErste, 7) = Betrag
            End If
        End With
    


    Mehrere Zellen aus geschlossener Datei kopieren GrußformelMehrere Zellen aus geschlossener Datei kopieren Beverly's Excel - Inn
     
    Beverly, 6. April 2021
    #11
  12. Amar12 Neuer User
    Hi,

    es geht jetzt. (Perfekt)
    Vielen vielen Dank!

    Habe noch ein kleines Problem mit der Kopierten Zell ("I61") mit hinterlegte Formel =(I57-I58)+I59.
    Der wert wird nicht richtig übernommen.
    Gibt es dafür eine Lösung?

    Gruss
    Amar
     
    Amar12, 6. April 2021
    #12
  13. Beverly
    Beverly Erfahrener User

    Mehrere Zellen aus geschlossener Datei kopieren

    Hi,

    inwiefern wird der Wert nicht richtig übernommen? In I61 steht das Formelergebnis 640,25 € und in der Zielzelle wird 640,25 € als fester Wert ausgegeben - also alles völlig korrekt.


    Mehrere Zellen aus geschlossener Datei kopieren GrußformelMehrere Zellen aus geschlossener Datei kopieren Beverly's Excel - Inn
     
    Beverly, 6. April 2021
    #13
  14. Amar12 Neuer User
    Hi,

    es wir d der Wert 640,25 geschrieben statt 640,25 €.
    Bei anderen Rechnung wird der Wert 239.355,00 € geschrieben statt 239,36 €.


    Gruss
    Amar
     
    Amar12, 6. April 2021
    #14
  15. Beverly
    Beverly Erfahrener User
    Hi,

    der Wert wird schon korrekt übernommen, nur das Format nicht - aber das liegt an deiner falschen Variablendeklaration: ein Euro-Wert darf nicht als String sondern sollte als Currency deklariert werden, oder als Double. Auch ein Datum darf nicht als String sondern muss als Date deklariert werden, oder als Long:

    Code:
        Dim Rechnung As String
        Dim Datum As Date
        Dim Kunde As String
        Dim Bauvorhaben As String
        Dim Auftrag As String
        Dim Tour As String
        Dim Betrag As Currency
        Dim lngErste As Long
        Dim DatName As Variant
    
    Werden Double bzw. Long verwendet, muss nachträglich das Zellformat in Währung bzw. Datum umgewandelt werden - deshalb ist es einfacher/simmvoller, gleich die richtige Deklaration zu verwenden.



    Mehrere Zellen aus geschlossener Datei kopieren GrußformelMehrere Zellen aus geschlossener Datei kopieren Beverly's Excel - Inn
     
    Beverly, 6. April 2021
    #15
Thema:

Mehrere Zellen aus geschlossener Datei kopieren

Die Seite wird geladen...
  1. Mehrere Zellen aus geschlossener Datei kopieren - Similar Threads - Zellen geschlossener Datei

  2. Werte der letzten Zelle einer Spalte in mehreren Tabellenblättern ermitteln

    in Microsoft Excel Hilfe
    Werte der letzten Zelle einer Spalte in mehreren Tabellenblättern ermitteln: Hallihalllo, Ich sitze gerade an meine Bachelorarbeit und muss mittels VBA ein Auswertungsprogramm für erhobene Daten erarbeiten. Ich suche schon ewig im Internet nach dem passenden Code und...
  3. Wenn Wert in Spalte, dann kopiere bestimmte Zellen

    in Microsoft Excel Hilfe
    Wenn Wert in Spalte, dann kopiere bestimmte Zellen: Hallo zusammen Ich versuche einen Planer zu erstellen. Dazu müsste ich folgende Formel/ Makro erstellen, kann dies jedoch mit meinen Excelkünsten nicht: Falls der Wert in Spalte "A" "1" hat,...
  4. Excel Automatisch Zellen ausfüllen

    in Microsoft Excel Hilfe
    Excel Automatisch Zellen ausfüllen: Hallo zusammen, ich habe ein kleines Projekt vor der Brust, bei dem ich hier gerne den richtigen Ansatz finden möchte. Ich Grunde genommen geht es darum das ich beim auslesen diverser Stammdaten...
  5. Letzte Zelle mit bestimmtem Text finden, Zeilen darunter löschen

    in Microsoft Excel Hilfe
    Letzte Zelle mit bestimmtem Text finden, Zeilen darunter löschen: Hallo, ich erstelle mir aus verschiedenen Textdateien eine Adressliste (mehrere hundert Einträge, Ende variiert). Am Ende der Liste erscheint immer etwas "Kauderwelsch"...
  6. Summewenns Zeitrau Datum in Zellen

    in Microsoft Excel Hilfe
    Summewenns Zeitrau Datum in Zellen: Hallo, ich habe dazu zwar etwas gefunden, aber Ergebnis ist falsch. Oder passt meine Formel nicht? Ich will die Summe aller Rechnungen mit - einem bestimmten Status (die 4 unterschiedlichen Stati...
  7. Excel-VBA Werte addieren und in nächste freie Zelle eintragen

    in Microsoft Excel Hilfe
    Excel-VBA Werte addieren und in nächste freie Zelle eintragen: Hallo zusammen, ich hab ein kleines Problem und komme leider nicht wurklich voran. Ich habe eine Datei zu einem Produkt. Dort sind für eine bestimmtes Bestelldatum und Ausführungstag die Werte...
  8. Zellen mit unterschiedlichem Format zusammenfügen

    in Microsoft Excel Hilfe
    Zellen mit unterschiedlichem Format zusammenfügen: Hallo zusammen, ich habe folgendes Problem und würde mich freuen wenn mich jemand unterstützen könnte: Ich möchte den Inhalt von zwei Zellen, mit unterschiedlichem Format (einmal...
  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