kann mir jemand helfen? Ich habe eine ziemlich schwere Aufgabe, jedenfalls für mich. Es geht um ein VBA-Makro, das sehr einige Abfragen beinhalten soll.
Zunächst kommt eine Abfrage, welche Quelldatei bearbeitet werden soll (Fenster: Datei öffnen). Nach der Auswahl sollen ganz bestimmte Zellen und Zellbereiche aus allen Tabellenblättern kopiert werden und danach die Quelldatei wieder geschlossen werden. Die kopierten Daten werden dann in EIN vorformatiertes Tabellenblatt eingefügt.
Hier die Systematik:
- Abfrage: Welches Datenblatt möchten Sie bearbeiten? (Fenster: Datei öffnen)
- Automatische Prüfung
* aller Tabellenblätter nach Bezeichnung des Standortbereiches (C3)
-> Aktion: Kopieren der Bezeichnung von Blatt1 (C3) [QUELLE] in B1 [ZIEL], von Blatt2 (C3) [QUELLE] in B1+x (x=Zellen abhängig von Systemanzahl aus C16 bis leere Zelle rechts, falls C88 mit Wert bis leere Zelle rechts, falls C160 mit Wert bis leere Zeile rechts und aus Blatt3 [QZELLE] entsprechend in B1+x+y [ZIEL]. Es müssen alle Tabellenblätter aus der Quelldatei geprüft werden.
* die Werte der Systemanzahl von C3 bis C3+x3(leer), weiter nach C88 [falls leer Abbruch, sonst->] bis C88+x88(leer), weiter nach C160 [falls leer Abbruch, sonst->] bis C160+x160(leer) aus allen Tabellenblättern sind zu kopieren
-> Aktion: Einfügen der Systemanzahl in B2 bis x [ZIEL]
* der Systemwerte [QUELLE] C17, C23, C25-32, c38-45, C49, C51-56, C61-62, C65
bis x17, x23, x25-32, x38-45, x49, x51-56, x61-62, x65
und C89, C95, C97-104, C110-117, C121, C123-128, C133-134, C137
falls C 161 nicht leer: C161, C167, C169-176, C182-189, C193, C195-C200, C205-206, C209 aus allen Tabellenblättern. x ist dabei nicht der Buchstabe x, sondern eine Range mit Prüfung, bis Spalte leer.
-> Aktion: Falls Zelle Wert enthält kopieren in B3-30 bis x3-30
Ok, das war die Kopierabfolge. Nun soll auch der Name der Tabellenblätter [QUELLE] kopiert werden und in B1 und usw. eingefügt werden (abhängig von der Sytemanzahl, sieht Bsp.-Datei).
Der Name der EXL-Datei soll auch aus der Quelldatei übernommen werden, ohne jedoch "Datenblatt", d.h. aus 090297Datenblatt.xls wird 090297.xls
Es sind echt viele Schleifen. Was ich versucht habe:
**************************************************
Sub Importieren()
On Error GoTo Ende
Einlesen
Kopieren
Formatieren
Berechnen
Ende:
End Sub
**************************************************'Einlesen der Daten aus dem Datenblatt
Sub Einlesen()
Dim Dateiname As Variant
Dateiname = Application.GetOpenFilename( _
FileFilter:="Microsoft Excel-Dateien (*.xls), *.xls", _
Title:="Ein Datenblatt zum Bearbeiten auswählen")
If Dateiname = False Then Exit Sub
On Error Resume Next
Workbooks.Open Filename:=Dateiname
On Error GoTo 0
End Sub
**************************************************
Weiter kam ich nicht. Ich bin einem jeden dankbar für einen Umsetzungstipp!!!!