Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1336to1340
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
Diagramm in Userform anzeigen
09.11.2013 14:11:53
mikey20
HI
ich habe hier schon viel Hilfe für das anzeigen der Diagramme in der
Userform erhalten. Mein dank gilt an alle aber insbesondere beverly.
Jetzt habe ich eine wahrscheinliche Lösung gefunden.
Ich habe die anzuzeigenden Diagramme in ein neues Tabellenblatt kopiert
das aber beim starten ausgeblendet werden soll. Leider kommt es hin und wieder
vor das er das bild nicht anzeigt und den fehler ausgibt das es ein ungültiges bild
ist.
Ich habe probiert das Diagramm vorher zu selektieren / auszuwählen dann funktioniert es. Nur bin ich mir nicht sicher ob es immer funktioniert.
anbei die Makros vielleicht kann mir jemand dabei helfen
Diagramme heißen einfach Diagramm1, Diagramm2, usw.
Makro für das anzeigen des diagrammes

Sub Diagramm_Bosch_260()
ActiveSheet.ChartObjects.Select
Bild_Anzeigen "Tabelle1", "Diagramm4"
End Sub

Sub Bild_Anzeigen(strTab As String, strDia As String)
ActiveSheet.Unprotect Password:="test"
Dim Diagramm As Object
Dim dblBreite As Double
Dim dblHoehe As Double
Set Diagramm = Worksheets(strTab).ChartObjects(strDia).Chart
With Diagramm.Parent
dblHoehe = .Height
dblBreite = .Width
.Height = dblHoehe
.Width = dblBreite
Dateiname = ThisWorkbook.Path & Application.PathSeparator & "diagramm.bmp"
End With
ActiveSheet.ChartObjects.Select
Diagramm.Export Filename:=Dateiname, FilterName:="bmp"
With UserForm8
.Image1.Width = Diagramm.Parent.Width
.Image1.Height = Diagramm.Parent.Height
.Width = .Image1.Width + 15
.Height = .Image1.Height + 30
End With
UserForm8.Image1.Picture = LoadPicture(Dateiname)
With Diagramm.Parent
.Height = Diagramm.Parent.Height
.Width = Diagramm.Parent.Width
End With
Kill Dateiname
UserForm8.Show
ActiveSheet.Protect Password:="test", DrawingObjects:=False, Contents:=True, _
Scenarios:= _
True, AllowFiltering:=True
End Sub

danke
lg

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Diagramm in Userform anzeigen
09.11.2013 19:16:58
mikey20
hi
habe in der Zwischenzeit das makro zum anzeigen des diagrammes etwas geändert.
Es funktionieren die ersten beiden Diagramme, aber ab dem 3ten Diagramm kommt wieder
die Fehlermeldung. ungültiges Bild, Fehler 481
Sub Diagramm()
Application.ScreenUpdating = False
ActiveSheet.ChartObjects.Select
Sheets("Tabelle1").Visible = True
Bild_Anzeigen "Tabelle1", "Diagramm2"
Sheets("Tabelle1").Visible = False
End Sub

AW: Diagramm in Userform anzeigen
10.11.2013 12:02:56
Beverly
Hi Mikey,
vielleicht solltest du mal deine Arbeitsmappe hochladen.


Anzeige
AW: Diagramm in Userform anzeigen
10.11.2013 22:21:13
mikey20
hallo
ja ich habe aber in der zwischenzeit herausgefunden das wenn ich in den Makro für das Diagramm
folgende Zeile hinzufüge das es angezeigt wird, jedoch springt excel gleichzeitig in eine andere
Registerkarte und zeigt mir dort das Diagramm an.
ThisWorkbook.Sheets("Tabelle1").ChartObjects(3).Activate
die oben genannte Zeile habe ich jetzt vor dem export eingefügt.
das ganze makro lautet nun so
Sub Bild_Anzeigen(strTab As String, strDia As String)
ActiveSheet.Unprotect Password:="test"
Dim Diagramm As Object
Dim dblBreite As Double
Dim dblHoehe As Double
Set Diagramm = Worksheets(strTab).ChartObjects(strDia).Chart
With Diagramm.Parent
dblHoehe = .Height
dblBreite = .Width
.Height = dblHoehe
.Width = dblBreite
Dateiname = ThisWorkbook.Path & Application.PathSeparator & "diagramm.bmp"
End With
ThisWorkbook.Sheets("Tabelle1").ChartObjects(3).Activate
Diagramm.Export Filename:=Dateiname, FilterName:="bmp"
With UserForm8
.Image1.Width = Diagramm.Parent.Width
.Image1.Height = Diagramm.Parent.Height
.Width = .Image1.Width + 15
.Height = .Image1.Height + 30
End With
UserForm8.Image1.Picture = LoadPicture(Dateiname)
With Diagramm.Parent
.Height = Diagramm.Parent.Height
.Width = Diagramm.Parent.Width
End With
Kill Dateiname
UserForm8.Show
ActiveSheet.Protect Password:="test", DrawingObjects:=False, Contents:=True,  _
Scenarios:= _
True, AllowFiltering:=True
End Sub

