Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Max. Achse immer aktuelle Datum

Max. Achse immer aktuelle Datum
18.07.2013 13:58:47
Max
Guten Tag die Herren
bevor ich mit meiner eigentlich Frage loslege, eine kleinere vorweg. Ich habe einen Code der Daten aus einer Tabelle in eine andere kopiert, wenn denn in dieser neue vorhanden sind. Die Frage relevanten Zeilen sind diese:
Row = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
.Range("A" & lRow).PasteSpecial xlPasteValues
Was muss ich denn schreiben, damit jeweils nicht die ganze Zeile der neuen Daten kopiert wird, sondern nur die ersten sechs Zellen der Reihe?
Dann die zweite Frage. Ich habe ein Diagramm mit einer Datumsachse. Gibt es eine Möglichkeit, dass per VBA die maximale Achsenskalierung (der äußerste Punkt ganz rechts an der Achse) immer das aktuelle Datum ist? Oder optimalerweise immer der letzte Banktag.
Gruß
Max

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Max. Achse immer aktuelle Datum
18.07.2013 17:01:32
fcs
Hallo Max,
du musst schon beim Kopieren nur die 6 Zellen kopieren!
Da sind dann ander Code-Zeilen zu korrigieren.
wenn du in der 1. Zeile
lRow = ...
schreibst sollte das Einfügen funktionieren.
zum Maxwert auf Datumsachse
Prinzipiell mit folgendem Makro, wobei du das entsprechende Diagramm setzen muss.
Ich weiss nicht wie der letzte Banktag berechnet wird. Deshalb das Makro für das aktuelle Datum.
Gruß
Franz
Sub ChartAchse_Heute()
Dim objChart As Chart, objAxis As Axis
'Set objChart = Charts("Diagramm1") 'Name anpassen
Set objChart = Sheets("Tabelle1").ChartObjects(1).Chart 'Name anpassen
With objChart
Set objAxis = .Axes(Type:=xlCategory) 'Kategorie/X-Achse
With objAxis
.MaximumScale = CDbl(Date)
End With
End With
End Sub

Anzeige
AW: Max. Achse immer aktuelle Datum
18.07.2013 17:41:41
Max
Hi Franz,
vielen Dank für deine Antwort.
My bad! Ich meinte natürlich diese Zeile.
.SpecialCells(xlCellTypeFormulas, 16).EntireRow.Copy
Ich verstehe aber leider nicht, wie ich das relativ darstellen kann, sodass die Zahl der Reihe _ sich ändern kann. Ich könnte mir vorstellen, dass es mit dim und i funktionieren könnte, und dann mit,

Range("i,6").Copy

aber dazu kenne ich mich leider nicht gut genug aus, um das umsetzen zu können.
Danke das funktioniert genau, wie ich es mir vorgestellt habe.
Gruß Max

Anzeige
AW: Max. Achse immer aktuelle Datum
19.07.2013 08:40:47
fcs
Hallo Max,
falls mehr als eine Zeile kopiert werden soll, dann muss muss jede Zeile einzeln kopiert werden.
Gruß
Franz
sieht dann etwa wie folgt aus.
Sub aatest()
Dim lRow As Long
Dim rngZeilen As Range, rngZeile As Range
Application.ScreenUpdating = False
With Worksheets("Tabelle1") 'Quelltabelle
With .Columns(8) 'Zellbereich mit den Formeln, die Fehler anzeigen können
Set rngZeilen = .SpecialCells(xlCellTypeFormulas, 16).EntireRow
End With
End With
With Worksheets("Tabelle2") 'Zieltabelle
lRow = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
For Each rngZeile In rngZeilen.Rows
rngZeile.Range("A1:F1").Copy
.Range("A" & lRow).PasteSpecial xlPasteValues
lRow = lRow + 1
Next
Application.CutCopyMode = False
End With
Application.ScreenUpdating = True
End Sub

Anzeige
AW: Max. Achse immer aktuelle Datum
19.07.2013 09:52:59
Max
Guten Morgen Franz,
danke für deine Antwort. Ich glaube, dass ich nicht ganz verstehe, wie ich das jetzt umsetzen soll. Deshalb hier nochmal der ganze relevante Code bei dem mir Klaus mal geholfen hatte:
Sub HoleNeue()
On Error GoTo hell
Const BlattQuelle As String = "Übersicht"
Const BlattNeu As String = "NV Neu 2010-2011"
Dim lRow As Long
With Shets(BlattQuelle)
lRow = .Cells(.Rows.Count, 1).End(xlUp).Row
With .Range("H2:H" & lRow)
.FormulaR1C1 = "=1/COUNTIF('" & BlattNeu & "'!C1,RC1)"
.SpecialCells(xlCellTypeFormulas, 16).EntireRow.Copy
End With
End With
With Sheets(BlattNeu)
lRow = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
.Range("A" & lRow).PasteSpecial xlPasteValues
End With
GoTo heaven:
hell:
MsgBox ("Keine neuen Einträge gefunden!")
heaven:
Sheets(BlattNeu).Columns(8).ClearContents
Sheets(BlattQuelle).Columns(8).ClearContents
End Sub
Ich habe mir gedacht, dass es klappen könnte, wenn ich nur den unteren Teil Deines Codes nehme, aber das klappt leider nicht. Bitte kannst Du mir noch einmal auf die Sprünge helfen?
Gruß Max

Anzeige
AW: Max. Achse immer aktuelle Datum
19.07.2013 12:29:43
fcs
Hallo max,
hier mein Beispiel in dein Makro integriert.
Gruß
Franz
Sub HoleNeue()
On Error GoTo hell
Const BlattQuelle As String = "Übersicht"
Const BlattNeu As String = "NV Neu 2010-2011"
Dim lRow As Long
Dim rngZeilen As Range, rngZeile As Range
Application.ScreenUpdating = False
With Sheets(BlattQuelle)
lRow = .Cells(.Rows.Count, 1).End(xlUp).Row
With .Range("H2:H" & lRow)
.FormulaR1C1 = "=1/COUNTIF('" & BlattNeu & "'!C1,RC1)"
Set rngZeilen = .SpecialCells(xlCellTypeFormulas, 16).EntireRow
End With
End With
With Sheets(BlattNeu)
lRow = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
For Each rngZeile In rngZeilen.Rows
rngZeile.Range("A1:F1").Copy
.Range("A" & lRow).PasteSpecial xlPasteValues
lRow = lRow + 1
Next
Application.CutCopyMode = False
End With
GoTo heaven:
hell:
MsgBox ("Keine neuen Einträge gefunden!")
heaven:
'  Sheets(BlattNeu).Columns(8).ClearContents 'nicht mehr erforderlich
Sheets(BlattQuelle).Columns(8).ClearContents
Application.ScreenUpdating = True
End Sub

Anzeige
AW: Max. Achse immer aktuelle Datum
19.07.2013 13:04:22
Max
Super vielen Dank! Du hast mir sehr geholfen.
Ich hatte es eigentlich genauso versucht, aber irgendwie wollte es bei mir doch nicht so gut klappen, wie bei dir.
Gruß Max

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige