pastespecial integrieren
#1
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
Top
#2
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.aspx

Gruß 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)
Top
#3
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
Top
#4
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
Top


Gehe zu:


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