Office: (Office 2010) VBA makro Umwandlung von XLS zu XLSX

Helfe beim Thema VBA makro Umwandlung von XLS zu XLSX in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Nach dem Update aus Office 2010 von Office 2003 wünscht ein Kunde die gesamte Konvertierung seiner Excel-Dateien aus dem Format Excel 2003 (XLS) in das... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von User, 30. Januar 2011.

  1. VBA makro Umwandlung von XLS zu XLSX


    Nach dem Update aus Office 2010 von Office 2003 wünscht ein Kunde die gesamte Konvertierung seiner Excel-Dateien aus dem Format Excel 2003 (XLS) in das neue 2010 Format (XLSX). Dies lässt sich ihm leider noch nicht ausreden.

    Bei den Überlegungen entstanden bereits wichtige Punkte auf die geachtet werden müssen:

    - Hyperlinks von einer Datei in eine andere dürfen nicht zerstört werden, auch auf XLSX anpassen
    - Verknüpfungen in Zellen anderer Dateien muss gewährleistet bleiben
    - Passwortgeschützte Dateien müssen auch behandelt oder zumindest vermieden und vermerkt werden

    Ich habe bereits ein Makro programmiert das diese Schritte durchführt nur machen mir passwortgeschützte Dateien arghe Kopfzerbrechen da das Makro spätestens nach der zweiten Passwortabfrage abstürzt.
    Da das Makro sehr Umfangreich ist und hier kaum zur Lösung beitragen wird kurze Info:

    Ich benutze bereits On Error Goto Anweisungen und übergebe bereits ein Standardpasswort (irgendeins damit die meldung automatisch ausgefüllt wird)
    Ich möchte nur das die Dateien ignoriert werden und das Makro weiterläuft.

    :)
     
  2. Hallo depetsys,

    die aktivierte Fehlerbehandlung mit On-Error-Anweisung hast Du qualifiziert beendet? Oder lässt Du das Makro mit einem unbehandelten Fehler munter weiterrennen? Dann ist es klar, dass beim zweiten Mal das Makro aussteigt.

    Wer hier Hilfe erwartet, darf ruhig auch etwas von seinem Wissen preisgeben (das tun wir ja schließlich auch). Der Code könnte für einige hier schon interessant sein. Also: Geben und Nehmen?

    Grüße
    EarlFred
     
    EarlFred, 31. Januar 2011
    #2
  3. Soeben hat sich eine Lösung auf dieses Problem gefunden:

    Das öffnen der Datei muss in eine Sub, danke trotzdem für die Aufmerksamkeit *wink.gif*

    Sub Test()
    Const Path = "Z:\"
    Dim FName As String
    Dim WB As Workbook
    FName = Dir(Path & "*.xls")
    Do
    Set WB = OpenWB(Path & FName)
    If Not WB Is Nothing Then
    WB.Close
    End If
    FName = Dir
    Loop Until FName = ""
    End Sub

    Function OpenWB(FName As String) As Workbook
    On Error Resume Next
    Set OpenWB = Workbooks.Open(FName, False, False, Password:="")
    End Function
     
  4. VBA makro Umwandlung von XLS zu XLSX

    Hallo zusammen,

    das Makro macht wiedermal Probleme, nachdem das Projekt lange brach lag hat ein kürzlicher Testlauf folgendes Problem aufgebracht:

    Es gibt in vielen Dateien Formeln die auf andere Dateien verlinken.
    Diese Links sollen, da sie bisher auf "xls" Zeigen nun auf "xlsm" umgebogen werden.

    Vorweg: dieser Lösung funktioniert bestens, solange manuell die Meldungen "weggedrückt werden" um welche Meldungen es sich handelt folgt nun.

    Existiert die Datei nicht (da zum Beispiel der Konverter noch nicht bei der verlinkten Datei angelangt ist), wird dank des "DisplayAlerts = False" die Meldung ignoriert und es geht weiter.

    Existiert die Datei aber das Worksheet existiert nichtmehr bekomme ich ein Fenster "Blatt wählen":

    VBA makro Umwandlung von XLS zu XLSX [​IMG]


    Wird dieses mit Abbrechen "bestätigt" läuft das Makro weiter, bei über 6000 Dateien eine zumutung *Smilie

    Diese Meldung "poppt" genau in dem moment auf, wenn die Suchen & Ersetzen Funktion das ".rxls" ersetzt.

    Wenn jemand Tipps hat bitte her damit!

    Folgend ein erweiterter Codeauszug:
    Code:
     
  5. Hallo,

    ich würd stattdessen die LinkSources mit ChangeLink aktualisieren. Neben Formeln können sich Verlinkungen ja z. B. auch in Namen verbergen. Der Beispielcode in der OH sollte genug Anhaltspunkte geben.

    Dann öffne doch erstmal alle Dateien und prüfe die Verlinkungen, bevor Du durch die Neuverlinkung und Konvertierung vollständiges Chaos anrichtest...

    Mit DisplayAlerts = False jede Rückmeldung totzuschlagen ist halt nicht immer klug. Das gilt es, mit Bedacht einzusetzen und nicht als "Generalklausel".

    Grüße
    EarlFred
     
    EarlFred, 9. September 2011
    #5
  6. Hey Danke für den schnellen Rat!

    LinkSources und ChangeLink war mir gänzlich unbekannt, ein schneller Test ergab allerdings, dass ich anhand dieser Funktionen sehr viel effektiver arbeiten und protokollieren kann. Danke!

    Ich verstehe das DisplayAlerts = False keine Generallösung ist. In diesem Fall halte ich es jedoch für sinnvoll, da alle verlinkten Dateien in einem Verzeichnis (und Unterverzeichnis) liegen und dieses Makro durch alle Dateien wandert.
    Ergo, am Ende sind alle Dateien .xlsm Dateien.

    Das Problem mit der Verlinkung besteht leider eher darin, dass die explizit verlinkten "Blätter" gar nicht (bzw. nicht mehr) vorhanden sind (schon vor der Umwandlung). Ich möchte diese Meldung nicht mit DisplayAlerts=False ignorieren, eher in einem Vorlauf prüfen ob die Verlinkung in "fehlende" Worksheets besteht oder nicht und dies protokollieren, damit der Kunde diese Fehler bereinigen kann.

    Leider funktioniert selbst DisplayAlerts=False nicht um diese Warnung auszumerzen.
    Code:
    Allen erstmal ein schönes Wochenende!!
    >dpetsys
     
  7. Hallo dpetsys,

    ich meine das auch anders: Prüfe zuerst die Mappen auf ungültige Verlinkungen. Beziehen sie diese auf nichtmehr vorhandene Blätter, müssen die Tabellen eh angepasst werden oder sind nutzlos und können in den Müll.

    Wenn das bereinigt ist, konvertiere.

    Grüße
    EarlFred
     
    EarlFred, 9. September 2011
    #7
  8. VBA makro Umwandlung von XLS zu XLSX

    Hallo Earl,

    zurück aus dem Wochenende und aus dem Krank sein.....

    Leider steht dies nicht zur Option *frown.gif*, liefert mir LinkSources bzw. eine andere Funktion den, die Möglichkeit dies zu prüfen? (Auch auf gültige Arbeitsblätter?)

    Meinem Kunden ist bewusst, dass er fehlerhafte Verknüpfungen hat, diese sind ihm jedoch "teils" egal, bzw. werden diese verknüpfungen einfach nicht mehr verwendet. Ob dies in Absprache repariert werden kann wenn ich eine ausreichende Dokumentation vorliege sei erstmal dahin gestellt.


    Mit freundlichem Gruße
    dpetsys!
     
  9. Hallo Liebes Forum,

    die Umwandlung ist durchgeführt, der Kunde ist "glücklich" *biggrin.gif*
    Also ich ziehe daraus folgendes Fazit:

    Dank LinkSources, LinkState, ChangeLink , sehr vielen On Error Anweisungen, viel Dokumentation (dateien öffnen / schliessen / speichern / verlinkungen etc) und viel Geduld hat die Umwandlung hervorragend funktioniert.

    Mein vorgehen in Einzelschritten:
    • Lese alle Dateien inkl. Unterverzeichnisse aus / Hierzu wurde eine Rekursive Funktion erstellt in der mittels "Dir" die Ordner ausgelesen werden
    • Laufe durch alle Dateien in der Dateiliste und erkenne den aktuellen Datentyp anhand der Dateiendung, prüfe ob bereits eine XLSM-Datei besteht und handle dementsprechend.
    • Ist alles OK dann wird die Datei geöffnet und mittels Hyperlinks und LinkSources ermittelt ob und wieviele Links in andere Dateien in den Sheets vorliegen.
    • Schlussendlich wird die Datei geöffnet und als XLSM Datei wieder abgespeichert.
    • Nur wenn während des gesamten Prozesses keine Fehler auftauchen wird die Datei ".xls" gelöscht!
    • Es wird alles dokumentiert, wann wo welche Datei geöffnet wurde, ob Fehler dabei auftauchten usw.
    • Nun lesen wir den Ordner erneut aus und gehen parallel durch die Dokumentation um zu prüfen ob die Datei schon Probleme gemacht UND ob es überhaupt Links gibt die ersetzt werden müssen.
    • Sollte dies der Fall sein, öffne die Datei erneut und ersetze mittels ChangeLink und Hyperlinks.Address die Verlinkungen.
    • Jeder Linkpfad wird vor der Umwandlung geprüft und dokumentiert.
    • Die Linkendungen werden auf XMLS geändert, außerdem musste der korrekte Pfad angepasst werden. (H:/Umwandlung/Excel -> H:/Daten/Excel/), damit diese nicht fälschlicherweise auf das Umwandlungsverzeichnis zeigen.
    • Dies hat den Vorteil das ein Großteil der xlsm Dateien im Ursprungsverzeichnis natürlich nicht existieren und somit auch mein Problem der Fehlermeldung bei der Nutzung von ChangeLink auf Arbeitsblätter die nicht mehr existieren lösen. Es war keine manuelle Eingabe bei der Änderung der Links mehr nötig!
    • Auch hier wurde extra darauf geachtet so viel wie möglich zu dokumentieren, gab es Fehler, konnte etwas nicht ersetzt werden etc.

    Zum Schluss bekam der Kunde eine Einführung was sich geändert hat (alle Links müssen beim öffnen min. 1 mal manuell aktualisiert werden). Dies ist etwas Mühselig wenn viele Dateien verstrickt verknüpft wurden aber machbar.

    Die Dokumentation der Fehlerhaften Dateien und Verlinkungen bekam der Kunde ausgehändigt um seinen Datenbestand zu säubern.


    Vielen Dank an EarlFred für die Hilfe! Und ich hoffe das ich anderen mit dem selben Problem eine kleine Hilfe sein konnte!

    Mit freundlichem Gruß ins Wochenende
    Dpetsys!
     
