1.1k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo Zusammen,

habe über dieses Forum unter 'https://supportnet.de/listthread/1541960' eine super Basis für mein Problem gefunden.

Konnte die Vorlage einfach anpassen und funktioniert super bis auf folgendes Problem:
In den "Quelldateien" stehen im Register 'Übersetzung' in den Spalten A bis Q Formeln. Wird unten angeführtes Makro ausgeführt, werden in die Zieldatei (Register 'Tabelle1') die Formeln übertragen und durch das weiterrücken der Zeilen die Formeln verändert.
Ich hätte gerne, dass das Makro in die Zieldatei nicht die Formeln sondern die Werte aus den Quelldateien schreibt.
Was muss hier geändert werden:


Sub FilesListen()
Call EventsOff
Dim zeile As Long
Dim Dateien As Integer
Dim DateiName As String
Dim zaehler As Boolean
With Application.FileSearch
.NewSearch
.LookIn = "D:\Projekte\"
.SearchSubFolders = True
.Filename = "*.xls"
If .Execute() > 0 Then
For Dateien = 1 To .FoundFiles.Count
DateiName = Dir(.FoundFiles(Dateien))
If DateiName <> ThisWorkbook.Name Then
Workbooks.Open Filename:=.FoundFiles(Dateien)
If zaehler = False Then
zeile = 2
Else
zeile = ThisWorkbook.Sheets("Tabelle1").Cells(Rows.Count, 9).End(xlUp).Row + 1
End If
Workbooks(DateiName).Sheets("Übersetzung").Range("A2:Q2").Copy ThisWorkbook.Sheets("Tabelle1").Range("A" & zeile & ":Q" & zeile)
zaehler = True
Workbooks(DateiName).Close SaveChanges:=True
End If
Next Dateien
End If
End With
Call EventsOn
End Sub
Public Sub EventsOff()
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
End With
End Sub
Public Sub EventsOn()
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
End With
End Sub

Vielen Dank schon mal für die Hilfe und vielen Dank an 'nighty' für die tolle Vorlage!

fred2000

4 Antworten

0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo,

ändere

ThisWorkbook.Sheets("Tabelle1").Range("A" & zeile & ":Q" & zeile)


in

ThisWorkbook.Sheets("Tabelle1").Range("A" & zeile & ":Q" & zeile).PasteSpecial Paste:=xlPasteValues

Gruß

M.O.
0 Punkte
Beantwortet von
Hallo M.O.
besten Dank für die schnelle Antwort. Jedoch hatte ich diesen Befehl schon probiert, aber es erscheint dann direkt nach verlassen der Zeile eine Fehlermeldung:

"Fehler beim Kompilieren:
Erwarte: Anweisungsende"

dabei ist "Paste:" blau markiert.

Was habe ich da vergessen? Oder funktioniert dieses Komando hier nicht?

Danke für weitere Hilfe

fred2000
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Fred,

füge mal hinter der Zeile

Workbooks(DateiName).Sheets("Übersetzung").Range("A2:Q2").Copy


einen Zeilenumbruch ein, so dass die Zeile

ThisWorkbook.Sheets("Tabelle1").Range("A" & zeile & ":Q" & zeile).PasteSpecial Paste:=xlPasteValues


in einer eigenen Zeile steht.

Ansonsten kannst du ja mal eine Beispieldatei, z.B. hier, hochladen.

Gruß

M.O.
0 Punkte
Beantwortet von
Hallo M.O.
SSSSSUUUUUPPPPEEEERRRR!

Vielen Dank, so funktionierts.

Manchmal sind es halt nur so winzige Dinge wie ein Zeilenumbruch!

Grüße

fred2000
...