Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

VBA - Kopieren von einzelnen Dateien in Gesamtdate

Betrifft: VBA - Kopieren von einzelnen Dateien in Gesamtdate von: Sascha
Geschrieben am: 21.10.2014 15:36:22

Hallo allerseits,

ich habe ein (nicht so neues) Anliegen, was auch schon in mehrere Foren besprochen wurde, aber noch nicht zu 100 % das erfüllt, was ich suche.

Folgende Thematik:

Ich habe 7 Excel-Dateien und möchte aus den 7 Excel-Dateien jeweils aus dem 3 Reiter die Zeile C15:H15 in eine andere Datei untereinander reinkopieren.

Wohin in der Gesamtdatei ist erstmal egal, hauptsache untereinander.

Könnte ihr mir bei dieser Thematik auf die Sprünge helfen ?
Vielen lieben Dank im Voraus

gruß

Sascha

  

Betrifft: einmal Formel und einmal VBA von: Tino
Geschrieben am: 21.10.2014 17:55:48

Hallo,
du könntest dies über eine Formel machen.
In jeder Zeile den Pfad zu der Datei anpassen und entsprechend weit nach rechts kopieren.

 AB
24560
390Text

Formeln der Tabelle
ZelleFormel
A2='C:\Ordner\[Datei1.xls]Tabelle3'!C$15
B2='C:\Ordner\[Datei1.xls]Tabelle3'!D$15
A3='C:\Ordner\[Datei2.xls]Tabelle3'!C$15
B3='C:\Ordner\[Datei2.xls]Tabelle3'!D$15


Oder mit VBA
bei usw... entsprechend für die anderen Dateien erweitern.

Sub CopyData()
Dim strPath$
On Error GoTo ErrorHandler:
With Application
    .ScreenUpdating = False
    .EnableEvents = False
    
    'Datei1 
    strPath = "C:\Ordner\Datei1.xls"
    With Workbooks.Open(strPath, ReadOnly:=True)
        .Sheets(3).Range("C15:H15").Copy _
            ThisWorkbook.Sheets("Tabelle1").Range("A2")
        .Close False
    End With

    'Datei2 
    strPath = "C:\Ordner\Datei2.xls"
    With Workbooks.Open(strPath, ReadOnly:=True)
        .Sheets(3).Range("C15:H15").Copy _
            ThisWorkbook.Sheets("Tabelle1").Range("A3")
        .Close False
    End With

    'usw... 

    .EnableEvents = True
    .ScreenUpdating = True
End With

Exit Sub

ErrorHandler:
With Application
    .ScreenUpdating = True
    .EnableEvents = True
End With
MsgBox Err.Description, _
       vbCritical + vbMsgBoxSetForeground + vbMsgBoxHelpButton, _
       "Error: " & Err.Number, Err.HelpFile, Err.HelpContext
End Sub
Gruß Tino


  

Betrifft: AW: einmal Formel und einmal VBA von: Sascha
Geschrieben am: 22.10.2014 08:05:29

Hallo tino,

vielen vielen Dank. Echt super. Habe mich für die Variante mit dem Makro entschiede.

Aber diebezgl. habe ich noch eine Frage.

Könnte man den makro auch so eerweitern, dass er beim Öffnen der Dateein auch automatisch den Schreib- und Leseschutz von alleine aufhebt ?
Vielen Dank im Voraus und auch nochmal für den bisherigen Makro:)
Gruß

Sascha


  

Betrifft: AW: einmal Formel und einmal VBA von: Tino
Geschrieben am: 22.10.2014 08:35:23

Hallo,
ergänze die Workbooks.Open Anweisung durch die
entsprechende Argumente die Du benötigst.
Das Argument welches du nicht benötigst einfach entfernen!

With Workbooks.Open(strPath, ReadOnly:=True, Password:="???", WriteResPassword:="???")
Gruß Tino


  

Betrifft: AW: einmal Formel und einmal VBA von: Sascha
Geschrieben am: 22.10.2014 15:35:53

Hallo Tino,

vielen Dank. Das hat super geklappt. Eine ganz kelien Sache habe ich noch.
Das ist mir dann bei der Anwendung aufgefallen.

Könnte man die kopierten Zellen auch als Werte reinkopieren ?

Vielen Dank nochmal

Sascha


 

Beiträge aus den Excel-Beispielen zum Thema "VBA - Kopieren von einzelnen Dateien in Gesamtdate"