Thema
|
Datum
|
Von Nutzer
|
Rating
|
Antwort
|
|
28.11.2015 13:36:39 |
Maximilian |
|
|
|
28.11.2015 14:13:55 |
Gast74077 |
|
|
|
28.11.2015 14:57:50 |
Gast49930 |
|
|
|
28.11.2015 14:59:44 |
Gast2329 |
|
|
|
28.11.2015 16:55:36 |
Gast78676 |
|
|
|
29.11.2015 11:49:09 |
Gast72217 |
|
|
|
29.11.2015 12:30:42 |
Gast31614 |
|
|
|
29.11.2015 12:47:43 |
Maximilian |
|
|
|
29.11.2015 12:24:02 |
Gast88400 |
|
|
|
29.11.2015 13:38:04 |
Gast18527 |
|
|
Formeln kopieren |
29.11.2015 17:30:01 |
Maximilian |
|
|
|
29.11.2015 21:29:21 |
Gast12175 |
|
|
|
29.11.2015 22:48:29 |
Maximilian |
|
|
|
30.11.2015 14:05:39 |
Gast68203 |
|
|
Von:
Maximilian |
Datum:
29.11.2015 17:30:01 |
Views:
948 |
Rating:
|
Antwort:
|
Thema:
Formeln kopieren |
Hi Matthias,
hat leider nicht geklappt. Nun schaut mein Code folgendermaßen aus.
Sub Spread_CalcExp()
'Open Files
Dim Source As String
Dim StrFile As String
Const csPath As String = "C:\Users\Maximilian\Documents\Studium\Bachelor Arbeit\Data\Aggr_Orders_Match\"
Dim i As Integer
Dim j As Integer
Dim objRange As Range
Dim Spalte As Integer
Dim Ausgang As String
Dim Tab2 As Integer
Dim Formel As Integer
Application.DisplayAlerts = False
Application.ScreenUpdating = False
'do not forget last backslash in source directory.
Source = "C:\Users\Maximilian\Documents\Studium\Bachelor Arbeit\Data\"
StrFile = Dir(Source)
'die Datei aus der das Makro startet und die Werte eingetragen werden
Ausgang = "Order_Spread_Export.xlsm"
Do While Len(StrFile) > 0
'sucht die aktuelle Spalte in der Ausgangsdatei
Spalte = Workbooks(Ausgang).Worksheets(1).Cells(1, Columns.Count).End(xlToLeft).Column
'öfnet die erste Datei
Workbooks.Open Filename:=Source & StrFile
' Prozedur Spread Start
Sheets.Add After:=ActiveSheet
'einfügen der Formel, ggf. könnte man das auch mit for und einem Code durch alle 6601 durchlaufen, könnte aber länge dauern
Tab2 = Workbooks(StrFile).Worksheets(2).Name
Formel = "=(" & Tab2 & "!B2-" & Tab2 & "!C2)/Average(" & Tab2 & "!B2;" & Tab2 & "!C2)"
'Range für A2 bs A6601 festlegen
Set objRange = Workbooks(StrFile).Worksheets(3).Range("A2:A6601") 'Cells(11, 6).Resize(zeilen - 11, 1) 'Bereichlänge anpassen....
'Formel einfügen
objRange.FormulaLocal = Formel
Set objRange = Nothing
Workbooks(StrFile).Worksheets(3).Range("A1").Value = "Relative Spread" 'Einfügen einer Überschrift
' die Formatierungen
Workbooks(StrFile).Worksheets(3).Range("A:A").Style = "Percent"
Workbooks(StrFile).Worksheets(3).Range("A:A").NumberFormat = "0.0000%"
' Prozedur Spread Ende
'Ab hier soll die Range("A:A") in das Workbook("Order_Spread_Export") in Sheet1 in die nächste leere Spalte kopiert werden.
' Danach soll sich dass Variable Sheet schließen und ein neues Sheet bearbeitet werden
Workbooks(StrFile).Worksheets(3).Range("A:A").Copy
'Odner Order_Spread_Export.xls aktivieren und dann die Werte einfügen
Workbooks(Ausgang).Activate
'jetzt einfügen, letzter Wert war in Spalte deshalb Spalte +1
Workbooks(Ausgang).Worksheets(1).Columns(Spalte + 1).PasteSpecial (xlPasteValues)
Workbooks(StrFile).Close savechanges:=True
' nächste Datei holen
StrFile = Dir()
Loop
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
Es erscheint die Error Message:
Type mismatch
Vielen Dank!
|
- Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
- Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
- Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
- Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
- Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei
Antworten auf Ihren Beitrag zu benachrichtigen
Bitte geben Sie ein aussagekräftiges Thema an.
Bitte geben Sie eine gültige Email Adresse ein!
- Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
- Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
- Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
- Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
- Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei
Antworten auf Ihren Beitrag zu benachrichtigen
Thema
|
Datum
|
Von Nutzer
|
Rating
|
Antwort
|
|
28.11.2015 13:36:39 |
Maximilian |
|
|
|
28.11.2015 14:13:55 |
Gast74077 |
|
|
|
28.11.2015 14:57:50 |
Gast49930 |
|
|
|
28.11.2015 14:59:44 |
Gast2329 |
|
|
|
28.11.2015 16:55:36 |
Gast78676 |
|
|
|
29.11.2015 11:49:09 |
Gast72217 |
|
|
|
29.11.2015 12:30:42 |
Gast31614 |
|
|
|
29.11.2015 12:47:43 |
Maximilian |
|
|
|
29.11.2015 12:24:02 |
Gast88400 |
|
|
|
29.11.2015 13:38:04 |
Gast18527 |
|
|
Formeln kopieren |
29.11.2015 17:30:01 |
Maximilian |
|
|
|
29.11.2015 21:29:21 |
Gast12175 |
|
|
|
29.11.2015 22:48:29 |
Maximilian |
|
|
|
30.11.2015 14:05:39 |
Gast68203 |
|
|