Kann mir jemand helfen?
Habe ein Schape in einer Tabelle und möchte es in die Userform laden. Wie geht das? Habe nichts entsprechendes gefunden.
Name des Shapes: Sheets ("Start").Shapes("K_1")
Danke
Gruß
Felix
Habe ein Schape in einer Tabelle und möchte es in die Userform laden. Wie geht das? Habe nichts entsprechendes gefunden.
Name des Shapes: Sheets ("Start").Shapes("K_1")
Danke
Gruß
Felix
Hat jemand eventuell die Zeit und Lust mir ein Beispiel ins Forum zu stellen?
Wäre wirklich toll.
Danke
Felix
Option Explicit
Dim container As Chart, containerbok As Workbook, Obnavn As String, Sourcebok As Workbook
Function SelectArea() As String
Dim Internrange As Range
On Error GoTo Brutt
Set Internrange = Range("c3:i22") 'Hier Bereich anpassen
SelectArea = Internrange.Address
Exit Function
Brutt:
SelectArea = "A1"
End Function
Function sShortname(ByVal Orrginal As String) As String
Dim iii As Integer
sShortname = ""
For iii = 1 To Len(Orrginal)
If Mid(Orrginal, iii, 1) <> " " Then sShortname = sShortname & Mid(Orrginal, iii, 1)
Next
End Function
Private Sub ImageContainer_init()
Workbooks.Add (1)
ActiveSheet.Name = "GIFcontainer"
Charts.Add
ActiveChart.ChartType = xlColumnClustered
ActiveChart.SetSourceData Source:=Worksheets(1).Range("A1")
ActiveChart.Location Where:=xlLocationAsObject, Name:="GIFcontainer"
ActiveChart.ChartArea.ClearContents
Set containerbok = ActiveWorkbook
Set container = ActiveChart
End Sub
Sub MakeAndSizeChart(ih As Integer, iv As Integer)
Dim Hincrease As Single, Vincrease As Single
Obnavn = Mid(ActiveChart.Name, Len(ActiveSheet.Name) + 1)
Hincrease = ih / ActiveChart.ChartArea.Height
ActiveSheet.Shapes(Obnavn).ScaleHeight Hincrease, msoFalse, msoScaleFromTopLeft
Vincrease = iv / ActiveChart.ChartArea.Width
ActiveSheet.Shapes(Obnavn).ScaleWidth Vincrease, msoFalse, msoScaleFromTopLeft
End Sub
Public Sub GIF_Snapshot()
Dim varReturn As Variant, MyAddress As String, SaveName As Variant, MySuggest As String
Dim Hi As Integer, Wi As Integer, Suffiks As Long
Set Sourcebok = ActiveWorkbook
MySuggest = sShortname(ActiveSheet.Name)
ImageContainer_init
Sourcebok.Activate
MyAddress = SelectArea
If MyAddress <> "A1" Then
SaveName = "C:\WINDOWS\TEMP\Diagramm"
Range(MyAddress).Select
Selection.CopyPicture Appearance:=xlScreen, Format:=xlBitmap
If SaveName = False Then
GoTo Avbryt
End If
If InStr(SaveName, ".") Then SaveName = Left(SaveName, InStr(SaveName, ".") - 1)
Selection.CopyPicture Appearance:=xlScreen, Format:=xlBitmap
Hi = Selection.Height + 4
Wi = Selection.Width + 6
containerbok.Activate
ActiveSheet.ChartObjects(1).Activate
MakeAndSizeChart ih:=Hi, iv:=Wi
ActiveChart.Paste
ActiveChart.Export Filename:=LCase(SaveName) & ".gif", FilterName:="GIF"
ActiveChart.Pictures(1).Delete
Sourcebok.Activate
End If
Avbryt:
On Error Resume Next
Application.StatusBar = False
containerbok.Saved = True
containerbok.Close
End Sub
In die Userform folgenden Code:
Option Explicit
Private Sub UserForm_Activate()
Image1.Picture = LoadPicture("C:\WINDOWS\TEMP\Diagramm.gif")
End Sub
Gruß
Nepumuk
leider habe ich nur das Problem, das ich unterschiedliche Shapes (je nach Listboxauswahl) laden wollte. Nun gut, eventuell kann ich es ja mal zu einem späteren Zeitpunkt (wenn ich mehr weiß).
Mein Problem kann ich nicht mit dem Makrorecorder lösen, da er ja auf der Modulebene nichts aufzeichnet. (somit bekomme ich auch nicht das Shape in die Userform.
Dennoch vielen Dank für die Anregungen.
Gruß
FELIX
Vielen Dank Nepumuk.
Mein lieber Herr Gesangsverein.
So ein Aufwand hatte ich nicht erwartet.
Den Code muß ich erst mal in einer ruhigen Minute verdauen.
Danke
Gruß
Felix