1Danke
ERLEDIGT
JA
JA
ANTWORTEN
10
10
ZUGRIFFE
1182
1182
EMPFEHLEN
-
Hallo liebe Computer Genies
Ich habe mal ne kleine Frage.
Ich arbeite in einer Buchhaltung und muss die Jahresrechnung unserer Firma automatisieren. Bisher habe ich die Exports unseres Buchhaltungsprogramm(xlx Exports) im Excel verarbeitet und anschliessen mit worksheet objects ins Word eingebunden.
Nun habe ich das Problem, dass 1. das ganze sehr statisch ist (sobald dass ich das Word doc verschiebe verliert es sämtliche links zum Excel sheet)
und 2. dass die Ladezeit des Word Documents ca. 2h dauert wenn das Excel sheet nicht vorher geöffnet ist.
Zu bemerken ist, dass ich ca. 15 Worksheet objects im Word habe und dass dieses Word doc einem Übersetzer geschickt wird der dieses von D auf E übersetzt. (Dieser hatte nicht so freude als er 2h warten musste
, denn das Excel konnte ich nicht mitsenden weil die Pfade sowieso nicht gestummen hätten)
Nun bin ich auf der suche nach etwas einfacherem, aber hatte bis jetzt noch keinen Erfolg.
Hättet ihr mir eine Alternative zu word und excel (hier ist zu bemerken der Übersezter muss das File dann auch öffnen und bearbeiten können), oder ist es irgendwie möglich die links dynamisch zu mache und die Ladezeit zu verkürtzen?
Besten Dank für eure schnelle Antwort
cheers
-
30.11.11 18:22 #2
- Registriert seit
- Sep 2004
- Ort
- Möglingen (BaWü)
- Beiträge
- 3.109
Wenn du die Dateien auch noch anderen Personen zur Verfügung stellen musst, dann wäre eventuell Google Text & Tabellen was für dich!?
Wobei ich mir jetzt die Frage stelle wie deine Excel und Word Dokumente aufgebaut sind wenn es 2 Stunden dauert bis sie geöffnet sind.
Vielleicht würde es mehr Sinn machen den Aufbau, die Formeln und Funktionen zu prüfen die du da im Einsatz hast.Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.
Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.
-
Danke für die Alternative, werde mich einmal mit dieser auseinandersetzen.
Also 1. Die beiden Files sind auf eine Server abgespeicher.
2. im Excel verwende ich etwa in 500 Zellen die =SumIF() Funktion und ausschliesslich diese
3. Diese Funktionen sind auf einige Sheets verteilt, und je Sheet kommt die Sumif Funktion bis maximal 40 mal vor.
4.Word und Excel file haben keine Macros und kein vb Code
5. Alle Sheets vom Excel sind in einem einzigen Word doc mit Worksheet objects verlinkt
Soweit einmal die Details
Ich habe mir überlegt, wie sich das ganze verhalten würde, wenn ich die Worksheet object per VB im Word einbinden würde und dann ein "UPDATE" Makro schreiben würde, welches nur zum gewünschten Zeitpunkt alle Excelsheets im Word update würde. Dann käme aber gleich meine nächste Frage, wie binde ich ein Worksheet object über VB in Word ein?
Danke
-
01.12.11 14:24 #4
- Registriert seit
- Sep 2004
- Ort
- Möglingen (BaWü)
- Beiträge
- 3.109
Kannst du uns nicht mal die Excel Datei (vorzugweise im Excel 2000 Format) zur Verfügung stellen. Du kannst ja die echten Zahlen durch irgendwelche Fantasieangaben ersetzen wenn das ein Problem ist.
Von dem was du so geschrieben hast, kann es dann ja wohl nur an der SumIf-Funktion liegen. Vielleicht kann man ja den Aufbau der Datei/der Tabellen irgendwie anders gestalten!? Aber dazu müsste man die Datei sehen.
NACHTRAG: Wenn gar nichts hilft, könntest du eventuell die automatische Berechnung abschalten. Das bringt zumindest dann was wenn in die Blätter noch verschiedene Daten eingegeben werden. Denn dann wird nicht nach jeder Eingabe alles berechnet, sondern erst wenn man damit fertig ist und auf "F9" drückt.Geändert von tombe (01.12.11 um 14:31 Uhr)
Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.
Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.
-
Sorry dass das Ganze so lange gedauert hat, aber ich bin noch intensiv mit meinem Studium beschäftigt.
Also ich habe das Excel so abgeändert, dass ich es hochladen kann. Siehe Anhang.
PS: Google docs ist hammer. Also natürlich begrenzt, aber ich arbeite mit einem Kollegen gerade an einer Semesterarbeit und das geht voll super. Die Googles sollten das ganze nur noch etwas ausbauen, d.h. es sollte möglich sein wie in Word auf Google Docs zu Arbeiten und Formatieren. Es ist noch verbesserungswürdig. Jedoch für rein Text auszutauschen und live zu mit jemandem abzuändern ist es hammer.
-
15.12.11 16:36 #6
- Registriert seit
- Sep 2004
- Ort
- Möglingen (BaWü)
- Beiträge
- 3.109
Habe oben ja geschrieben das ich maximal Excel 2000 öffnen/bearbeiten kann. Die Datei die du hier eingestellt hast ist aber neueren Datums.
Kannst du sie in diesem Format speichern und obigen Anhang damit ersetzen. Dann schaue ich gerne mal drauf.Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.
Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.
-
dumm von mir sorry
also anbei das xls workbook. jetzt funktioniert eifach das macro für den Dateien import nicht mehr. Weiter zu bemerken ist, dass ich ein Worksheet "Import Anlagespiel" deleten musste, da ich diesen nicht veröffentlichen darf. also alle Funktionen bei denen #REF kommt, wäre für #REF "import Anlagespiegel"
-
20.01.12 09:58 #8
- Registriert seit
- Jul 2008
- Ort
- Hinter dem Mond gleich links
- Beiträge
- 735
Ich tippe mal eher darauf, dass er sich in Word mit den Worksheet-Objekten LateBinding einhandelt, und das ist dann ungefähr so, als ob man auf der Autobahn bei Tempo 100 nen Anker hinten raus wirft....
An der SumIF liegt es glaube ich nicht, wenn diese wirklich nur ca. 500 mal vorkommt.
Ich habe Kalkulationstabellen mit 2000 Zeilen mit 30-40 Spalten, wo bis auf 10 Spalten fast überall nur Formeln drin stehen, und die rennt wie doof.
Das Problem liegt also eher in Word als in Excel, und schon gar nicht mit Office versus OpenOffice oder sowas.
Das einizge was mir noch als Alternative einfällt, wäre anstatt Object-Binding vielleicht DDE zu nehmen, aber DDE ist ja angeblich eine veraltete Technologie.
Ums genau zu beurteilen zu können, müsste ich zum Excel-File auch das Word-File sehen.Zwei Dinge sind unendlich: Die menschliche Dummheit und das Universum, nur bei letzterem bin ich mir noch nicht sicher. - Albert Einstein
Code vb:1
If Beitrag.Hilfreich=True Then Bewertung.Send("Positiv")
-
okee, also dann mal meine Fragen.
1. Wie kann ich solche Late Bindings verhindern?
2. Wie würde ich das machen mit DDE?
3. ist es möglich die objects embeded zu machen und über ein Makro zu aktualisieren?
-
25.01.12 16:11 #10
- Registriert seit
- Jul 2008
- Ort
- Hinter dem Mond gleich links
- Beiträge
- 735
Gegenfrage: Du schreibst oben, dass das Word-File 15 Worksheet-Objects hat, du aber das entsprechende Excel-File nicht mitschicken kannst, weil die Pfade dann nicht stimmen würden.
Brauchst du eigentlich diese SumIF-Funktionen auch im Word-File, oder nur das Ergebnis der Funktion?
Weil wenn du nur das Ergebnis brauchst, dann kannst du nämlich Pro Excel-Tabellenblatt ein CSV erstellen, und diese dann mitschicken. Am besten in einer Zip-Datei mit gespeicherten Pfaden.
Dann ist es relativ einfach per Makro, diese CSV's auszulesen und in die Word-Datei zu hauen.
Aber wie gesagt, dazu müsste ich auch mal das Wordfile sehen.Zwei Dinge sind unendlich: Die menschliche Dummheit und das Universum, nur bei letzterem bin ich mir noch nicht sicher. - Albert Einstein
Code vb:1
If Beitrag.Hilfreich=True Then Bewertung.Send("Positiv")
-
hey jungs danke viel mals für eure Unterstützung. Ich war nochmals ein bisschen tüchtig und war auf der Suche nach einem Macro für Word, welches mir bei Bookmarks die gewünschte Excel Tabelle, oder besser gesagt ein Teil eines Sheets einfühgt und ich wurde fündig.
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148
Sub aUpdateWorddoc() ''============================================================================== ''Purpose: To refresh the current table in a Word document with new data from '' the corresponding range in an Excel document. ''The code uses bookmarks in the Word document and corresponding named ranges in '' Excel. The Excel data is brought in as pictures. This has the advantage that any '' formatting in the Excel document is retained, and the dimensions don't change '' significantly. '' Also, bookmarks are simpler to create and maintain because a picture is only a '' single character in a Word document. ''Requires: A table in the Excel file to line up the bookmarks and named ranges ''Created: 23 Oct 2008 by Denis Wright ''============================================================================== Dim objExcel As Object, _ objWbk As Object, _ objDoc As Document Dim sBookmark As String, _ sWbkName As String Dim sRange As String, _ sSheet As String Dim BMRange As Range Dim bmk As Bookmark Dim i As Integer, _ j As Integer, _ k As Integer, _ bmkCount As Integer Dim vNames() Dim vBookmarks() Dim dlgOpen As FileDialog Dim bnExcel As Boolean On Error GoTo Err_Handle Set dlgOpen = Application.FileDialog( _ FileDialogType:=msoFileDialogOpen) bnExcel = False Do Until bnExcel = True With dlgOpen .AllowMultiSelect = True .Show If .SelectedItems.Count > 0 Then sWbkName = .SelectedItems(1) Else MsgBox "Please select a workbook to use for processing" End If End With If InStr(1, sWbkName, ".xls") > 0 Then 'proceed bnExcel = True Else MsgBox "The file must be a valid Excel file. Try again please..." End If Loop Set objDoc = ActiveDocument 'check to see that the Excel file is open. If not, open the file 'also grab the wbk name to enable switching Set objExcel = GetObject(, "Excel.Application") For i = 1 To objExcel.Workbooks.Count If objExcel.Workbooks(i).Name = sWbkName Then Set objWbk = objExcel.Workbooks(i) Exit For End If Next If objWbk Is Nothing Then Set objWbk = objExcel.Workbooks.Open(sWbkName) End If 'minimize the Excel window objExcel.WindowState = -4140 'minimized 'switch to Excel, find range name that corresponds to the bookmark objExcel.Visible = False objWbk.Activate vNames = objWbk.Worksheets("Lists").Range("Bookmarks").Value 'loop through the bookmarks bmkCount = ActiveDocument.Bookmarks.Count ReDim vBookmarks(bmkCount - 1) j = LBound(vBookmarks) For Each bmk In ActiveDocument.Bookmarks vBookmarks(j) = bmk.Name j = j + 1 Next bmk For j = LBound(vBookmarks) To UBound(vBookmarks) 'go to the bookmark Selection.GoTo What:=wdGoToBookmark, Name:=vBookmarks(j) Set BMRange = ActiveDocument.Bookmarks(vBookmarks(j)).Range For k = 1 To UBound(vNames) If vNames(k, 1) = vBookmarks(j) Then sSheet = vNames(k, 2) sRange = vNames(k, 3) Exit For End If Next k 'copy data from the range as a picture objWbk.Worksheets(sSheet).Range(sRange).CopyPicture 1, -4147 'return to Word and paste objDoc.Activate BMRange.Select Selection.Delete 'Note: only required if the bookmark encloses a picture. 'If the bmk held text, deleting the selection removes the bmk too. 'Under those circumstances the code throws an error. 'Clunky workaround: tell Word to ignore the error On Error Resume Next ActiveDocument.Bookmarks(sBookmark).Delete On Error GoTo 0 'paste the picture, then move back one character so the new bookmark 'encloses the pasted picture Selection.PasteAndFormat (wdPasteDefault) Selection.Move Unit:=wdCharacter, Count:=-1 'now reinstate the bookmark objDoc.Bookmarks.Add Name:=vBookmarks(j), Range:=Selection.Range Next j Err_Exit: 'clean up Set BMRange = Nothing Set objWbk = Nothing objExcel.Visible = True Set objExcel = Nothing Set objDoc = Nothing MsgBox "The document has been updated" Err_Handle: If Err.Number = 429 Then 'excel not running; launch Excel Set objExcel = CreateObject("Excel.Application") Resume Next ElseIf Err.Number <> 0 Then MsgBox "Error " & Err.Number & ": " & Err.Description Resume Err_Exit End If End Sub
Dieses Macro updated mir das Wordfile wie gewünscht. D. h. es setzt mir die Teilsheets als Picture in das Word doc ein. Somit habe ich eine wesentlich kürzere Ladezeit des Files und ich bin flexiebel mit der Location der Files.
Danke nochmals und vielleicht bis ein anderes mal.
Ähnliche Themen
-
Excel bzw OpenOffice Calc
Von bergonline im Forum Office-AnwendungenAntworten: 6Letzter Beitrag: 17.10.08, 21:49 -
OpenOffice: Formatierungsprobleme
Von Cherrywine im Forum Office-AnwendungenAntworten: 0Letzter Beitrag: 13.09.08, 14:28 -
Excel/OpenOffice Formel gesucht
Von Ryikos im Forum Office-AnwendungenAntworten: 8Letzter Beitrag: 01.07.08, 10:18 -
OpenOffice SDK .. need Help :(
Von MasterEvil im Forum JavaAntworten: 1Letzter Beitrag: 29.05.06, 12:33 -
Hab ein kleines Problem mit Excel bzw. Openoffice Calc
Von Kyrodust im Forum Office-AnwendungenAntworten: 0Letzter Beitrag: 22.04.06, 02:15





Zitieren

Login





