nachdem ich mich nun seit einigen Wochen in VBA einarbeite und bisher bei allen Problemen mit der Forensuche und der MSDN Library gut zurecht gekommen war, bin ich heute leider auf ein Problem gestoßen, das ich so alleine nicht zu lösen vermag. Ich hoffe ihr könnt mir dabei helfen!
Folgendes sind die Umstände in denen ich mich befinde:
Ich bin dabei ein Makro zu programmieren, welches aus einer Excel-Tabelle, welche in insgesamt 12 Spalten zahlreiche Daten (Messwerte) enthält letztendlich ein Diagramm erstellt. Die Erstellung des Diagramms als solches funktioniert problemlos. Allerdings gibt es hierbei eine Ausnahme: Die Daten übersteigen die Zahl von 32000 Werten. Excel kann mir also nur bis zum 32000sten Wert ein Diagramm erstellen und schneidet mir die restlichen Werte ab.
Da die Überschreitung der 32000 Werte variiert und ich nicht einfach fix jeden x-ten Wert löschen möchte (dann gehen in manchen Fällen [z.B. 33000 Werte] einfach zu viele Daten verloren), habe ich mir nun eine Funktion geschrieben, welche zuerst die Anzahl der überschüssigen Messwerte ermittelt und mir daraus eine Zahl genieriert, jeder wievielte Wert aus meinem Datensatz gelöscht werden soll und diese zurückliefert.
Nun hatte ich mir zwei Mögliche Lösungen überlegt weiter mit diesem berechneten Wert umzugehen.
Möglichkeit 1:
.Clear jeder x-ten Zeile und anschließendes .Copy und .PasteSpecial Paste:=xlPasteValues, SkipBlanks:=True in eine andere Spalte (die ursprünglichen Werte müssen an der Stelle stehen bleiben, da es keine reinen Werte sondern Berechnungsergebnisse aus den Daten von mehreren Spalten weiter vorne sind)
Möglichkeit 2:
in einer Spalte jede x-te Zelle mit einem Kommentar versehen und anschließend einen Autofilter darauf anwenden. Die kommentierten Zeilen ausblenden, die Datei schließen, neu öffnen und die sichtbaren Zellen markieren und in einen Range-Zwischenspeicher kopieren, den Filter auf "(Alle)" stellen und den Zwischenspeicher in eine andere Spalte weiter rechts einfügen.
Jetzt ist es leider so, dass keine der beiden Möglichkeiten per Makro funktionieren mag.
Möglichkeit 2 funktioniert komischerweise wenn ich sie manuell durchführe hervorragend. Wenn ich diese Prozedur aufzeichne und erneut abspiele funktioniert sie nicht.
Möglichkeit 1 erscheint mir deutlich einfacher. Die Zellen werden auch wie gewünscht gesäubert, nur das .PasteSpecial scheint nicht zu funktionieren, denn die Leerzeilen werden trotzdem eingefügt. Wenigstens xlPasteValues funktioniert ...
Nachdem ich nun heute den ganzen Tag versucht habe zum Ergebnis zu kommen, hier ca. 20 Tabs mit MSDN, herber, u.ä. geöffnet habe und nicht mehr weiter weiß,
hoffe ich, dass ihr mir helfen könnt und ich so doch noch zum gewünschten Diagramm gelange.
Wenn ihr weitere Informationen braucht, kann ich euch die gerne nachliefern. Den VB-Code habe ich nur erst einmal nicht gepostet, da ich erstens nicht weiß, wie man dies hier richtig macht (lese gleich mal in der FAQ) und zweitens ist er durch mein heutiges Herumexperimentieren sehr unübersichtlich geworden (viel auskommentiert).
Schönen Abend noch!
Sebastian