Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1536to1540
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Diagramm. Probleme bei der Anzeige

Diagramm. Probleme bei der Anzeige
03.02.2017 06:58:29
Hockmock
Ahoi liebe Gemeinde,
ich stehe vor einem Rätsel und hoffe, dass ihr mir hier auf die Sprünge helfen könnt.
Also: ich habe eine Arbeitmappe. Dort ist ein kleiner Bereich deklariert, in dem ich täglich Daten eingebe. Per click auf einen Button werden diese Daten in eine Liste (auf einem anderen Blatt) übertragen. Basierend auf diesen Daten habe ich mehrere Diagramme erstellt. So weit so gut - funzt auch alles. Jetzt kommt das komische.
Jedes mal wenn ich einen Übertrag per vba mache, werden die in 3 Diagrammen (von 8) die Datenkurven nicht angezeigt. Die Datenpunkte sind in der Ansicht komplett nach links verschoben und die horizontale Diagrammachse zeigt keinen Wert an.
Wenn ich jetzt hergehe und die Diagramme untereinander austausche, dann sind beim nächsten Übertrag andere Diagramme betroffen. Jedoch werden die vorherigen Diagramme wieder korrekt angezeigt.
Dieses Spiel habe ich schon endlos getrieben und in verschiedenen Konstellationen die Diagramme angeordnet. Ergebnis: Es sind immer die ersten 3-4 Diagramme die falsch dargestellt werden!
Bin schon ganz gaga !! Hier noch mein Code den ich verwende....
Danke und Grüße,
Andreas
Private Sub CommandButton1_Click()
'****** Übertrag der daten nach DatenKoerperanalyse ******
Dim x As Long
If Sheets("Erfassungsformular").Range("y8").Value = "ok" Then
Application.ScreenUpdating = False
x = Sheets("DatenKoerperanalyse").Range("e20000").End(xlUp).Row
Sheets("Erfassungsformular").Range("P7:X7").Copy
With Worksheets("DatenKoerperanalyse")
.Range(.Cells(x + 1, 5), .Cells(x + 1, 13)).PasteSpecial Paste:=xlPasteValues,   Operation:= _
_
xlNone, SkipBlanks _
:=False, Transpose:=False
End With
Sheets("Erfassungsformular").Range("P7:X7").ClearContents
Application.CutCopyMode = False
MsgBox ("Die Daten wurden übertragen")
Application.ScreenUpdating = True
Else
MsgBox ("Daten sind bereits vorhanden")
End If
End Sub

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Diagramm. Probleme bei der Anzeige
03.02.2017 09:26:11
Beverly
Hi Andreas,
aus dem Code kann man nicht erkennen welchen Einfluss er auf die Diagramme haben könnte. Da müsstet du schon mal eine Beispielmappe hochladen und ganz konkret beschreiben wie man vorgehen muss um den Fehler auszulösen.


AW: Diagramm. Probleme bei der Anzeige
03.02.2017 10:21:25
Hockmock
Hallo Beverly,
habe nun mal meine Datei abgespeckt und hochgeladen. In dem Excel-Kommentarfeld habe ich versucht das Fehlverhalren zu erklären. Ich hoffe es wird klar was ich meine.
https://www.herber.de/bbs/user/111129.xlsm
Anzeige
AW: Diagramm. Probleme bei der Anzeige
03.02.2017 11:02:29
Beverly
Hi,
das Problem liegt darin begründet, dass du als Wertebereich für das Diagramm jeweils die komplette Zellenanzahl angegeben hast, obwohl die Zellen leer sind. Versuche es mal mit folgendem ergänzten Code:
Private Sub CommandButton1_Click()
'****** Übertrag der daten nach DatenKoerperanalyse ******
Dim x As Long
Dim chrDia As ChartObject
Dim strSpalte As String
Dim intSpalte As Integer
Application.ScreenUpdating = False
If Sheets("Erfassungsformular").Range("y8").Value = "ok" Then
x = Sheets("DatenKoerperanalyse").Range("e20000").End(xlUp).Row
Sheets("Erfassungsformular").Range("P7:X7").Copy
With Worksheets("DatenKoerperanalyse")
.Range(.Cells(x + 1, 5), .Cells(x + 1, 13)).PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
For Each chrDia In ActiveSheet.ChartObjects
strSpalte = Split(chrDia.Chart.SeriesCollection(1).Formula, ",")(0)
intSpalte = Range(Mid(strSpalte, InStr(strSpalte, "!") + 1)).Column
chrDia.Chart.SeriesCollection(1).Values = .Range(.Cells(4, intSpalte), _
.Cells(x + 1, intSpalte))
chrDia.Chart.SeriesCollection(1).XValues = .Range(.Cells(4, 5), _
.Cells(x + 1, 5))
Next chrDia
End With
Sheets("Erfassungsformular").Range("P7:X7").ClearContents
Application.CutCopyMode = False
MsgBox ("Die daten wurden übertragen")
Else
MsgBox ("Daten sind bereits vorhanden")
End If
Application.ScreenUpdating = True
End Sub
Damit wird der Wertebereich für jedes Diagramm explizit mit der Anzahl an vorhandenen Daten definiert.


