Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
1664to1668
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

UsedRange als Bild speichern

UsedRange als Bild speichern
08.01.2019 09:36:56
Stefan
Hallo und guten Morgen,
versuche seit einiger Zeit, einige Druckoptionen per VBA zur Verfügung zu stellen. Das Speichern von UsedRanges in den diversen Tabellenblättern funktioniert super.
Allerdings habe ich Probleme dabei, die gleichen Bereiche auch als jpg zu speichern. Bei der Suche bin ich auf diverse Codes gestoßen; einen davon habe ich angepasst; allerdings ist da irgendwo ein Fehler drin ... :/.
Hier der Code:
Option Explicit
Sub Druck_Bild()
Dim objPict As Object, objChrt As Chart
Dim rngImage As Range
Dim strFile As String
Application.ScreenUpdating = False
'On Error GoTo ErrExit
With ActiveSheet
Set rngImage = .UsedRange.Adress
rngImage.CopyPicture Appearance:=xlScreen, Format:=xlPicture
.PasteSpecial Format:="Bitmap", Link:=False, DisplayAsIcon:=False
strFile = ThisWorkbook.Path & "\Anlage"
Set objPict = .Shapes(.Shapes.Count)
objPict.Copy
Set objChrt = .ChartObjects.Add(1, 1, objPict.Width, objPict.Height).Chart
objChrt.Paste
objChrt.Export strFile
objChrt.Parent.Delete
objPict.Delete
End With
Set objPict = Nothing
Set objChrt = Nothing
Set rngImage = Nothing
Application.ScreenUpdating = True
End Sub

Kann mir hier bitte jemand helfen? Stehe auf dem Schlauch ...

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
rngImage ist als Range...
08.01.2019 10:06:20
Beverly
Hi,
...deklariert, da darfst du bei der Zuweisung kein .Address verwenden.


AW: rngImage ist als Range...
08.01.2019 10:17:38
Stefan
Hi Beverly,
danke dir :).
Wie sollte ich dann am besten vorgehen? Bin in VBA noch nicht firm genug ...
Ich kann keine festen Adressen verwenden, sonst müsste ich auf jedem Tabellenblatt einen eigenen Code eingeben; daher bevorzuge ich eine Lösung, die mit nur 1 Code auskommt ...
AW: UsedRange als Bild speichern
08.01.2019 10:55:48
Nepumuk
Hallo Stefan,
teste mal:
Public Sub Druck_Bild()
    
    Dim objChartObject As ChartObject
    
    
    Application.ScreenUpdating = False
    
    With ActiveSheet
        
        .UsedRange.CopyPicture Appearance:=xlScreen, Format:=xlPicture
        
        Set objChartObject = .ChartObjects.Add(1, 1, .UsedRange.Width, .UsedRange.Height)
        
        With objChartObject
            .Activate
            With .Chart
                .Paste
                .Export ThisWorkbook.Path & "\Anlage.jpg", "JPG"
            End With
            .Delete
        End With
    End With
    
    Set objChartObject = Nothing
    Application.ScreenUpdating = True
End Sub

Gruß
Nepumuk
Anzeige
AW: UsedRange als Bild speichern
08.01.2019 11:18:02
Stefan
Hi Nepumuk,
ich danke dir :).
Habe es ausprobiert, bekomme aber nur ein "Teilergebnis" (siehe Anlagen).
Userbild
AW: UsedRange als Bild speichern
08.01.2019 11:21:59
Nepumuk
Hallo Stefan,
füge mal in eine Zelle unterhalb der rechten unteren Ecke des Diagramms ein Leerzeichen ein.
Gruß
Nepumuk
AW: UsedRange als Bild speichern
08.01.2019 11:24:28
Stefan
Hallo Nepumuk,
so einfach kann es sein ...
Jetzt muss ich mich erst mal durch die gesamte Datei "fräsen" und viele, viele Leerzeichen eingeben ;-).
Vielen Dank!!!!
Gruß
Stefan
AW: UsedRange als Bild speichern
08.01.2019 11:50:51
Stefan
Hi Nepumuk,
habe doch noch eine Frage hierzu:
Im Code wird an ein Dateiname vorgegeben. Nun kann es sein, dass ein Anwender mehrere Diagramme als Bild speichern will. Wenn er nicht nach jeder Speicherung die Dateinamen selbst umbenennt, wird die Datei jedesmal überschrieben.
Beim PDF-Druck konnte ich vorgeben, dass der Dateiname eine Kombination aus Tabellenname und Datum/Uhrzeit bildet (Dateiname_08012019_1139.pdf).
Ist das hier auch möglich?
Anzeige
AW: UsedRange als Bild speichern
08.01.2019 12:00:23
Nepumuk
Hallo Stefan,
klar geht das. Wobei ich das Jahr vorne schreiben würde:
                .Export ThisWorkbook.Path & "\" & ActiveSheet.Name & _
"_" & Format$(Now, "yyyymmdd_HhNn") & ".jpg", "JPG"

Gruß
Nepumuk

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige