tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von tombe
ERLEDIGT
JA
ANTWORTEN
10
ZUGRIFFE
1182
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Tom_Green Tom_Green ist offline Mitglied
    Registriert seit
    Nov 2008
    Beiträge
    20
    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
     

  2. #2
    Avatar von tombe
    tombe tombe ist offline Mitglied Diamant
    tutorials.de Premium-User
    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.

  3. #3
    Tom_Green Tom_Green ist offline Mitglied
    Registriert seit
    Nov 2008
    Beiträge
    20
    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
     

  4. #4
    Avatar von tombe
    tombe tombe ist offline Mitglied Diamant
    tutorials.de Premium-User
    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)
    Tom_Green bedankt sich. 
    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.

  5. #5
    Tom_Green Tom_Green ist offline Mitglied
    Registriert seit
    Nov 2008
    Beiträge
    20
    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.
    Angehängte Dateien Angehängte Dateien
     

  6. #6
    Avatar von tombe
    tombe tombe ist offline Mitglied Diamant
    tutorials.de Premium-User
    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.

  7. #7
    Tom_Green Tom_Green ist offline Mitglied
    Registriert seit
    Nov 2008
    Beiträge
    20
    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"
    Angehängte Dateien Angehängte Dateien
     

  8. #8
    Zvoni Zvoni ist offline Mitglied Platin
    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")

  9. #9
    Tom_Green Tom_Green ist offline Mitglied
    Registriert seit
    Nov 2008
    Beiträge
    20
    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?
     

  10. #10
    Zvoni Zvoni ist offline Mitglied Platin
    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")

  11. #11
    Tom_Green Tom_Green ist offline Mitglied
    Registriert seit
    Nov 2008
    Beiträge
    20
    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

  1. Excel bzw OpenOffice Calc
    Von bergonline im Forum Office-Anwendungen
    Antworten: 6
    Letzter Beitrag: 17.10.08, 21:49
  2. OpenOffice: Formatierungsprobleme
    Von Cherrywine im Forum Office-Anwendungen
    Antworten: 0
    Letzter Beitrag: 13.09.08, 14:28
  3. Excel/OpenOffice Formel gesucht
    Von Ryikos im Forum Office-Anwendungen
    Antworten: 8
    Letzter Beitrag: 01.07.08, 10:18
  4. OpenOffice SDK .. need Help :(
    Von MasterEvil im Forum Java
    Antworten: 1
    Letzter Beitrag: 29.05.06, 12:33
  5. Hab ein kleines Problem mit Excel bzw. Openoffice Calc
    Von Kyrodust im Forum Office-Anwendungen
    Antworten: 0
    Letzter Beitrag: 22.04.06, 02:15

Stichworte