Thema Datum  Von Nutzer Rating
Antwort
Rot Vergleich von Zellen über mehrere Spalten & Löschen von Reihen
24.11.2016 19:00:48 Johannes
NotSolved
25.11.2016 12:56:21 Mario
NotSolved

Ansicht des Beitrags:
Von:
Johannes
Datum:
24.11.2016 19:00:48
Views:
1108
Rating: Antwort:
  Ja
Thema:
Vergleich von Zellen über mehrere Spalten & Löschen von Reihen

Hallo liebe VBA Profis,

ich bin seit ein paar Wochen erst dabei VBA für mich zu nutzen und stehe gerade vor einem größeren Problem und würde mich freuen, wenn der ein oder andere Hilfe geben könnte. Ich habe von verschiedenen Finanzindizes (derzeit 75 Zeitreihen, evtl. kommen noch welche hinzu) tägliche Renditen. In einem späteren Schritt möchte ich mit diesen Zeitreihen in MATLAB oder anderen Statistikprogrammen weiterarbeiten und will diese in Excel erstmal nur aufbereiten. Das Problem bei der Aufbereitung ist, dass auf Grund von unterschiedlichen Feiertagen unter den beobachteten Ländern nicht für jeden Index die Schlusspreise zur Verfügung stehen. Ich möchte also nur die Preise, welche für jeden Index verfügbar sind analysieren. Die Daten habe ich aus Bloomberg, also kann ich mein Workbook leider nicht zur Verfügung stellen. Aber es sieht wie folgt aus: In der Spalte A steht beginnend in Zelle A2 das Datum (von 02.01.1995 - 1.11.2016), in der Spalte B für einen Index die dem Datum zugehörigen Preise, in C wieder das Datum und die zugehörigen Preise eines anderen Index in Spalte D ...und so weiter. Hierbei kann es vorkommen, dass zB. der 18.01. in Land A ein börsenfreier Tag war und deshalb für diesen Tag keine Preise zur Verfügung stehen. Nun will ich für alle anderen Länder die Werte des 18.01. löschen, sodass ohne leere Zellen zu bekommen für jeden Index die Zahlen für den 19.01. in der, auf die Reihe nach dem 17.01. folgendenden Zelle stehen.

Ich denke, dass ich hierfür eine Schleife brauche, welche für mich allerdings gerade schwer zu schreiben ist, da diese über mehrere Reihen und Spalten geht. Bisher habe ich:

lastcolumn = Sheets("Data polished").Cells(1, Columns.Count).End(xlToLeft).Column
ndlast = lastcolumn - 1
For j = 1 To 6000
For i = 1 To lastcolumn
For g = 2 To ndlast

 If Sheets("Data polished").Range(j, i) = Sheets("Data polished").Range(j, i + g) Then
    Sheets("Data polished").Range(j, i + g) = Sheets("Data polished").Range(j, i + g + 2)
    Else
 

 End If
Next
Next
Next

Ist aber alles humbug und funktioniert noch nicht. es müsste noch das löschen dazu. Bei mir haperts sowohl an dem Konstrukt als auch an dem Syntax, aber vllt ist der Kopf gerade auch einfach zu, weil ich den ganzen Tag schon mit den Zahlen beschäftigt bin und es sieht morgen alles ganz anders aus. Vielleicht gibt es ja auch einen einfachen Workaround...zB habe ich für den Bivariaten Fall schon einen funktionierenden VBA Code mit dem ich die überflüssigen Werte lösche...allerdings sind dort die zwei Assets in zwei verschiedenen Sheets und ich möchte ungern 75 Worksheets erstellen und jede Zeitreihe mit den anderen abgleichen müssen. Ich wäre für Hilfe sehr dankbar und gebe Bescheid, wenn ich weitergekommen bin und es jemanden interessiert.

Viele Grüße,

Jo


Ihre Antwort
  • 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: Name: Email:



  • 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
Rot Vergleich von Zellen über mehrere Spalten & Löschen von Reihen
24.11.2016 19:00:48 Johannes
NotSolved
25.11.2016 12:56:21 Mario
NotSolved