Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Inhalt einer anderen Arbeitsmappe übernehmen
#1
Hello

Ich würde gerne den Inhalt einer Tabelle von einer Datei (Tabelle1, Zellinhalt A5:AP1000) in eine zweite Datei (Tabelle 5, in die Zelle ab B9) per Makro kopieren.

Hierzu bräuchte ich ein Makro, welches nicht den Pfad der Dateien, sondern lediglich den Namen der Dateien verwendet.

Hat jemand von euch eine Idee?

Vielen Dank

19
Antworten Top
#2
Hallo,

mit

Code:
DateiName = Dir(Kompletter Pfad mit Dateiname) erhältst Du den Dateinamen pur.

Gruß Uwe
Antworten Top
#3
Hallo Uwe, 

leider hilft mir das nicht weiter. Vielleicht habe ich mich auch falsch ausgedrückt.

Ich habe zwei Dateien. Die Datei 1 hat nur eine Tabelle (Sheet1). Die Datei 2 hat mehrere Tabellen. In der Datei 2 befindet sich eine Tabelle, nennen wir diese mal Tabelle 5. In dieser Tabelle 5 soll ab der Zelle B9 der Inhalt der Tabelle Sheet1 aus der Datei 1 (ab Zelle A5 bis Spalte AP100) eingefügt werden. Da der Pfad der Datei 1 nicht immer derselbe ist, bräuchte ich ein Makro, welches entweder den Dateinamen (immer gleich) beinhaltet oder ein Makro, durch dieses man die Datei 1 auswählen kann und der Inhalt anschließend eingefügt wird. Auch muss das Makro aus der Datei 2 aus geöffnet werden.

Ich hoffe, dies ist etwas verständlicher ausgedrückt. 
Da ich ein Neuling bin, was Makros betrifft, bin ich doch noch auf Hilfe angewiesen.

Vielen Dank
Antworten Top
#4
Hallöchen,

wenn DU bei uns nach Datei öffnen Dialog suchst, erhältst Du einige Treffer mit Beiträgen, die Dir weiterhelfen können.... z.B.

VBA-Datei-oeffnen-bestimmte-Zellen-kopieren-und-in-Ausgangsdatei-einfuegen
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#5
Hallo

mit diesem kleinen Programm sollte es problemlos gehen.  Bitte mal testen ...

mfg Gast 123

Code:
Sub Datei_Öffnen_und_kopieren()
Dim varFolder As Object, objShell As Object
    'Datei Öffnen über xlDialog Auswahl
    Set objShell = CreateObject("Shell.Application")
    Set varFolder = objShell.BrowseForFolder(0, "Folder", &H4000, "D:")
    If varFolder Is Nothing Then Exit Sub

    On Error GoTo Fehler   'Datei Öffnen
    Workbooks.Open Filename:=varFolder.self.Path
   
'Quelle Tabelle1, Zellinhalt A5:AP1000
'Ziel   Tabelle 5, in die Zelle ab B9
With ThisWorkbook.Worksheets("Tabelle1")
     .Range("A5:AP1000").Copy _
     ActiveWorkbook.Worksheets("Tabelle5").Range("B9")
     ActiveWorkbook.Save      'Speichern
     ActiveWorkbook.Close     'Schliessen
End With
Exit Sub

Fehler:  MsgBox "unerwarteter Fehler" & vbLf & Error()
End Sub
Antworten Top
#6
Hallo

erstmal Vielen Dank. 

Wenn ich es richtig verstehe und auch einarbeite, dann bilde und starte ich das Programm aus der Datei 1 mit der Tabelle1. Ich wähle dann das Makro an und er fügt die Inhalte in der Tabelle 5 der Datei 2 ein. 
Das ist schon einmal das, nach was ich suche. 

Allerdings sollte das Programm aus der Datei 2 aus gestartet und die Datei 1 ausgewählt werden. 

Wie müsste ich den Code anpassen? 

Bis dahin schonmal vielen Dank
Antworten Top
#7
Verwende

Code:
with Application.filedialog(1)
   if .show then
     with getobject(.selecteditems(1)).sheets(1).usedrange
       thisworkbook.sheets(1).cells(rows.count,1).end(xlup).offset(1).resize(.rows.count,.columns.count)=.value
       .Parent.parent.close 0
     end with
   end if
end with
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#8
Hallo Mika,

Code:
Sub HoleDaten()
  On Error Resume Next
  Application.ScreenUpdating = False
  With Workbooks.Open(Application.GetOpenFilename("Excel-Dateien (*.xls*),*.xls*", , "Auswahl der Quelldatei", , False), , True)
    .Worksheets("Tabelle1").Range("A5:AP1000").Copy ThisWorkbook.Worksheets("Tabelle5").Range("B9")
    Application.CutCopyMode = False
    .Close
  End With
  Application.ScreenUpdating = True
  On Error GoTo 0
End Sub

Gruß Uwe
Antworten Top
#9
Wow  19

Vielen Dank Uwe 
und allen anderen. 

Es funktioniert perfekt
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste