nach langem rumprobieren und kurz vor der Verzweiflung musss ich nun meine Frage hier formulieren!
Ich bin dabei für meine Firma ein mit Makros bestücktes Preisblatt zu erstellen.
Ziel ist dabei einen Preisvergleich darzustellen, der manuell mit sehr sehr viel Arbeit verbunden ist.
Die Makros sind mittlerweile ziemlich umfangreich geworden. Unter anderem werden aus meiner Mutter-Datei (.xlsm) mehrere .xls-Dateien erstellt. Eine Datei pro Lieferant mit jeweils zwei Sheets die für den Vergleich kopiert werden sollen. Auch der Angebotsvergleich soll automatisch erstellt werden. Hier sollen die zwei relevanten Sheets aus allen Lieferanten-Dateien zusammengefügt werden.
Die ganze Kopiererei funktioniert mittlerweile.Ich habe Sie in einer Schleife umgesetzt, hier zum Ablauf:
For x = 1 To Anzahl_lieferanten
1. Blatt 1 und 2 aus Steuerdatei (Mutter) unter erstem eingegebenen Lieferantennamen speichern
2. Blatt 1 u 2 aus nun aktiver Lieferantendatei kopieren und Formate, Spaltenbreiten und Verknüpfung in Datei Angebotsvergleich einfügen.
3. Blattschutz für alle Sheets
4. Speichern
5. zurück in Steuerdatei (Mutter)
next x
Probleme sind jedoch folgende:
1. In Schritt 2 sollten die Tabellen miteinander verknüpft werden also: Kopieren - "Inhalte einfügen" - "Veknüpfen"
Dabei werden natürlich ALLE Zellen verknüpft, ob befüllt oder leer...ICh wüsste gerne, ob die 'Paste Link' Methode auch nur für befüllte Zellen angewendet werden kann á la 'SkipBlanks:=True'?
2. Innerhalb der Schleife, nach Kopieren der Formate etc. wird das Sheet unter dem Lieferantennamen gespeichert. NACH Ablauf der Schleife wird das Blatt nochmals als Template für die interne Kalkulation gespeichert. Dieses Template wird nicht mit dem Angebotsvergleich verknüpft und trotzdem lauten alle Verknüpfungen im Vergleich: ='[Template_titel.xlsx]Tabelle1'!A1
WARUM? es macht vom Programmablauf gar keinen Sinn...
Ich würde mich sehr freuen, wenn mir diesbezüglich jemand helfen könnte.
Allein die komplette Syntax und alle Ihre Variationen von Paste Link würden mir evtl schon helfen das erste Problem zu lösen.
Ich hoffe auch, dass ich die Problematik genau genug beschrieben habe, denn der Code ist sehr komplex und lang und würde wahrscheinlich wenig zum Verständnis beitragen...
Grüße
Michael