Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
560to564
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
560to564
560to564
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VBA Excel: For Each Next, Tabelle auslesen usw.??

VBA Excel: For Each Next, Tabelle auslesen usw.?
08.02.2005 16:11:50
Andi
!!! 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!
Andi
AW: VBA Excel: For Each Next, Tabelle auslesen usw.?
Luc
Hallo Andi,
for each x in Workbooks("haupt").sheets
x.range("B4").formula="test"
workbooks(x.name).sheets("tab1").range("B4").formula="test"
next x
Viel Glück Luc
AW: VBA Excel: For Each Next, Tabelle auslesen usw.?
Luc
Ahoi Andi,
natürlich musst du x.name als Workbook(Datei)-Name noch um die übliche Endung ergänzen, also x.name & ".xls".
Ciao Luc
AW: VBA Excel: For Each Next, Tabelle auslesen usw.?
09.02.2005 09:40:56
Andi
Hallo Luc,
vielen Dank für deine schnellen Tips! Leider kam ich gestern nicht mehr zum Testen. Ich werde dies heute im Laufe des Tages versuchen.
Mal schauen, ob ich deine Tips unterkriege. Zur Not muss ich doch auf FOR-Next-Schleife zurückgreifen. Dann müsste ich aber die Anzahl der Namen in der Quelldatei immer durchzählen und im Macro entspr. anpassen. Na, hoffentlich gelingt mir eine Lösung.
Andi
Mein bisheriger Macrocode ohne deine Tips ist folg.:
*****************************
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
***********************************
Anzeige
AW: VBA Excel: For Each Next, Tabelle auslesen usw.?
Luc
Hallo Andi,
das geht natürlich auch! Du kannst 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.
Erfolg Luc
PS: Aus einem "Makro" wird erst durch eine Schleife ein echtes Programm!
AW: VBA Excel: For Each Next, Tabelle auslesen usw.?
09.02.2005 14:46:56
Andi
Hallo Luc,
leider kriege ich das nicht hin. Da fehlen mir doch noch die Kenntnisse an der Stelle.
Könntest du mir BIIITTE evtl. im mitgelieferten Makrocode die Alternativ-Variablen (für Haupt-Mappe.xls, Felix.xls, Felix, Ergebnisse.xls) einsetzen mit For_Each-Schleife? Du scheinst ja ein echter Voll-Profi zu sein, wenn du so schnell mit Lösungsvorschlägen antwortest.
Ü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.
Du wärst wahrscheinlich meine Rettung im Kampf gegen die Stunden.
Best greetz
Andi!
Anzeige
AW: VBA Excel: For Each Next, Tabelle auslesen usw.?
Luc
Hallo Andi,
will's etwa nicht so wie von mir geschrieben klappen? Ich weiß nicht, ob ich da heut noch ran kann. Muss jetzt los und hab mir ne TotalErkältung geholt.
Gruß Luc
AW: VBA Excel: For Each Next, Tabelle auslesen usw.?
11.02.2005 12:41:49
Andi
Hi Luc,
wäre es ein Angebot, wenn du mir deine Kontonummer schreibst und ich dir 10 EUR überweise, wenn du mir die Lösung präsentierst? 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.
Andi

310 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige