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. Inhalt einer Zelle wird nicht mehr angezeigt

    in Microsoft Excel Hilfe
    Inhalt einer Zelle wird nicht mehr angezeigt: Hallo, ich habe eben dieses Forum gefunden, das meine letzte Hoffnung ist. Mein Problem ist folgendes: Für die Arbeit modelliere ich seit einer Woche in Excel BPMN Prozesse. Dafür mache ich eine...
  3. Bei X in Zelle kopieren aber abfragen ob der wert funktioniert

    in Microsoft Excel Hilfe
    Bei X in Zelle kopieren aber abfragen ob der wert funktioniert: Servus Community, ich komme einfach nicht weiter.... ich habe folgenden Code zusammengebastelt. Sub Worksheet_Deactivate() Dim Zeile As Long Dim ZeileMax As Long Dim n As Long Dim leereZeile...
  4. Zelle x mal kopieren, dann nächste Zelle x mal kopieren

    in Microsoft Excel Hilfe
    Zelle x mal kopieren, dann nächste Zelle x mal kopieren: Hallo zusammen, mein Problem ist etwas komplizierter. Ich möchte gerne, dass wenn ich einen bestimmten Zeitraum angebe und einen bestimmten Wochentag, dass dann alle Montage des Zeitraumes...
  5. mehrere Zellen färben

    in Microsoft Excel Hilfe
    mehrere Zellen färben: Hallo zusammen, Folgendes Problem: Ich habe 3 Zellen, die je nach Status einer Anderen Zelle sich färben sollen. Bsp: Zellen: A1, A2, A3 Wenn nichts drin steht, werden alle drei rot. Wenn in...
  6. bei 0 Zellen sperren

    in Microsoft Excel Hilfe
    bei 0 Zellen sperren: Hallo Freunde von Excel ich habe mal wieder ein Problem. Ich möchte gerne, dass wenn in Zelle BL2 eine 0 steht, dass in dem Tabellenblatt die Zellen CJ4 bis einschließlich DG4 gesperrt (aber...
  7. INDEX Formel (Office Unterschiede)

    in Microsoft Excel Hilfe
    INDEX Formel (Office Unterschiede): Hallo zusammen, ich habe eine Index Formel erstellt, die die letzte Zahl der Spalte P anzeigen soll. Die Formel lautet: =INDEX('10W'!P:P;MAX(ISTZAHL('10W'!P:P)*ZEILE('10W'!P:P))). Ich habe...
  8. Zellen Datenüberprüfung nicht löschen

    in Microsoft Excel Hilfe
    Zellen Datenüberprüfung nicht löschen: Hallo zusammen, mit dem unten stehenden Code,lösche ich den Inhalt eines Blattes.Bis auf alle gesperrten Zellen. Nun habe ich Zellen in denen eine Datenüberprüfung für...
  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