Thema:

VBA makro Umwandlung von XLS zu XLSX

Die Seite wird geladen...
  1. VBA makro Umwandlung von XLS zu XLSX - Similar Threads - VBA makro Umwandlung

  2. Speichern mit dem Titel der Zelle A2

    in Microsoft Excel Hilfe
    Speichern mit dem Titel der Zelle A2: Moin moin, Ich habe per Makro einen Arbeitsablauf aufgezeichnet der soweit auch funktioniert. Dieser Endet jedoch im "Speichern Unter" Fenster, welches durch das Klicken von "Drucken als PDF"...
  3. Datentabelle per VBA Makro durch Kopieren und Einfügen einer Kopfzeile aufteilen

    in Microsoft Excel Hilfe
    Datentabelle per VBA Makro durch Kopieren und Einfügen einer Kopfzeile aufteilen: Hallo Zusammen, mein erster Beitrag hier, also schon mal Sorry im Voraus, wenn unvollständig beschrieben *:)* Ich habe das Forum schon nach einem brauchbaren Lösungsansatz durchsucht, bin aber...
  4. Makro/VBA Text in Zahl umwandeln

    in Microsoft Excel Hilfe
    Makro/VBA Text in Zahl umwandeln: Hallo liebes Forum, ich habe eine Frage und bin bisher leider nicht so wirklich fündig geworden :oops: Aber ich bin mir sicher, dass ich hier Hilfe bekomme *;)* In meiner Arbeitsdatei sind...
  5. VBA Makro Daten kopieren

    in Microsoft Excel Hilfe
    VBA Makro Daten kopieren: Hi zusammen, ich bräuchte eure Hilfe denn aktuell bin ich am verzweifeln: Ich brauche ein Makro für das deutsche Excel. Es gibt 2 verschiedene Arbeitsmappen mit jeweils einem aktiven...
  6. per VBA Zeile in der Liste löschen

    in Microsoft Excel Hilfe
    per VBA Zeile in der Liste löschen: Hallo Leute, ich brauche eure Hilfe. In einer Liste sollen regelmäßig Einträge vorgenommen werden. Hierzu müssen die Felder Name, Nr. alt, Stück, Bezeichnung, Datum, Kst, Palettennummer,...
  7. Zeilen mit bestimmten Wert in andere Tabelle (VBA Makro)

    in Microsoft Excel Hilfe
    Zeilen mit bestimmten Wert in andere Tabelle (VBA Makro): Hallöchen, ich stehe aktuell vor folgendem Problem: Wir haben ein Excel Makro, das über die Zeiterfassung alle Mitarbeiter und ihre Stunden in verschiedenen Positionen auflistet. Eine abgespeckte...
  8. Per Makro bestimmten Bereich per PDF unter bestimmten Pfad speichern.

    in Microsoft Excel Hilfe
    Per Makro bestimmten Bereich per PDF unter bestimmten Pfad speichern.: Moin Zusammen, ich hoffe Ihr könnt mir helfen, denn ich verzweifle so langsam :( Ich habe bereits hier und im Internet gefühlt vieles durchgelesen, komme aber leider nicht weiter. Ich möchte...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden