So funktioniert JustAnswer:
  • Fragen Sie einen Experten
    Tausende Experten in über 200 Kategorien.
  • Erhalten Sie eine professionelle Antwort
    Per E-Mail oder sofortiger Benachrichtigung, während Sie auf unserer Website warten.
    Stellen Sie ggf. weitere Anschlussfragen.
  • 100%ige Zufriedenheit garantiert
    Bewerten Sie die erhaltene Antwort.
Stellen Sie Ihre Frage an Tronic.
Tronic
Tronic, IT-Specialist
Kategorie: Computer
Zufriedene Kunden: 2398
Erfahrung:  Elektroniker und EDV-Service
31581453
Geben Sie Ihre Frage in der Kategorie Computer hier ein
Tronic ist jetzt online.

Hallo Forum, vorausgeschickt: Meine Frage richtet sich vermutlich

Kundenfrage

Hallo Forum,
vorausgeschickt: Meine Frage richtet sich vermutlich nur an Microsoft Office /VBA Spezialisten. Installiert: Win7 Home, Office 365 CTR
Ich übergebe mit VBA mehrere Excel-Tabllenblätter an verschiedene Textmarken in einem Word Dokument. Das letzte Tabellenblatt enthält bis zu 32 Fotos und kurze Bildunterschriften. Alle Blätter werden problemlos in Word übernommen - nur das letzte "Fotoblatt" macht Probleme. Solang die Gesamtgröße des Fotoblattes nicht über ca. 17 MB hinausgeht wird es reibungslos übernommen - wird die Datenmenge aber größer, dann dauert die Rechnerei gern mal über 10 Minuten und am Ende sind zwar alle Bildunterschriften übernommen worden, aber kein einziges Foto?? Die Bilder werden in Excel als Shapes erfasst, die Bildunterschriften sind normale Strings. Mein Code zur Übergabe des Fotoblattes (das in der Anzahl der Bilder bzw. Zeilen variieren kann):
Worksheets("Foto-Anlage").Activate
Dim lngLastRow7 As Long '6 andere Blätter vorher
With ActiveSheet
lngLastRow7 = .Cells.Find(What:="*", After:=Range("A1"), _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
Range("A1:C" & lngLastRow7).Copy
End With
myWord.ActiveDocument.Bookmarks("Fotos").Range.PasteSpecial
Application.CutCopyMode = False
Weiß jemand Rat?
Mit bestem Dank im Voraus, Michael
Gepostet: vor 2 Jahren.
Kategorie: Computer
Experte:  IT-Fachinformatiker hat geantwortet vor 2 Jahren.
Hallo

Ihre Frage ist nicht so leicht zu beantworten.Treten während des Vorgangs irgendwelche Laufzeitfehler wie z.B. "Überlauf" / "Division durch Null" oder "unbkeannts Objekt" auf? Sie sagen, das die Datenmenge ein wesentlicher Faktor ist das wäre der erste Ansatz: VBA benötigt bei größeren Datenmengen länger da VBA interpretiert wird. Der erste Schritt wäre daher die Datenmenge deutlich zu verringern. Welches Bildformat vernwenden Sie, welche Auflösungen etc? Ich vermute das das auch der Grund ist, warum das letzte Bild nicht übernommen wird (das hat auch mit den Datentypen zu tun).

Gruß Günter
Kunde: hat geantwortet vor 2 Jahren.

Hallo Günter,

der Reihe nach zu deinen Fragen:

Es gibt keine Fehlermeldung.

Datenmenge verringern: Genau wie beschrieben: Bis ca. 17MB Gesamtgröße des zu exportierenden Blattes kein Problem, aber Datenmenge > 17 MB immer Fehlfunktion. Könnte ich auf Datenexport > 17 MB verzichten, dann würde ich nicht nachfragen.

Problem unabhängig von der Menge der Bilder oder Auflösung: 32 Bilder< 17 MB - keine Problem, 12 Bilder > 17MB - Fehlfunktion. Alle Bilder sind jpg.

Es wird nicht nur das letzte Bild nicht übernommen - bei Fehlfunktion wird gar kein Bild übernommen.

Zusatz: Ich schreibe ca.17 MB - weil ich die Menge durch trial and error ermittelt habe - mit weiteren hundert Versuchen könnte man die genaue Größe vieleicht auf ein paar Kilobytes eingrenzen.

Ins Blaue geraten würde ich auf irgend einen begrenzenden registry Eintrag tippen oder den Fehler in der Speicherverwaltung suchen.

Gruß Michael

Experte:  IT-Fachinformatiker hat geantwortet vor 2 Jahren.

Hallo

mit der Registry hat das nichts zu tun sondern mit der Methode selbst. Je nach Office Version gibt es allerdings Limits die Sie auch nicht überschreiten können das gilt ganz besonders für das alte Office 2003 und 2007. Die Limits betreffen aber Dateigrößen und Anzal der Zeilen in Microsoft Excel. Ohne Fehlermeldung wird es aber recht schwer das Problem zu lösen. Haben Sie einmal versucht statt Shapes richtige Pictureboxen zu verwenden? Natürlich nur um zu testen ob das gleiche Problem dort auch auftritt.

Ganz so einfach wird das nicht lösbar sein. Man müsste schauen, ob es irgendein Muster gibt bei dem das Problem auftritt. Das es aber genau bei 16 MB (oder ab 17 MB) auftritt deutet auf ein Limit eines Datentyps hin. Ohne den kompletten Code gesehen zu haben und ohne weitere Details wird es allerdings leider sehr schwer dsa Problem zu lösen.

Gruß Günter

Kunde: hat geantwortet vor 2 Jahren.

Danke für Ihre Rückmeldung. Ich werde leider erst am Wochenende dazu kommen, eine detaillierte Antwort zu schicken. Auf den Registry Eintrag komme ich, weil ich im einem ganz anderen Zusammenhang mit einer Access Datenbank mal eine D wert irgendwo in der Registry hochsetzen mußte, um ab einer bestimmte DB Größe weiterzuarbeiten.

Bis zum Wochenende, Michael

Experte:  IT-Fachinformatiker hat geantwortet vor 2 Jahren.

Hallo

in Ordnung in Ihrem Fall würde ich einmal schauen, wie Sie die Bilder nach Excel holen ich kann mir nicht vorstellen, das es an der Registry liegt es klingt eher nach einer natürlichen Einschränkung testen können Sie es, wenn Sie die Bildgröße deutlich herunter setzen außerdem würde ich vorschlagen das Sie direkt in Excel per VBA die Fotos per Windows-API einfügen (CopyFile, MoveFile) und auf diese Weise einfügen das ist natürlich aufwendiger aber damit ließe sich prüfen ob es ein Problem mit VBA selbst ist.

Wenn Sie die Bilder direkt auslesen lassen und dessen binären Daten in ein Arrary schreiben und von dort weiter verarbeiten kommt es u.U. auch zu diesem Problem. VBA selbst erstellt intern ebenfalls Arrarys und da könnte auch die Ursache liegen wenn nämlich die maximale Größe erreicht ist. Das wäre dann ein Datentyp Problem. Ich freue mich auf Ihr Feedback.

Gruß Günter

Ähnliche Fragen in der Kategorie Computer