X-Achse per VBA mit Datum skalieren
#1
Hallo,
ich würde gerne ein Diagramm(Punkt(XY)) automatisch mit Anfang und Enddatum skalieren. 
Anfangsdatum steht in Berechnungen B2 mit Format Datum Typ *14.03.2012 und ist 01.08.2021
Enddatum steht in Berechnungen B3 mit Format Datum Typ *14.03.2012 und ist 20.08.2021
Die x-Achse des Diagrammes ist auch mit Datum Typ *14.03.2012 
Folgender VBA Code:
Sheets("Diagramm1").Select
    ActiveChart.Axes(xlCategory).MinimumScale = Sheets("Berechnungen").Range("B2")
    Sheets("Umwälzpumpe").Select
    ActiveChart.Axes(xlCategory).MaximumScale = Sheets("Berechnungen").Range("B3")
 
Im Diagramm erhalte ich aber 20.06.4862 bis 20.06.4862.
 
Jemand eine Idee?
Antworten Top
#2
Hallo
Bei mir - Excel 2013 - klappt Dein Makro bestens.
Lade doch mal Deine Datei hoch.
Niclaus
Antworten Top
#3
Ich konnte das Problem ein wenig eingrenzen.

Ich lese mehrere Dateien mit folgendem Script ein und das Diagramm startet mit 00.01.1900 obwohl das richtige Datum der 01.09.2021 wäre.
Irgendwas stimmt mit dem Format nicht, wenn ich nämlich das Datum per Hand in die Spalte eintrage, wird das Diagramm korrekt erstellt.
Das Format scheint aber identisch zu sein.

Code:
Public Sub Daten_mehrerer_Dateien_zusammenfuehren()
'Code für ein allgemeines Modul
'********************************
'Autor: Jürgen Hennekes
'********************************
On Error GoTo errExit
Dim WBQ As Workbook
Dim WBZ As Workbook
Dim varDateien As Variant
Dim lngAnzahl As Long
Dim lngLastQ As Long

Set WBZ = ActiveWorkbook
'Altdaten auf Zielblatt löschen
WBZ.Worksheets(1).Range("A2:IV65536").ClearContents

varDateien = _
Application.GetOpenFilename("Datei (*.*),*.*", False, "Bitte gewünschte Datei(en) markieren", False, True)

With Application
  .ScreenUpdating = False
  .EnableEvents = False
  .Calculation = xlCalculationManual
End With

For lngAnzahl = LBound(varDateien) To UBound(varDateien)
Set WBQ = Workbooks.Open(Filename:=varDateien(lngAnzahl))
  lngLastQ = WBQ.Worksheets(1).Range("A65536").End(xlUp).Row
  WBQ.Worksheets(1).Range("A2:Z" & lngLastQ).Copy _
  Destination:=WBZ.Worksheets(1).Range("A" & WBZ.Worksheets(1).Range("A65536").End(xlUp).Row + 1)
WBQ.Close
Next

With Application
  .ScreenUpdating = True
  .EnableEvents = True
  .Calculation = xlCalculationAutomatic
End With

MsgBox "Es wurden " & UBound(varDateien) & " Dateien zusammengefügt.", 64

Exit Sub

errExit:
With Application
  .ScreenUpdating = True
  .EnableEvents = True
  .Calculation = xlCalculationAutomatic
End With

If Err.Number = 13 Then
MsgBox "Es wurde keine Datei ausgewählt"
  Else
MsgBox "Es ist ein Fehler aufgetreten!" & vbCr _
& "Fehlernummer: " & Err.Number & vbCr _
& "Fehlerbeschreibung: " & Err.Description
End If

End Sub
Antworten Top
#4
Hallo,


Zitat:Ich lese mehrere Dateien mit folgendem Script ein und das Diagramm startet mit 00.01.1900 obwohl das richtige Datum der 01.09.2021 wäre.


ein Datum 00.01.1900 (formatiert als "Datum, kurz") entspricht, als Standardzahl formatiert, der Zahl 0 (=fortlaufende Zahl für das Datum eines Tages),
während das Datum 01.09.2021, als Standardzahl formatiert, die Zahl 44440 ergibt (somit 44440 Tage nach dem Tag 0).

Es dürfte somit kein Datum in die betreffende Zelle eingefügt werden, sodass die ursprünglich leere Zelle immer noch vorliegt.

Aus deinen Makros kann man nur entnehmen, dass mehrere Quelldateien in eine Zieldatei eingelesen werden können und dann die Daten hintereinander angefügt werden.
Mit lieben Grüßen
Anton.

Windows 10 64bit
Office365 32bit
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste