Registriert seit: 26.06.2017
Version(en): 2010
Hallo zusammen,
da die Formatierung beim Kopiervorgang verloren geht, habe ich versucht den pastespecial Befehl zu integrieren, allerdings erfolglos.
Sub LoopThroughDirectory()
Dim MyFile As String
Dim Filepath As String
Filepath = "C:\Test Excel\Messdaten\"
MyFile = Dir(Filepath)
Do While Len(MyFile) > 0
Workbooks.Open (Filepath & MyFile), Local:=True
Range("Q36").Copy
ActiveWorkbook.Close
Workbooks("loopthroughdirectory.xlsm").Worksheets("Tabelle1").Range("A1").Select
ActiveSheet.Paste Destination:=Worksheets("Tabelle1").Range("A1")
MyFile = Dir
Loop
End Sub
Grüße
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
Moin und willkommen im Forum!
Zitat:habe ich versucht den pastespecial Befehl zu integrieren
Öhmmm: wo isser denn?
https://msdn.microsoft.com/de-de/library...39476.aspxGruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 12.03.2016
Version(en): Excel 2003
Hallo
ohhh ohhh, der Code ist meines Erachtens sehr Heikel !!
Zitat:ActiveSheet.Paste Destination:=Worksheets("Tabelle1").Range("A1")
Die Selection von Range("A1") kann nur erfolgen wenn die Datei ordnungsgemaess geschlossen wurde, dann ist Workbooks("loopthroughdirectory.xlsm") automatisch wieder die aktive Mappe. Tabelle1 muss schon vorher Selektiert sein, kommt bei Range("A1").Select meines Wissens eine Fehlermeldung!
Das Doppel-Konstrukt im Zitat habe ich so auch noch nie gesehen und extra mal nachgestellt. Bei mir klappt es mit AktiveSheet.Paste. Das Destination dahinter hebt aber bei mir die Kopierwirkung wieder auf !! Effekt = Null, nix kopiert.
Ich schlage vor den Code wie unten zu aendern, ohne Select, das ist überflüssig. Ob das Format übernommen wird kann ich nicht sagen??
mfg Gast 123
Code:
Do While Len(MyFile) > 0
Workbooks.Open (Filepath & MyFile), Local:=True
Range("Q36").Copy
ActiveWorkbook.Close
Workbooks("loopthroughdirectory.xlsm").Worksheets("Tabelle1").Range("A1").PasteSpecial xlPasteAll
MyFile = Dir
Registriert seit: 12.03.2016
Version(en): Excel 2003
Nachtrag:
ich sehe gerade das ganze laeuft ja in einer Do Loop Schleife. Da ist es aber sicher nicht sinnvoll alle Messdaten immer in die Zelle A1 zu schreiben, die wird ja staendig überschrieben! Das macht bestimmt keinen Sinn. Dann besser wie unten. Vor dem Do Befehl muss die Varaibel z = 1 oder n.. mit der ersten Zeile zum auflisten definiert werden!
Workbooks("loopthroughdirectory.xlsm").Worksheets("Tabelle1").Cells(z, 1).PasteSpecial xlPasteAll
z = z + 1 'Zaehler für naechste Zeile nach unten