Ich habe vor einiger Zeit ein Macro mittels Macro-recorder erstellt.
Dieses funktioniert bislang auch zu vollster Zufriedenheit.
Mit einem Datenloger werden Akku-spannungen während einem Entladevorgang mitgeschrieben.
Per Makro werden die Daten in Excel importiert.
In Spalte A ist immer die Zeitbasis, dann kommen 24 Zeilen mit den Daten für 24 Akku's (= bis Zeile Y)
dann kommt zu Schluss die Gesamtspannung (in Zeile Z)
Zur Erstellung von dem Chart der Gesamtspannung habe ich die Zeitachse (= Spalte A) kopiert um diese dann als neue Spalte Z einzufügen.
Dann habe ich den Bereich von Zeitachse und Wert der Ges.-spannung (= Spalte Z und AA) ausgewählt und damit einen Chart erstellt.
ActiveSheet.Shapes.AddChart2(227, xlLine).Select
ActiveChart.SetSourceData Source:=ActiveWorkbook.Sheets(strTabname).Range("$Z$1:$AA$" & loletzte)
Da mit dem Kopieren und Einfügen der Zeitbasis hätte ich mir sparen können, wenn ich lediglich Spalte A UND Spalte Z ausgewählt hätte.
Das muss jetzt eh umgeändert werden.
Ähnlich bin ich mit der Zeitbasis (A) und den Werten aller Akku's verfahren (= Spalte A bis Y
ActiveChart.SetSourceData Source:=ActiveWorkbook.Sheets(strTabname).Range("$A$1:$Y$" & loletzte)
Bei der Erstellung war der Wert der Totalspannung IMMER in der Kolonne "Z" bevor er durch das Einfügen nach AA verschoben wurde.
Nun hat sich aber die Sache geändert, weil jetzt nicht mehr ausschließlich 2 Volt Akku's sonder auch 6- und 12 Volt Akku's zum Einsatz kommen.
Dadurch gibt es je nach Typ weniger Einzel-messwerte, dadurch rückt auch die Spalte der Gesamtspannung von vorne.
In jedem Fall befindet er sich aber in der jeweiligen letzten Spalte der Daten.
Frage: wie kann ich das Macro so umändern dass immer Kolonne "A" UND die jeweilige letzte Kolonne ausgewählt werden ?
Für die Einzelspannungen kann man den Bereich von Spalte A BIS zur Vor-letzten Spalte auswählen.
Wenn jemand mir weiterhelfen könnte mit:
- der Bestimmung der letzten Spalte
- wie wäre der Code für Spalte A UND letzte Spalte, sowie
- wie wäre der Code für Spalte A BIS letvorzte Spalte.
Hier ist noch eine Liste mit Werten welche im Vorfeld definiert wurden.
Dim strName As String
Dim Neuer_Dateiname As String
Dim strTabname As String
Dim oChrt As ChartObject
Dim Chrt As Chart
Dim loletzte As Long
Dim strPfad As String
'letzte Zeile in Spalte A im aktiven Blatt ermitteln
loletzte = ActiveWorkbook.ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
'Name des aktiven Arbeitsblattes in Variable schreiben
strTabname = ActiveWorkbook.ActiveSheet.Name
Vielen Dank für eure Hilfe.
Mit freundlichen Grüssen.
Allen wünsche ich ein gutes, gesundes und friedliches neue Jahr