Anzeige
AW: Diagramm. Probleme bei der Anzeige
03.02.2017 11:14:28
Hockmock
Hallo nochmals,
das funktioniert zwar grundsätzlich, jedoch verschiebt es jetzt die vertikale Achse in die Mitte des Diagrammns. Hast du hierfür auch noch eine mögliche Ergänzung.
Danke und Grüße,
Andreas
AW: Diagramm. Probleme bei der Anzeige
03.02.2017 11:24:09
Beverly
Hi Andreas,
das kann ich (Excel2016) in deiner hochgeladenen Mappe nicht nachvollziehen. Ich sehe in dem Code auch ehrlich gesagt keinen Grund, weshalb das passieren sollte - liegt dann wohl irgendwie an deiner Excelversion. Aber du kannst ja bei allen Diagrammen unter den Achsenoptionen der Horizontalachse "Vertikale Achse schneidet" von "Automatisch" in "Bei Rubriknummer: 1" ändern - vielleicht unterbindest du damit dein für mich unlogisches Phänomen.


Anzeige
AW: Diagramm. Probleme bei der Anzeige
03.02.2017 11:44:22
Hockmock
das ist sowas von verrückt !?! Dein code in der Beispiel-Mappe funzt einwandfrei. Derselbe code in meiner echten Arbeitmappe führt zur verschobenen y-Achse. Das komische ist. Wenn ich im Einzelschrittmodus das Makro durchlaufen lasse tritt dieses Phänomen NICHT auf.
Das muss mir mal einer erklären.
Achso. Eine manuelle Änderung der Achsoptionen wie von dir beschrieben, bewirkt auch nichts.
AW: Diagramm. Probleme bei der Anzeige
03.02.2017 12:01:48
Hockmock
Ergänzung: ich habe noch ein wenig getestet. Der code funktioniert einwandfrei, solange die Zeilen
...Application.ScreenUpdating
... und alles nach "end with"
ausgeschaltet sind !!! Sobald ich einen Parameter wieder hinzunehme, verschiebt es erenut die y-Achse in die Diagrammmitte.
Private Sub CommandButton1_Click()
'****** Übertrag der daten nach DatenKoerperanalyse ******
Dim x As Long
Dim chrDia As ChartObject
Dim strSpalte As String
Dim intSpalte As Integer
'Application.ScreenUpdating = False
If Sheets("Erfassungsformular").Range("y8").Value = "ok" Then
x = Sheets("DatenKoerperanalyse").Range("e20000").End(xlUp).Row
Sheets("Erfassungsformular").Range("P7:X7").Copy
With Worksheets("DatenKoerperanalyse")
.Range(.Cells(x + 1, 5), .Cells(x + 1, 13)).PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
For Each chrDia In ActiveSheet.ChartObjects
strSpalte = Split(chrDia.Chart.SeriesCollection(1).Formula, ",")(0)
intSpalte = Range(Mid(strSpalte, InStr(strSpalte, "!") + 1)).Column
chrDia.Chart.SeriesCollection(1).Values = .Range(.Cells(4, intSpalte), _
.Cells(x + 1, intSpalte))
chrDia.Chart.SeriesCollection(1).XValues = .Range(.Cells(4, 5), _
.Cells(x + 1, 5))
Next chrDia
End With
'Sheets("Erfassungsformular").Range("P7:X7").ClearContents
'Application.CutCopyMode = False
'MsgBox ("Die daten wurden übertragen")
Else
MsgBox ("Daten sind bereits vorhanden")
End If
'Application.ScreenUpdating = True
End Sub

Anzeige
AW: Diagramm. Probleme bei der Anzeige
03.02.2017 12:07:32
Beverly
Dann reicht anscheinend die Zeit für den Diagrammaufbau bei dir nicht aus. Ergänze im Code vor der Zeile Next ChrDia mal noch diese Zeile:

chrDia.Chart.Refresh



AW: Diagramm. Probleme bei der Anzeige
03.02.2017 12:22:27
Hockmock
Du bist der "Burner" !!! Das funktioniert !!!
Vielen dank und Grüße,
Andreas

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige