Registriert seit: 12.02.2021
Version(en): 10.0
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
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo,
mit
Code:
DateiName = Dir(Kompletter Pfad mit Dateiname) erhältst Du den Dateinamen pur.
Gruß Uwe
Registriert seit: 12.02.2021
Version(en): 10.0
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
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
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)
Registriert seit: 12.03.2016
Version(en): Excel 2003
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
Registriert seit: 12.02.2021
Version(en): 10.0
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
Registriert seit: 29.09.2015
Version(en): 2030,5
01.11.2021, 10:18
(Dieser Beitrag wurde zuletzt bearbeitet: 01.11.2021, 10:39 von snb.)
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
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
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
Registriert seit: 12.02.2021
Version(en): 10.0
Wow
Vielen Dank Uwe
und allen anderen.
Es funktioniert perfekt