Susi_85 Geschrieben 8. Februar 2005 Geschrieben 8. Februar 2005 !!! SOS !!! Hallo zusammen, ich scheitere so ein bisschen am Setzen der richtigen Parameter bei einer For-Each-Next-Schleife. Ich möchte Folgendes tun: Ich habe eine Quelldatei mit einer Liste von 20 Namen (xls oder txt empfohlen?). Ich habe eine Haupt-Excel-Mappe, in der ich 20 Tabellenblätter habe, bezeichnet mit den o. g. Quellnamen. Es gibt weitere 20 Excel-Dateien mit den gleichen Namen. Zusammengefasst als Beispiel: In der Quelldatei Namen.xls (oder namen.txt?) steht "Felix". In der Haupt-Excel-Mappe gibt es neben all den weiteren ein Blatt namens "Felix". Zusätzlich gibt es eine Excel-Tabelle namens Felix.xls. Nun meine Frage: Wie kann ich die Quelldatei 20mal auslesen und in der Haupt-Excel-Mappe eine Folge von Befehlen ablaufen lassen, so dass beispielsweise in jedem der 20 Tabellenblätter jeweils in Zelle B4 das Wort "test" eingetragen wird UND ebenfalls während dieser Befehlsabfolge die jeweilige der 20 Excel-Tabellen aufgerufen wird und dort ebenfalls in B4 das Wort "test" eingetragen wird ? Ich benötige z. B. den konkreten Befehl, um das Sheet "Felix" nicht mit "Sheets("Felix").Select" aufzurufen, sondern mit einer entsprechenden Variable lt. Definition im Kopf der For-Each-Next-Schleife. Eine Alternative mit Variable brauche ich auch hierfür: "Windows("Felix.xls").Activate". Ich danke euch im voraus! Ihr würdet mir SEEEEEEEEEEhr helfen! Eure Susi :mod: Zitieren
Warfox Geschrieben 9. Februar 2005 Geschrieben 9. Februar 2005 Ich benötige z. B. den konkreten Befehl, um das Sheet "Felix" nicht mit "Sheets("Felix").Select" aufzurufen, sondern mit einer entsprechenden Variable lt. Definition im Kopf der For-Each-Next-Schleife. Eine Alternative mit Variable brauche ich auch hierfür: "Windows("Felix.xls").Activate". Wenn ich fragen darf, warum brauchst du alternativen zu diesen Befehlen??? Zitieren
-roTekuGeL- Geschrieben 9. Februar 2005 Geschrieben 9. Februar 2005 Wenn ich fragen darf, warum brauchst du alternativen zu diesen Befehlen??? wahrscheinlich geht sie davon aus, dass "Felix" nicht variabel gestalltet werden kann :confused: Zitieren
Susi_85 Geschrieben 11. Februar 2005 Autor Geschrieben 11. Februar 2005 :marine Hi, ich überweise demjenigen 10 EUR (wenn gewünscht), der mir zuerst die Lösung präsentiert. Du schreibst mir deine Kontonummer mit. Könnte gut sein, dass ich dich in zwei Wochen wieder brauche. Das wäre dann eine reine Zeitfrage für mich. So könntest du mal was mehr an deinem Wissen verdienen. Es geht konkret um folg. Zeilen (Lösungsansätze unten): ***************************** ChDir "C:\Test\J\M" Workbooks.Open FileName:= _ "C:\Test\J\M\Haupt-Mappe.xls", UpdateLinks _ :=0 ActiveWindow.ScrollWorkbookTabs Position:=xlFirst ' Felix Sheets("Felix").Select ChDir "C:\Test\J\M" Workbooks.Open FileName:="C:\Test\J\M\Felix.xls" Windows("Haupt-Mappe.xls").Activate ActiveWindow.ScrollColumn = 1 ActiveWindow.ScrollRow = 1 Range("A4:AU60").Select Selection.Copy Windows("Felix.xls").Activate Range("A1").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("Z27").Select Application.CutCopyMode = False Selection.Copy Windows("Ergebnisse.xls").Activate Range("H4").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Windows("Felix.xls").Activate Columns("AB:AD").Select Selection.Delete Shift:=xlToLeft Columns("AC:AD").Select Selection.Delete Shift:=xlToLeft With ActiveSheet.PageSetup .PrintTitleRows = "$1:$2" .PrintTitleColumns = "$A:$A" End With ActiveSheet.PageSetup.PrintArea = "$A$1:$AN$51" Columns("AA:AN").Select Selection.ColumnWidth = 8 Range("AD9").Select ActiveWorkbook.Save ActiveWindow.Close *********************************** Lösungsansatz 1 (ähnl. Beispiel): for each x in Workbooks("haupt").sheets x.range("B4").formula="test" workbooks(x.name).sheets("tab1").range("B4").formula="test" next x Lösungsansatz 2: 2 Feldvariablen anlegen, die die Namen der Blätter und die der korrespondierenden Mappen in gleicher Reihenfolge enthalten (evtl auch automatisiert ermittelt). Dann kannst du natürlich über For...Next_index oder For_Each_subvar_In_feldvariable...Next_subvar die Mappen den Blättern zuordnen. *************** ursprüngl. Frage: !!! SOS !!! Hallo zusammen, ich scheitere so ein bisschen am Setzen der richtigen Parameter bei einer For-Each-Next-Schleife. Ich möchte Folgendes tun: Ich habe eine Quelldatei mit einer Liste von 20 Namen (xls oder txt empfohlen?). Ich habe eine Haupt-Excel-Mappe, in der ich 20 Tabellenblätter habe, bezeichnet mit den o. g. Quellnamen. Es gibt weitere 20 Excel-Dateien mit den gleichen Namen. Zusammengefasst als Beispiel: In der Quelldatei Namen.xls (oder namen.txt?) steht "Felix". In der Haupt-Excel-Mappe gibt es neben all den weiteren ein Blatt namens "Felix". Zusätzlich gibt es eine Excel-Tabelle namens Felix.xls. Nun meine Frage: Wie kann ich die Quelldatei 20mal auslesen und in der Haupt-Excel-Mappe eine Folge von Befehlen ablaufen lassen, so dass beispielsweise in jedem der 20 Tabellenblätter jeweils in Zelle B4 das Wort "test" eingetragen wird UND ebenfalls während dieser Befehlsabfolge die jeweilige der 20 Excel-Tabellen aufgerufen wird und dort ebenfalls in B4 das Wort "test" eingetragen wird ? Ich benötige z. B. den konkreten Befehl, um das Sheet "Felix" nicht mit "Sheets("Felix").Select" aufzurufen, sondern mit einer entsprechenden Variable lt. Definition im Kopf der For-Each-Next-Schleife. Eine Alternative mit Variable brauche ich auch hierfür: "Windows("Felix.xls").Activate". Ich danke euch im voraus! Ihr würdet mir SEEEEEEEEEEhr helfen! Übrigens ist der Eintrag 'Range("H36").Select' auch ein veränderlicher. Es sollen nämlich in der Zieltabelle Ergebnisse.xls alle Ergebnisse ab Zelle H4 untereinander eingetragen werden. Es sind also mehr als zwanzig Einträge. 20 war nur ein Beispiel. Zitieren
Warfox Geschrieben 14. Februar 2005 Geschrieben 14. Februar 2005 Aaaalso wenn ich es richtig verstehe muss das Proggi das machen: Du hast eine Datei mit X einträgen. Daraus erstelle ich eine Excel Tabelle mit X Blättern die den Namen der Einträge haben und zusätzlich X einzelne Excel tabellen die den Namen der Einträgen tragen? Thats all??? Dann noch was soll es ein Makro oder ein Eigenständiges Proggi sein??? Wenn du schnell antwortest mach ich das mal heute abend kurz :bimei Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.