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 hat Ahnung
    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. Leerzeichen vor linksbündigem Text in Zellen

    in Microsoft Excel Hilfe
    Leerzeichen vor linksbündigem Text in Zellen: Wie füge ich in einem linksbündigen Text ein Leerzeichen ein, um einen Abstand zur Gitternetzlinie zu erhalten?
  3. Adressen in eine Zelle bei Übereinstimmung eindeutiger Werte einer anderen Spalte

    in Microsoft Excel Hilfe
    Adressen in eine Zelle bei Übereinstimmung eindeutiger Werte einer anderen Spalte: Hallo zusammen, wer letzteren Thread kennt, hier eine Neuauflage. Problem: Aus Array-Berechnungen (Variablen von Let) ein weiteres Array zu erzeugen, welches für alle eindeutigen Werte aus G die...
  4. Textteile aus Zelle mit mehreren Absätzen

    in Microsoft Excel Hilfe
    Textteile aus Zelle mit mehreren Absätzen: Hallo, ich habe folgendes Problem: Ich habe in einer Liste in einer Zelle mehrere Angaben aus denen ich Textteile (z.B. alles was in () oder {} ist) herausziehen will, um damit weiter zurechnen....
  5. Zelle mit grauem Platzhalter versehen? (Ausfüllhinweis)

    in Microsoft Excel Hilfe
    Zelle mit grauem Platzhalter versehen? (Ausfüllhinweis): Hallo, ich erstelle gerade ein Formular mit Excel für einen Lieferschein. Dort sind einige Felder, wo der Teilnehmer Werte eintragen muß. Diese würde ich gerne etwas hervorheben. Es gibt...
  6. Prozentberechnung auf Angabe einer anderen Spalte

    in Microsoft Excel Hilfe
    Prozentberechnung auf Angabe einer anderen Spalte: Hallo Zusammen, ich brauchte dringend mal wieder Hilfe, bevor ich noch die ganze Nach hier hocke ;-) Ich habe in einer Datei mit der letzten Berechnung Ärger. Ich möchte das in einer Liste unter...
  7. Zugriff auf Zellen in geschlossenen Arbeitsmappen

    in Microsoft Excel Hilfe
    Zugriff auf Zellen in geschlossenen Arbeitsmappen: Ich möchte gerne auf Zellen in anderen Arbeitsmappen zugreifen, ohne diese dabei öffnen zu müssen. Vom Prinzip her soll dies analog zur "INDIREKT-Funktion" ablaufen (die leider nur bei geöffneten...
  8. Bestimmte Zellen aus geschlossenen Dateien in eine Master Liste hineinkopieren VBA

    in Microsoft Excel Hilfe
    Bestimmte Zellen aus geschlossenen Dateien in eine Master Liste hineinkopieren VBA: Hallo, ich bin an meiner Thesis dran und möchte Protokolle auswerten. Dazu habe ich Dateien, die Tageswerte enthalten. Ich möchte aus jeder Datei die gleichen Zellen kopieren und in eine...
  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