Hallo Leute,
ich arbeite gerade an einem Projekt, wobei es darum geht verschiedene Gridviews in eine Excel Datei zu kopieren und zu bearbeiten.
Der ganze Ablauf funktioniert ungefähr so:
- .Net schnappt sich die Gridview, erstellt eine Excel und kopiert die Gridview in diese
- .Net ruft ein Makro auf
- Dieses Makro bearbeitet die Excel, wandelt einige Zeichen um, stellt das ganze zur besseren Einsicht dar und speichert diese Excel dann in 2 unterschiedlichen Versionen.
- .Net ruft ein weiteres Makro auf
- Dieses neue Makro fügt quasi ein Deckblatt ein. Dafür wird die Tabelle ein paar Zeilen nach unten kopiert und die ersten Zeilen werden als Deckblatt genutzt.
- Auf das Deckblatt sollen 2 Images kopiert werden, jedoch läuft .NET hier in eine Endlosschleife und ich bekomme iwann die Fehlermeldung, dass der Vorgang zulange gedauert hat.
Ich vermute stark, dass das Makro ein Problem damit hat, wenn der ASP.NET User die Bilder einzufügen möchte. Denn sobald ich das Makro manuell starte, werden die Bilder eingefügt. Auch läuft das erste Makro korrekt duch, da die beiden Excel Dateien erfolgreich angelegt werden. Die Bilder liegen in einem Verzeichnis, auf das der ASP.NET User vollen Zugriff drauf hat (So wie natürlich auch auf die Bilder)
Kennt vielleicht jemand dieses Problem und kann mir evtl. weiterhelfen?
Schöne Grüße,
Robin
PS: Das hier ist in etwa der Code, der das Bild einfügen soll:
Sub Main(f As String)
Dim Datei As String
Datei = "..."
Workbooks.Open Datei
Dim oPic As Shape
Dim rw As Range
Dim Pfad As String
maxZeilen = ActiveSheet.Cells(Rows.count, 1).End(xlUp).Row
maxSpalten = ActiveSheet.Cells(1, Columns.count).End(xlToLeft).Column
Pfad = "..."
If (Dir(Pfad) = "") Then
Else
Set oPic = ActiveSheet.Shapes.AddPicture(Pfad, False, True, 650, 10, _
100, 105)
oPic.ScaleHeight 1, msoTrue
oPic.ScaleWidth 1, msoTrue
End If
Speichern
End Sub |