VBA - Excel-Datei erstellen und importieren

Bild

Betrifft: VBA - Excel-Datei erstellen und importieren
von: Marc
Geschrieben am: 16.09.2015 13:32:48

Hallo Zusammen,
ich habe von VBA noch nicht so viel Ahnung und wollte deshalb von euch wissen, ob mein Projekt umsetzbar ist oder nicht bzw. wie hoch der Aufwand dafür ist. Ich habe folgendes Problem:
Ich habe verschiedene Projekte, welche wiederrum unterschiedliche Unterprojekte haben können. Diese habe ich in einer „Konsolidierungs“-Datei in der Spalte A aufgelistet (PRO001, PRO002, …) welche allerdings mehrmals vorkommen können – je nach Unterprojekt.
Beispiel:
Spalte A | Spalte B | Spalte C | Spalte D
PRO001 | UPRO001 | Weitere Angaben | …
PRO001 | UPRO002 | Weitere Angaben | …
PRO002 | UPRO003 | Weitere Angaben | …
PRO003 | UPRO004 | Weitere Angaben | …
Jetzt möchte ich jeweils ein Projekt inkl. Unterprojekten kopieren und in eine andere Datei schreiben (z.B. in Datei „PRO001“). Wenn es die Datei schon gibt, soll diese geöffnet werden, dann entsprechende Zeilen gelöscht und mit den Daten aus der Konsolidierungsdatei überschrieben werden.
Zusätzlich zu dieser beschriebenen „Output“-Funktion brauche ich auch eine „Input“-Funktion. Und zwar möchte ich den vorher beschriebenen Output an Dritte geben, welche dann den Inhalt ändern bzw. ergänzen können. Also z.B. zu dem PRO001 wie oben dargestellt noch das UPRO005 hinzufügen und/oder die weiteren Angaben in Spalte C ff. ändern. Die Input Funktion soll dann die vorher exportierte Datei „PRO001“ mit meiner Konsolidierungs-Datei vergleichen und dort bei Bedarf einzelne Zellen ändern bzw. eine ganze Zeile dazwischen hinzufügen.
Ist dies möglich? Wie hoch ist der Aufwand, dies zu programmieren? Hat jemand zufällig schon etwas ähnliches gemacht?
Vielen Dank schonmal für eure Hilfe.
Gruß
Marc

Bild

Betrifft: AW: VBA - Excel-Datei erstellen und importieren
von: fcs
Geschrieben am: 19.09.2015 15:18:25
Hallo Marc,
wie heißt es so schön: Im Prinzip ja, aber es gibt noch ein paar Fragen.
Konsolidierungsdatei:

  • Verwaltest du die Daten in einer Tabelle (Listobject)?
    Dies ist wichtig, wenn es um die Programmierung bestimmter Aspekte geht.

  • Sollen die entsprechenden Makros in der Konsolidierungsdatei integriert werden?
    Oder soll der Import/Export in einer externen Datei gesteuert werden?

  • Output:
  • Gibt es in der Konsolidierungsdatei auch Spalten mit Formeln oder sind nur Daten enthalten?

  • Input:
  • Gibt es zu jeder Output-Datei nur einen Rückläufer, der importiert werden muss, oder kann es auch Rückläufer von mehreren Empfängern geben?

  • Wenn es mehrere Rückläufer gibt, müssen dann Änderungen in den gleichen Zellen der Konsolidierungsdatei irgendwie beachtet/erfasst werden?

  • Soll der Import der Rückläufer-Dateien einzeln erfolgen oder sollen mehrere Dateien mit einem Makroaufruf importiert werden?


  • Die Umsetzung ist dann etwa wie folgt
  • In der Datei wird ein Musterblatt für den Output/Export angelegt
    Dies ist eine Kopie des Blatts mit den kosolidierten Daten, jedoch enthält sie nur die Titelzeilen der Liste.
    Dieses Blatt ist normalerweise ausgeblendet und wird nur für das Erzeugen der Output-Dateien eingeblendet.

  • Ein Makro für den Output wird erstellt

  • Ein Makro für den Input wird erstellt

  • Funktionen im OUTPUT-Makro:
  • Erfassen aller Projekte in einem Daten-Array(Liste)

  • Einblenden des Output-Musterblatts

  • Abarbeiten der Projekt-Liste mit den Schritten
    1 Musterblatt in neue Mappe kopieren
    2 Daten zum Projekt suchen (z.B. mit Autofilter-Funktion) und kopieren
    3 Output-Datei speichern (ggf. überschreiben)

  • Ausblenden des Output-Musterblatts

  • Funktionen im INPUT-Makro:
  • Auswahl der zu importierenden Dateien in einem Dateiauswahl-Dialog

  • Abarbeiten der gewählten Dateien mit den Schritten
    ...1 Datei öffnen
    ...2 Liste zeilenweise abarbeiten
    ...2.1 Zeile, Projekt und Unter-Projekt in Variablen einlesen
    ...2.2 Zeile mit Projekt und Unter-Projekt in Konsolidierungsdatei suchen
    ...2.2.1 Wenn gefunden, dann Werte in Spalten vergleichen und ggf. überschreiben
    ...2.2.2 Wenn nicht gefunden, dann komplette Zeile ans Ende der Liste kopieren
    ...3 Datei ohne speichern wieder schließen
  • Daten in konsolidierter Liste nach Projekt/Unterprojekt sortieren

  • Das Anfügen neuer Unterprojekte am Ende der Liste und Sortieren der konsolidierten Liste ist einfacher umzusetzen, als die neuen Unterprojekte jeweils in der richtigen Zeile einzufügen.
    Bei optimaler Umsetzung könnte man die erstellten Output-Dateien gleich per Mail versenden, wenn zu jedem Projekt in einer Liste die Mail-Empfänger gelistet sind.
    Wenn aus der Abarbeitung der Rückläufer beim Re-Import keine besonderen Bedingungen berücksichtigt werden müssen, dann kann man das sicher in einem Tag umsetzen.
    In der Summe sprengt es aber den Umfang an Support, den du im Forum erwarten kannst.
    Mit etwas Glück kannst du aber hier unter der RECHERCHE fündig werden. Evtl. muss nach den 2 Aufgaben getrennt suchen, um sie dann bei dir zu integrieren.
    Gruß Franz

     Bild

    Beiträge aus den Excel-Beispielen zum Thema "VBA - Excel-Datei erstellen und importieren"