Exceldatei archivieren

Dieses Thema Exceldatei archivieren im Forum "Microsoft Office Suite" wurde erstellt von ahallmann, 10. Okt. 2005.

Thema: Exceldatei archivieren Hallo, vorab: Ich finde wintotal super hilfreich! :) Aktuell habe ich das Problem, dass ich Excel-Tabellen...

  1. Hallo,

    vorab: Ich finde wintotal super hilfreich! :)

    Aktuell habe ich das Problem, dass ich Excel-Tabellen archivieren muss. Das Archivieren an sich ist kein Problem, aber wenn die archivierte Exceldatei aus der Archiv-Software wieder herauskommt, sind die meisten Verweise weg.

    Das heißt, vor dem Archivieren müssten alle Verweise (in Formel, Hyperlinks, verknüfte Dateien, Formeln mit der Funktion =Hyperlink()) gelöst und/oder eventuell diese Dateien mitarchiviert werden. Funktionen wie heute() dürfen beim Öffnen nicht aktualisiert werden.

    Der folgende Beitrag hat mir schon sehr geholfen:
    http://www.wintotal-forum.de/? [...] 1698;start=msg296471#msg296471
    aber es werden unter Office 2003 keine Formeleinträge gefunden die mit =Hyperlink beginnen.

    Und ich bin mit nicht sicher, ob es nicht noch Automatismen in Excel gibt, die auf diese Weise nicht erfasst werden. In Word war die Lösung dieses Problems ganz einfach:

    If ActiveDocument.ProtectionType = wdNoProtection Then
    ActiveDocument.Fields.Locked = True
    End If

    Wer hat mit der Archvierung von Exceldateien Erfahrung und kann mir hier weiterhelfen?
     
  2. Hallo,

    mir war folgendes eine große Hilfe:


    Ciao

    Fibo
     
  3. Vielen Dank für die schnelle Antwort ;D
    Das Makro kann ich so ändern, dass auch die Funktion =Hyperlink in den Formeln gesucht wird und mit dem Inhalt dann wie auch immer verfahren.

    Allerdings bleibt bei mir immer noch das ungute Gefühl mit einem Makro, dass die Verweise anspricht, nicht alle Eventualitäten an Automatismen abzufangen. So z.B. die Frage, gibt es neben heute() noch andere Funktionen die automatisch aktualisieren.

    Bezüglich Archivierung habe ich auch schon darüber nachgedacht, die Exceldatei in einem anderen Format zu speichern. Zum Beispiel als Tiff zu drucken und dann zu Archivieren, dabei gehen allerdings zu viele Informationen verloren. Also muss die Antwort wohl doch lauten: So weit möglich einfrieren und alle relevanten Dateien mitnehmen... ???
     
  4. Hallo,

    im Rahmen der Archivierung verfahre ich persönlich ausnahmslos so. Ich setze alle Daten auf absolute Werte und brenne die Laufwerke komplett auf DVD. Bisher hatte ich hier noch keine großen Schwierigkeiten, da die die Formelstruktur sich weitestgehend aus der Formularstruktur ergibt. Darüberhinaus habe ich festgestellt, dass zur Archivierung (ca alle 1/2 Jahre) die Formeln meist nicht mehr Notwendig sind. Sollte dies doch der Fall sein empfehle ich jeweils ein Musterdokument.


    Ciao


    Fibo
     
  5. Hallo,

    also wandle ich Bezüge um und setze Datumsangaben als absoluten Wert. Benötigte Dateien für die Funktion (Hyperlink) werden mit archiviert. Damit der Stand x auch wieder hergestellt werden kann, denn bei der elektronischen Archivierung steigt mir sonst noch ein Wirtschaftsprüfer aufs Dach, wenn die Daten nicht zum Stichtag nachgehalten werden können (Stichwort Dokumentenechtheit).

    Was ich an Deiner Antwort nicht verstanden habe, ist der Hinweis auf das Musterdokument?

    Gruß ahallmann
     
  6. Hallo,

    ich glaube das liegt im wesentlichen an den Aufgaben. Sofern ich Dokumente verknüpfe ist dies oft nur für komplexe, einmalige Sachverhalte. Nachdem das Projekt abgeschlossen ist, hebe ich die Verknüpfungen aller Mitarbeiter und übergeordneter Dokumente auf und sichere immer nur je ein Musterdokument mit den Verknüpfungen bzw. mit der originalen Formelstruktur anhand eines fiktiven Mitarbeiters.

    Ciao


    Fibo
     
  7. Hallo,

    leider hat es jetzt etwas gedauert bis ich mich wieder melden konnte. Noch mal vielen Dank für die Hinweise. Da ich nicht so viel Erfahrung mit Excel habe, hat mir der Code hier um einiges weitergeholfen. Die folgenden Makros werde ich jetzt in einem VB Programm zusammenfassen, um Exceldateien zu archivieren und möglichst unverändert wieder aufzurufen. Sollte jemandem noch Funktionen von Excel einfallen, die eventuell eine automatische Aktualisierung oder Verweise auf andere Dateien enthalten, dann bin ich immer für Hinweise dankbar.

    Liebe Grüsse
    Asgard (ahallmann)

    'Hier die Makros, falls es jemanden interessiert:
    Option Explicit

    'Für diese Verweise habe ich keine Möglichkeit ausmachen können, sie zu deaktivieren und trotzdem
    'im Sheet stehen zu lassen ohne sie vollständig zu verfremden.
    Sub Hyperlink_markieren()
     
      Dim str_var As String
      Dim hypLink   As Hyperlink
      Dim zaehler   As Long
      Dim rngLinks  As Range

      zaehler = 1
      For Each hypLink In ActiveSheet.Hyperlinks
        If zaehler = 1 Then
          Set rngLinks = hypLink.Range
         ->hypLink.Delete
          zaehler = 0
        Else
          Set rngLinks = Application.Union(rngLinks, hypLink.Range)
        End If
      Next hypLink

      If Not rngLinks Is Nothing Then
        rngLinks.Select
       ->können nur markiert oder gelöscht werden, da sie sonst immer interpretiert werden
       ->rngLinks.Delete
       
      End If
      Set rngLinks = Nothing


    End Sub

    'Ole und Excel Links aufheben
    'LinkSources im aktuellen Workbook aufheben
    Sub LinkSources_Umwandlen()

      Dim Link_array As Variant
      Dim zaehler As Integer
      Dim Anzahl As Integer
      Dim test As String
      Dim sheet_select As Variant
      Dim Found_Link As Variant
         
      zaehler = 0
      Anzahl = 0
     
      Link_array = ActiveWorkbook.LinkSources(xlExcelLinks)
      If Not IsEmpty(Link_array) Then
        Anzahl = UBound(Link_array)
        For zaehler = 1 To Anzahl
           ActiveWorkbook.BreakLink _
            Name:=Link_array(zaehler), _
            Type:=xlLinkTypeExcelLinks
        Next zaehler
      End If

      Link_array = ActiveWorkbook.LinkSources(xlOLELinks)
      If Not IsEmpty(Link_array) Then
        Anzahl = UBound(Link_array)
        For zaehler = 1 To Anzahl
           ActiveWorkbook.BreakLink _
            Name:=Link_array(zaehler), _
            Type:=xlLinkTypeOLELinks
        Next zaehler
      End If
     
    End Sub


    'Sucht und findet Cells mit =Hyperlink, Ergänzungstext müsste nicht sein
    Sub ExternemVerweisErsetzen()

      Dim ws As Worksheet, b_Ersetzen As Boolean

     ->für alle Arbeitsblätter der aktiven Mappe
      For Each ws In ActiveWorkbook.Worksheets
         
        ws.Activate
       
        If VERWEISE_aufheben = True Then
         ->Zelle mit Verweisen kopieren
          Selection.Copy
         ->Inhalte einfügen -> Werte
          Selection.PasteSpecial _
                    Paste:=xlPasteValues, _
                    Operation:=xlNone, _
                    SkipBlanks:=False, _
                    Transpose:=False
          Application.CutCopyMode = False
        End If
      Next

    AUFRAEUMEN:
      Set ws = Nothing
    End Sub


    Private Function VERWEISE_aufheben() As Boolean
       
        VERWEISE_aufheben = False
        If HYPERTEXT_aufheben = True Then VERWEISE_aufheben = True
        If HEUTE_aufheben = True Then VERWEISE_aufheben = True
       
    End Function


    'also das mit den Farben ist hauptsächlich Spielerei, ein bisschen Spass muss ja auch sein...
    Private Function HYPERTEXT_aufheben() As Boolean
       'alle Formeln des Blattes werden markiert,
       'die eine externen Verweis einhalten
    '**********************************************************
    Dim str_var As String
    Dim rngLinks As Range, Zelle As Range
    Dim l_cnt As Long
    Dim inhalt As String
    Dim pos1, pos2, pos3 As Long
    'Formeln mit HYPERLINK suchen
    l_cnt = 0->Zaehler initialisieren
    For Each Zelle In ActiveSheet.UsedRange
       If Left(Zelle.Formula, 1) = = Then
            pos1 = InStr(1, Zelle.Formula, HYPERLINK)
            If (pos1 > 0) Then
           ->gesamte Formelzeile as Value speichern, wandelt
           ->auch in der Tabelle den Text von Text- zur Linkdarstellung
                Zelle.Value = Zelle.Formula
                pos2 = InStr(1, Zelle.Formula, ,)
                str_var = Mid(Zelle.Formula, pos1 + 11, pos2 - pos1 - 12)
                Zelle.Value = Zelle.Value + VERWEIS AUFGEHOBEN:-> + str_var +->
               ->Zelle als Selektion setzen
                l_cnt = l_cnt + 1
                If l_cnt = 1 Then
                    Set rngLinks = Zelle.Cells
                Else
                    Set rngLinks = Application.Union(rngLinks, Zelle.Cells)
                End If
             End If
       End If
    Next
    'gefundene Zellen umformatieren und markieren
    If l_cnt > 0 Then
        rngLinks.Select
        rngLinks.Interior.ColorIndex = 35
        rngLinks.Font.ColorIndex = 46
       
       Set rngLinks = Nothing
       HYPERTEXT_aufheben = True
    Else
       HYPERTEXT_aufheben = False
    End If
    End Function

    Private Function HEUTE_aufheben() As Boolean
       'alle Formeln des Blattes werden markiert,
       'die eine externen Verweis einhalten
    '**********************************************************
    Dim str_var As String
    Dim rngLinks As Range, Zelle As Range
    Dim l_cnt As Long
    Dim inhalt As String
    Dim pos1, pos2, pos3 As Long
    'Formeln mit HYPERLINK suchen
    l_cnt = 0->Zaehler initialisieren
    For Each Zelle In ActiveSheet.UsedRange
       If Left(Zelle.Formula, 1) = = Then
            pos1 = InStr(1, Zelle.Formula, TODAY())
            If (pos1 > 0) Then
               ->Zelle als Selektion setzen
                l_cnt = l_cnt + 1
                If l_cnt = 1 Then
                    Set rngLinks = Zelle.Cells
                Else
                    Set rngLinks = Application.Union(rngLinks, Zelle.Cells)
                End If
             End If
       End If
    Next

    For Each Zelle In ActiveSheet.UsedRange
       If Left(Zelle.Formula, 1) = = Then
            pos1 = InStr(1, Zelle.Formula, NOW())
            If (pos1 > 0) Then
               ->Zelle als Selektion setzen
                l_cnt = l_cnt + 1
                If l_cnt = 1 Then
                    Set rngLinks = Zelle.Cells
                Else
                    Set rngLinks = Application.Union(rngLinks, Zelle.Cells)
                End If
             End If
       End If
    Next


    'gefundene Zellen umformatieren und markieren
    If l_cnt > 0 Then
        rngLinks.Select
        rngLinks.Interior.ColorIndex = 35
        rngLinks.Font.ColorIndex = 46
       
       Set rngLinks = Nothing
       HEUTE_aufheben = True
    Else
       HEUTE_aufheben = False
    End If
    End Function
     
Die Seite wird geladen...

Exceldatei archivieren - Ähnliche Themen

Forum Datum
Kontakte per Exceldatei importieren Windows XP Forum 11. Juli 2012
Probleme beim Abspeichern von Exceldateien Windows XP Forum 22. Aug. 2008
Öffnen einer Passwortgeschützten Exceldatei mittels Makro Windows XP Forum 25. Juli 2008
Größenbegrenzung bei Exceldateien Microsoft Office Suite 3. Sep. 2007
Serienbrief aus Exceldatei Windows XP Forum 18. März 2007