Anzeige
AW: Diagramm in Userform anzeigen
11.11.2013 10:30:48
mikey20
hi
kann es auch damit zusammenhängen das die Daten für das Diagramm in einem anderen Excel File abgespeichert sind?
danke
lg

AW: Diagramm in Userform anzeigen
12.11.2013 11:37:34
mikey20
hi
wollte euch fragen ob es möglich ist das diagramm vor dem export zu selektieren, damit
diese fehlermeldung verschwindet.
vielleicht könnt ihr mir dabei helfen.
danke
lg

Anzeige
AW: Diagramm in Userform anzeigen
12.11.2013 11:50:48
Beverly
Hi,
wer sagt dir denn definitv, dass die Fehlermeldung weg geht, wenn du das Diagramm selektierst?
Ich wiederhole mich noch einmal: lade deine Mappe hoch, damit man das nachvollziehen kann. Falls du das nicht tun möchtest, bin ich dann raus.


AW: Diagramm in Userform anzeigen
12.11.2013 11:58:21
mikey20
danke für die antwort, leider hat meine mappe 800 makros und die diagramme kann ich nicht posten.
aber was ich noch wissen wollte kann es sein das wenn das Diagramm optisch aufgebessert wurde
das diese Fehlermeldung kommt.
Beispielsweise habe ich einen leuchtenden rahmen darüber usw. falls nicht kannst du
mir vielleicht einen tipp geben wie ich die ganzen makros auf einmal entfernen kann.
das würde dann schneller beim hochladen der mappe funktionieren.
danke
lg

Anzeige
AW: Diagramm in Userform anzeigen
12.11.2013 19:00:52
mikey20
Hi
habe gerade diesen link gefunden wo dort viele user probleme mit dem export von diagrammen haben.
einmal funktioniert es einmal nicht. es ist ein excel 2010 bug.
http://social.msdn.microsoft.com/Forums/en-US/736eeb5f-7f21-4006-87ee-7748f3c83175/chartexport-creates-corrupt-files-randomly?forum=isvvba
You don't need to activate each chartobject everytime you open the userform. You need to do it only once. I usually do it when I open the workbook.
So, put the following code in your Workbook_Open event and remove it from the code snippet you just wrote:
For i = 1 To 3
Sheets("Sheet1").ChartObjects(i).Activate
Fname = ThisWorkbook.Path & "\temp" & i & ".gif"
ActiveChart.Export Filename:=Fname, FilterName:="GIF"
Next i

Anzeige
AW: Diagramm in Userform anzeigen
12.11.2013 22:33:54
Beverly
Hi,
ein Select auf die Diagramme ist nicht notwendig - es reicht, wenn du die Excel-Application wieder aktivierst, bevor du das als Bild exportierte Diagramm in das Image lädst:
Sub Bild_Anzeigen(strTab As String, strDia As String)
Dim Diagramm As Object
Dim dblBreite As Double
Dim dblHoehe As Double
Dim Dateiname As String
Set Diagramm = Worksheets(strTab).ChartObjects(strDia).Chart
With Diagramm.Parent
dblHoehe = .Height
dblBreite = .Width
.Height = dblHoehe
.Width = dblBreite
Dateiname = ThisWorkbook.Path & Application.PathSeparator & "diagramm.bmp"
End With
Diagramm.Export Filename:=Dateiname, FilterName:="bmp"
With UserForm8
.Image1.Width = Diagramm.Parent.Width
.Image1.Height = Diagramm.Parent.Height
.Width = .Image1.Width + 15
.Height = .Image1.Height + 30
End With
AppActivate Application.Caption
UserForm8.Image1.Picture = LoadPicture(Dateiname)
Kill Dateiname
UserForm8.Show
End Sub
Da das Tabellenblat mit den Diagrammen ausgeblendet ist, brauchst du auch keinen Blattschutz.


Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige